I’ve worked booths at E3 and Comic Con before in my career, but something that made this year’s event drastically different for me happened when someone from Disney public relations approached me with a camera crew in tow and asked me to do an interview for a press outlet.

“Sure, why not?”

I probably did 3 or 4 of these a day at E3, as did my fellow Junction Pointers that attended the show. Now doing a presentation for any group of strangers is one thing, but there’s something about having a microphone and camera in your face that has the potential to crank your nerves up to eleven.

But to be honest, I enjoyed the experience, and welcomed any interview I could get. That’s probably unique for a programmer-type-of-guy.

Now, I wish I could claim to be a gifted speaker with nerves of steel but anyone who knew me growing up would remember that kid with the cracked voice and bright red face who fell apart in front of a crowd. No, sadly, public speaking is something I have to work at every week.

But I can do it now – which is an amazing feat for me, and probably most other people.

Anyway, one of the interviews I did for Disney Epic Mickey at E3 is available on YouTube. It was with Gavin Greene and Elder-Geek.com and as far as I know, this is my very first video appearance on the intertubes …

There’s some stuff on there that makes me wince a bit. Most notably, I should have said the title of the game, Disney Epic Mickey, instead of “this game” in my introduction. I also struggled to find the right word a couple of times as I spoke.

But I can watch it and not want to die – and that’s a BFD for me.

For folks looking to grow in this way I give Toastmasters International my highest recommendation. I’ve been a member for several years now and believe it’s the single most important thing I’ve done for my confidence and career. If you think your inability to comfortably speak in front of a crowd is holding you back then why not find a club near you?

(Thanks to Gavin Greene and Elder-Geek.com for the interview.)

{ 0 comments }

Thanks to the Source Control Gods

by Seanba on July 23, 2010

Yesterday, I was given a task to display lots (and I mean lots) of diagnostic text on the screen, while in game, on a development build of our latest goodness. Problem was, our debug font was far too big for the job – something I (foolishly) didn’t realize until the programming work as done and I first saw the glob of overlapping, unreadable text on the screen. It was mess.

The solution to such a problem sounds simple enough: just pick another font.

But this is console game development where we render strings to the screen via pieces of a texture like this one …

Default Font Texture

Note that simply scaling the source texture won’t work, as the boundaries of each alphanumeric character must be an integral constant (in the case above, 11 pixels wide and 21 pixels high). Plus, for historical reasons, I couldn’t simply scale down the destination quad we render the texture too. That seems like an oversight, and perhaps something I could worked up about, but it’s just the way it is.

So, I’m left with three choices:

  1. Refactor the rendering engine to support scaled debug text geometry.
  2. Drop, or scale back, the feature.
  3. Find or make a source texture with the same character layout as the image above, but with a smaller, yet readable, font.

Option one is out -we’re just too close to ship to make any kind of risky change to a major subsystem unless it gives us functionality of the highest priority. And I’m swamped with other bugs and support issues anyway.

The second option, ditching the feature, isn’t desirable because our guys could really use the extra diagnostic information and the work for it is “done” – but often it’s better not to chase after feature creep.

What about the third option? Sounds great, but how the hell is a programmer with little artistic or typography skill going to cook up a replacement texture?

And then it hit me: Years ago I spent some time on a pet project application exploring rendering the awesome looking outlined fonts you’d find in video games from the NES days. It didn’t do anything but utilize some C# GDI functions and the .NET PropertyGrid to let me experiment with font rendering and, like most pet projects, it didn’t go anywhere.

Font Application

Or I mean, it didn’t go anywhere – except my online code repository.

Now would you believe it took me mere minutes to download the source from that old do-nothing application and edit it to display the ascii characters in the order required? The application was already set up to change the font selection, size, color, and outline on the fly – so with a little mucking about I had something that looked reasonable.

Modified font application

And then two minutes later I had added a routine to save out that text into a texture. Not bad, eh?

Small vs Large font

Done and done. The new text even looks better too! I just love days like this when stuff falls into place so elegantly and a solution emerges.

I do a lot of pet-project programming, and often I don’t feel like bothering to prepare my code for submission (namely, just making sure I don’t check in a bunch of OBJ, SUO, and NCB files) – but I always do it, even for the most trivial of code – and examples like this are the perfect justification for doing so.

{ 0 comments }

Yegge’s Deathbed Confession

by Seanba on July 16, 2010

This has been kind of a rough year for programmers like me that enjoy reading blogs from other software developers. First Yegge threw in the towel. Then Joel called it quits. And even though Jeff is still around he has reduced his once legendary output to a post or two per month.

Actually, come to think of it, that’s a great opportunity for what is sure to become the next generation of “on software” bloggers. Hmmm.

Anyway, after year off it looks like Yegge is coming back – and I can’t help but get a real kick out of this quote:

Another perspective I gained was that decorating your mansion with works of art you know nothing about is amazingly rewarding, as long as you can mix it up by leaping across rooftops and assassinating bad guys and hanging with your buddy Leonardo. I swear, if they ever make a movie about my life, the handsome and dashing actor who plays me, when asked on his deathbed which of life’s pleasures had given him the greatest happiness, will say something cheesy that makes the audience ooh and aww with appreciation, but it’ll be total Hollywood bullshit, because what I really will have said was “gaming”.

Now that’s just awesome. Welcome back, Yegge, I’m looking forward to some great rants.

{ 0 comments }

Do Not – Sometimes the Better Option

by Seanba on July 16, 2010

Andy Hunt, easily my favorite programmer-type author, recently tweeted this bit of hard-earned wisdom:

The Yoda Methodology: “Do, or Do Not. There is no Try.” Note that “Do Not” is a perfectly valid, if underutilized, approach.

I love it. It’s a great methodology to keep in mind while creating software.

Yoda: Do or Do Not - There is no try.

Next month I’ll celebrate the 11th anniversary since I became a game developer. I’ve shipped 3 games in that time, with the fourth one coming this holiday season. That’s actually not too bad for this business – but it’s a good deal less than what I expected when I started all this.

It’s the nature of the beast, I guess, but looking back it has always amazed me that any game (or any piece of software, really) could have been completed in far less time and with much less money if we did a better job knowing what our priorities were early on – and if we had the ability to say “Do Not” more often.

I know of one studio, that, while making a third-person shooter, had put a lot of effort into adding lip-syncing to their game. It wasn’t a common feature for games back then but I think the justification for adding it went along the lines of, “Hey, wouldn’t that be cool?”

Dilbert.com

So they purchased some library and put a programmer and audio guy on it. First estimates put the task at two weeks. No big deal.

Experienced developers know where I’m going with this: It took months to get the feature in place, there was lingering bugs, and generating the content was a royal PITA for both the audio team and the animators. Plus, the lip-syncing was costing them in performance.

Worst of all, it wasn’t really needed. Remember this was a third-person shooter, so the avatar had his back to the camera nearly all the time, and other characters were too small on screen to make out such facial features. In fact, the only way QA could effective test lip-syncing was to activate the debug camera and zoom in close to a talking game character.

Talk about a nightmare. The feature was eventually cut just weeks before ship – much to the dismay of the people who did the work and were now fighting for just a little more time to finish the job.

And compare this experience to a once unknown developer who knew how to say “Do Not” to some cool ideas while creating what would become the best superhero game of all time.

{ 0 comments }

Disney Epic Mickey at E3 – What a Show!

by Seanba on June 30, 2010

I’ve been to E3 before for the games I’ve worked on and have reached the same conclusion as the vast majority of game developers attendees: Going to E3 sucks.

But what I experienced two weeks ago has changed me forever. As it turns out I struck an amazing amount of luck when I was asked to go to E3 this year to help showcase Disney Epic Mickey with Warren Spector and other Junction Point / Disney Interactive peers.

Junction Point E3 Banner

In previous E3 experiences there would generally be something there to get a little jazzed about (like the odd nomination or spurts of increased booth activity) -  but in my opinion it wasn’t worth the pain of going unless you’re really into that kind of thing (and most programmers aren’t into being on their feet all day and yelling over the EA booth next door).

This year I went into E3 with Disney Epic Mickey expecting something a little more positive than before, like more buzz for our title and perhaps even a couple of “Best Wii Game” nominations from the larger outlets – but I wouldn’t allow myself to believe much more was feasible – especially once Nintendo announced their upcoming Zelda, Kirby, Kid Icarus (finally!) and Donkey Kong Country titles.

And then the show floor opened – and within the hour I knew we were on to something extra special. The enthusiasm for our game was simply astounding!

And check out the honors and awards!

Disney Epic Mickey kiosk with nominations

Plus the top-dog, big-enchilada, holy grail of Best of E3 nods – the Game Critics Awards – were announced today and Disney Epic Mickey bagged four nominations:

  • Best of Show
  • Best Original Game
  • Best Console Game
  • Best Action/Adventure Game

Obviously a win in any category would be cool, but really, Disney Epic Mickey’s performance at E3 has blown away my wildest expectations to such a degree that I’ll be more than satisfied with what we’ve got now.

But don’t tell Warren I said that. ;)

(Speaking of which, Warren Spector has been covering his E3 experience on his much more popular blog. Start here.)

What this means to me

Of course, doing well at E3 – even exceptionally well – is a far cry from actually shipping top quality software, and any experienced game developer knows the challenge that is before us in these final months for a holiday release date. I may be drunk on E3 right now but I’m very much aware of that fact.

And it’s kind of funny how scary this is in a way. If we were under the radar no one would think much if we didn’t succeed in delivering a true triple-A game to retail. It’s a tough business and most will fail. No big deal. It happens to the best of us.

But now we’re in everyone’s face, so to speak, and it’s time to deliver. It’s possible that I’ll never get the opportunity to work on a game of such potential again -  so I’m going all in.

Disney Epic Mickey E3 Team

But man, am I ever grateful I got to experience the rush and excitement firsthand on the show floor. It will provide exactly the kind of motivation that will help me blast through the coming long hours and headaches that are part and parcel in the march to ship. If only I could bottle that up and share it with the hard-working folks that couldn’t attend.

And to think: I didn’t even want to go to E3! Sometimes I swear the universe is conspiring for me.

{ 2 comments }

I was a kid when video games were first being introduced to the world at large, and I remember being 9 years old or so – completely obsessed with these things – and looking through the Peterborough / Lindsay Yellow Pages looking for anything related to video games and finding nothing. At the time I didn’t know anyone who owned or played these games so I guess it was important for me to find traces of my favorite pastime embedded in some part of everyday life.

I always think about that disappointing exercise whenever I see evidence of how ubiquitous video games have become – and I couldn’t help but laugh when I saw 1UP’s posting on Korean Air (of course, it had to be the Koreans) branding their airliners with Starcraft II artwork.

 Starcraft 2 Airliner Artwork

I just love it when the little kid Sean from decades ago is vindicated like this. Oh, and when’s the last time anyone has used the Yellow Pages? Ha!

{ 2 comments }

Geeky Cool Father’s Day Present

by Seanba on June 20, 2010

Today I was treated to my usual Sunday morning pancakes on top of my Father’s Day present. Pretty cool, no?

Optimus Prime vs Mario Dinner Plate

There’s just so much awesomeness in this:

  • My four-year-old drew Optimus Prime on the left (with very little help from my wife, I’m told).
  • Josie also scribbled “Optimus Daddy” on the bottom. Too cute.
  • Ella, our seven-year-old, drew Mario by hand alone. What detail!
  • Ella added one of the stars from Super Mario Galaxy – our favorite Daddy-Daughter video gaming experience of all time.
  • “We think to ourselves, Supper Mario Daddy” is a play on Brentalfloss’ Super Mario World song, which in itself is a play on What a Wonderful World by Louis Armstrong. Yes, my kids are that meta.
  • Ella even replaced the word “Super” with “Supper” on purpose. Awesome!

They obviously put a lot of thought, time, and love into making me this. What incredible girls I have. Not to brag, but man do I ever have it made – it should be illegal to live a life so filled with joy.

Happy Father’s Day indeed!

{ 1 comment }

Disney Epic Pancakes – I Have a Point

by Seanba on June 13, 2010

Team Barton has a ritual every Sunday morning where the kids let the grown-ups sleep in a bit and the family is rewarded with pancakes afterwards.

(And yes, we allow – no, encourage – the children to spend these mornings watching TV. Don’t approve? Get bent.)

Anyway, the pancakes: They taste great, and they’re served with Canadian maple syrup – but other than that they’re just regular pancakes with no extra ingredients, sides, or frills*.

Now there’s always a lot of talk of Disney Epic Mickey around our house**, and lately there’s been even more than usual, so my wife decided to put a little bit of that Disney magic into my breakfast. Introducing Disney Epic Pancakes:

Mickey-shaped pancakes

I have to admit, I really was touched by the gesture, and the kids got a huge laugh out of it too. I’m also struck by the pure simplicity of it. Just two additional globs of pancake mix and there you have it!

And because I just have to over-analyze everything I couldn’t help but think of a way to tie this into some kind of career advice or something.

So here’s my tortured motivation for the day: We game developers do an exceptional job at conjuring ideas, features, and tasks that – although potentially cool – eat up a lot of time and money, increase project complexity, and introduce tremendous risk towards our goal of shipping great video game software. Let’s try harder to identify some absolutely kickass items that take virtually no effort to achieve instead.

* My wife would like me to remind readers that her homemade pancakes are anything but regular.

** No talk an NDA lawyer or HR representative needs to concern himself with, mind you.

{ 0 comments }