So that’s why I can’t stand people

by Seanba on May 24, 2010

By programmer standards, I think it’s fair to say I’m a fairly social guy. I imagine most people I’ve worked with would say I’m a friendly, approachable guy – perhaps even a bit extroverted.

I figure that’s mostly due to enjoying my work so much and because, at the office, we tend to share the same goals and interests. But people who meet me outside of work, especially those who know me primarily as “Christy’s husband”,  tend to think I’ve got a some issues. Pretension is a common complaint.

Pretension demotivational poster

But it’s nothing personal, I just have a very difficult time to talking to you.

I wasn’t always like this, but thanks to Scott Adams’ entry on Brain Management, I think I know what happened: my career as a software engineer.

During one period of my life I wrote a number of computer programs that involved intense manipulation of objects in my mind, for hours each day. I discovered that it was difficult to be social at night when my mind had been manipulating object during the day. It felt as if I were deep inside a cave and yelling to the people who stood at the cave opening. It seemed as if the practice of programming interfered with, or exhausted, the part of my brain that handles social skills.

(Emphasis is mine.)

I often thought I just grew up in my mid-twenties and got into computer programming because it fit my new mental state – but now I’m thinking that perhaps the act of programming has changed me. I certainly do find people utterly exhausting at times, especially when the working day is done.

{ 3 comments }

Split/Second demo looks like a winner

by Seanba on April 26, 2010

Full disclosure: I work for Disney Interactive Studios, so I have a vested interest in seeing that growing part of The Walt Disney Company do well. Then again, as a enthusiastic game player/developer I have a vested interest in seeing every video game developer do well for itself.

Split Second

All that aside, I took a break from my Left 4 Dead addiction this evening and gave Black Rock Studio’s recently released Split/Second Xbox 360 demo a try. I’m usually not one for racing games, but this is something I could totally see myself getting into. I just love the theme of an over-the-top reality-television culture gone mad in a The Running Man meets Days of Thunder kind of way.

The demo is short and doesn’t have multiplayer – both common fare for demos – but it does a pretty good job hooking you in. Plus, I think it proves that Disney means business about taking serious gamers seriously. This is no magical fairy princess adventure (uh … not that there’s anything wrong with that).

Try the demo. The full game hits retail on May 18th. I’ll be playing some online multiplayer for sure that night.

{ 0 comments }

Huge Mega Man fan here: I’ve loved the franchise ever since the first game, that I accidently bought at a Consumers Distributing in Peterborough, Ontario – because I confused it with Bionic Commando.

(No offense to Bionic Command, which is great game in its own right, but that’s the best mistake I’ve ever made in my gaming life.)

Naturally, I purchased Mega Man 10 when it became available on Xbox Live* last week and it’s pretty much what we’ve grown to expect and love – although the Sheep Man robot master leaves me scratching my head a bit.

Robot-master Sheep Man

Yeah. Sheep Man. I know what you’re thinking … maybe Pussy Willow Man was already trademarked or something.

And you know what my 7-year-old daughter has a picture of on her pajamas? Sheep.

(Still, I have to admit that his Thunder Wool ability, even though it sounds lame as well, is actually pretty cool.)

All kidding aside, I think the game is great, and well worth the $10 or so in points to download. But like the long-awaited Mega Man 9 that came before it, I’m more than a little overwhelmed by the difficult achievements**, which include …

  • Make it to a robot master without taking damage
  • Play a whole game without dying
  • Don’t use continues
  • Don’t use any weapon or health refills
  • Finish the game in under an hour
  • Play the whole game without taking damage, ever (Hello!)

Personally, I just don’t see how playing through Mega Man without taking any damage could be fun, I guess that’s one just for the ultra-hardcore. But worse than the difficulty of the achievements is the addition of the Easy difficulty setting. And we’re talking big time easy here, with weaker enemies, less damage, and nearly 100% muted environmental dangers. I’m all for making a game more accessible – but this just doesn’t feel right.

And worse, all but one of the achievements can be unlocked in Easy mode, pretty much ensuring that the majority of players will be playing, in my mind, a much weaker game.

By the way, here are some of the things you can not unlock achievements for …

  • Beating the game on its normal (and satisfying) difficulty level, provided you’ve already beaten it on easy
  • Playing and beating the game as Proto Man
  • Completing any number of challenges in the very fun (yet easy to miss) Challenge mode

Those just seem like no-brainers to me – some good, solid achievements that would extend the replay factor of the title and reward players for sticking with it.

Mega Man running

Of course, I still heartily recommend Mega Man 10, but there is a missing attention to making the features, difficulty, and achievements work together to influence the game to be played at its best and fullest. Achievements (and Trophies) are now an integral part of our gaming fun*** and developers need to give them the same kind of design love that the in-game experience commands.

 

* I only recommend Mega Man on the Xbox 360 if you’ve got a good D-pad controller. I use the Street Fighter IV FightPad.

** I won’t complain about beating all 8 robot masters with only your default blaster. Although challenging, it is a fun achievement – exactly the kind of stuff I’m looking for.

*** It pains me that Nintendo hasn’t gotten on the Achievement/Trophy trolley yet.

{ 3 comments }

Virtual desktops are pretty cool

by Seanba on April 7, 2010

I used to be able to get by doing my work with only a handful of applications, but now that I’m programming a Wii title and supporting all the tools in our content chain, I find that I often get lost in the mess of windows open on my desktop …

Task switcher window is full

The number of Windows Explorer instances I find myself dealing with are especially troublesome, and I often find even opening more (with multiple instances pointing to the same directories) because it’s easier to do so than to hunt down the Explorer window I’m interested in.

Too many Windows Explorer instances

Time was, I’d just learn to live with this kind of annoyance, but one of the things I’ve promised myself this past year, in an effort to grow up as a developer, is to seek out solutions to these kind of inefficiencies.

What I really needed to clean up this mess was a way to section off my work into three categories:

  1. Programming – where I (should) spend most of my time.
  2. Deployment and testing – on the Wii platform.
  3. Email and internets – a combination of work-related communication and goofing off. I generally don’t want to be here too much.

Linux users have been using virtual desktops since forever for exactly this reason, so what I needed was an XP solution along those lines. (And to my surprise, upgrading to Vista or Windows 7 wouldn’t help – they still don’t feature virtual desktops out-of-the-box.)

Virtual Desktops on Windows

Microsoft has a Virtual Desktop Manager PowerToy available, but either I’m too stupid to figure out how to use it (a definite possibility) or it just doesn’t get the job done. As best as I could tell all it did was group applications to be minimized based on what “desktop” is currently active. The same mess of applications was still in the taskbar and the task switcher. Bleh.

VirtuaWin is awesome – and free!

I then tried VirtuaWin, and I have to say this thing is pretty slick and solid. It does exactly what I want, without trying to be ridiculously fancy about rotating 3d cubes and such. And as a developer I have to give monster credit to the authors for crafting it in such a way that makes it extensible through dozens of plugin modules. I recommend installing VirtuaPlus, as it allowed me to choose a separate background image for each desktop.

Main work desktop  Wii testing and deployment  Email and mental-break

Hey there, Miss Doesn’t-find-me-attractive-sexually-anymore: I just tripled my productivity!

I’ve been using VirtuaWin for a couple of weeks now and I’m convinced it’s one of the best productivity tools I’ve installed in a long time. Those of us who do knowledge work are always fighting to keep our flow running, something that switching gears kills, particularly when I have a hard time finding my way to the applications that now demand my attention.

Super-sized Homer tripled his productivityBut now, say I want to test something quick on my Wii dev kit? A quick Ctrl+Alt+Right gets me there with all the tools needed for that purpose. Need to bring a Wiki page over to my programming work? Two Alt+Win+Left clicks and I’ve pulled Internet Explorer from my goofing-off desktop, past my Wii staging ground, and to my true working environment.

And speaking of goofing off, I just love having a separate desktop for my low productivity tasks. The custom look for that desktop reminds me that I shouldn’t be there for too long – so I get in and out of my mental breaks much faster.

As an added bonus, I find myself with fewer applications active at the same time now. The logical grouping of my windows keeps me from opening multiple instances of the same application, especially all those damn Windows Explorers. And I’m no longer shy about what to shut down because I better know when it is done serving its purpose for awhile.

VirtuaWin is one of those programs I can’t believe I’ve been working this long without. If you’re looking for a bit of order to your workspace then go get it now.

{ 0 comments }

Fellow game developer Chad Stewart has written up a list of 10 commandments for junior game programmers to follow:

  1. Thou Shalt Learn
  2. Thou Shalt Learn Some More
  3. Remember the Code Review to Keep It Holy
  4. Understand Thy Code Base
  5. Honor Knowledge, Keep Reading Books
  6. Thou Shalt Ask for feedback
  7. Thou Shalt Be Wrong
  8. Liketh Nike, Just Do It
  9. Thou Shalt Comment
  10. Thou Shalt Not Break The Build

That’s not a bad list at all, although I have to wonder … what’s with this junior programmer business? This is the kind of stuff that programmers at all levels should be thinking about no matter what their title is.

And really, is there anything more annoying than a senior-level programmer that gave up learning and reading and improving his craft years ago? The kind of person that thrives on being viewed as the smartest guy in the room, so much so that he won’t ask a question that just might betray him? The kind of person that doesn’t want other people reviewing his work?

That kind of person drives me absolutely crazy. Have some damn humility.

Lego Moses

Yeah, um, anyway, I recommend reading Chad’s full post. I think it’s telling (and appropriate) that a full five of his commandments (1, 2, 5, 6, 7) are really just about the general act of learning. It’s good stuff.

But that doesn’t mean I don’t have some constructive feedback. :)

Chad writes …

8. Liketh Nike, Just Do It

I read this one in Game Developer. When you have some great idea, don’t let it get lost in the chain of command. Spend a few hours on Saturday and get it done. If it takes multiple weeks, so be it. Spend the time and get it done. That’s step one. Step two? Let everyone know how great you are!

I recommend strong caution with this, especially for people new to the business. Enthusiasm and initiative are fantastic qualities but trust me, if you go a bit rogue on the weekend putting something cool you just learned into the codebase then there’s a good chance your fellow programmers will explicitly not want to hear about how great you are once they sync up on Monday morning.

A long time ago I worked with a guy who, equipped with the first Game Programming Gems book, had littered our project with a dozen or so Singleton classes over the weekend – and he was crushed when his work, once discovered, was met with, “What the fuck is this shit?” instead of celebration.

If you have a decent lead then he’ll work with you to channel your intensity, and even find a way to put it into a task that excites you. So find more constructive ways to earn those atta-boys.

Further, Chad says …

9. Thou Shalt Comment

Get into the habit! It’s a good habit. Comments make life better.

I would first stress that it is far more important to write code that makes sense on it’s own and is therefore self-documenting. But failing that, yes, please do comment.

Otherwise, I can’t find much wrong with those commandments. If only it wasn’t written for just the junior programmer audience. ;)

{ 2 comments }

This evening I took a night out with a fellow video game enthusiast and very special lady (read: my 7-year-old daughter) to see a homegrown video game tribute band: Descendants of Erdrick.

Fun fact: The band name is a cute throwback to the NES Dragon Warrior games, where the heroes are descendants of the legendary hero, Erdrick.

erdrick

Anyway, we had a great time at the show and were treated to music from these classic games:

Yes, there’s some gutsy picks in that setlist (T&C Surf Designs?) but I’m just a bit sore they didn’t have any pieces from The Legacy of the Wizard. :)

The highlight for my daughter, easily, was when they played the ever-pleasing Zelda music. I’ve always been a huge Final Fantasy 6 fan though, so I was moved by their rendition of Terra’s Theme – especially when my 7-year-old turned to me and correctly identified that piece of music as “the part where they’re walking in the snow in robots, right Daddy?”

Wow. What a great kid.  :)

I got to meet with the band briefly after the show and they were absolutely overwhelmed by the positive response they got from the crowd. I think they’re just so new that they don’t yet realize the value their art is providing to gamers that grew up on these titles.

And for me there a bit of extra value as I kept thinking of these two points as they played …

  1. Holy crap do I ever love video games.
  2. I’ve never been happier to be making video games for a living.

… what a great message to be bringing with me back to the office after the March break.

By the way, some of their music is available on their myspace page but quite honestly I don’t think it does them justice. The enthusiasm and energy and love for what they do was much more pronounced on the makeshift stage tonight. I highly recommend you seek them out in a live venue.

erdrick-myspace

With Austin’s status as the live music capital of the world with a large video game development community it’s a wonder a band like this hasn’t popped up before. What a great opportunity for this talented group. I hope they do well.

Edit: Many thanks go to Austin’s own Game Over Videogames for hosting this free event.

{ 10 comments }

Stop non-programmers dead in their tracks

by Seanba on February 23, 2010

Today, Jeff revisits the theme that made him famous – regarding the non-programmer who shows up for the programmer job interview – but couldn’t write the most trivial amount of functional code.

It’s funny to read about programming candidates who couldn’t even write a loop that counts from 1 to 10. They’re a joke. But isn’t it more of a joke that some lead programmer couldn’t weed these suckers out before he committed company resources to the on-site interview?

In my experience, fake programmers like this can be exposed within minutes*, over the phone, with just one challenge:

Discuss what you know about the C++ keyword virtual.

A C++ programmer smart/experienced enough to deserve further consideration for your team will immediately start talking about virtual functions and their importance in polymorphism. They will mention pure virtual functions and their relation to abstract classes (that cannot be instantiated). They will speak in terms of vtables. They will talk about that time they were burned when they forgot to make a destructor virtual. Or when they found that call to a virtual method from a constructor/destructor. Or when they were forced to employ virtual inheritance to hack through a poorly designed system of classes, swearing off multiple inheritance forever**.

Virtual Boy

They may need a little bit of prodding on some of these points, perhaps due to nerves, and they may miss some finer details, but for the most part they will be able to convince you, within minutes, that they know what they’re talking about. You can now spend the rest of the phone screen digging a bit deeper and getting an early sense of team fit.

And the fake programmers? They are toast. There is just no way they can fake that kind of knowledge and experience. Just politely tell them you’ll be looking at other candidates and get on with life***.

Mind you, this is C++.  From what I can gather Jeff mostly works with Visual Basic, or JavaScript, or ASP.NET, or whatever – but there has to be an equivalent challenge for these folks similar to the virtual keyword mentioned above.

* Credit for this technique goes to Matt Walker, my lead and mentor while at NCsoft.

** Well, maybe not forever, but you get the idea.

*** Real, yet weak, programmer candidates are toast too. Keep looking.

{ 0 comments }

Dead world, full of shades

by Seanba on February 11, 2010

I haven’t been keeping up with indie gaming as much as a game enthusiast probably should  (I have a hard enough time keeping up with all the AAA retail games), but I did just hear about an IGF finalist that sounded pretty cool:

Today I Die is different from any other finalist in this year’s Independent Games Festival. Described by its creator, Daniel Benmergui, as a "game poem," the player manipulates the words of a literary poem in order to advance through the short, web-based game.

Normally I’m not one for web-based games, but it promised to be short so I gave it a try

Today I Die | Flash game

… and now that I’ve played through it my only regret is that it didn’t last a bit longer. And now I can’t keep my brain from buzzing on how Today I Die’s theme and mechanic can be further developed in more mainstream video games.

But what really surprised me about this game wasn’t the novel idea of rearranging words in a poem but the tone and feeling of it all. I know I’m about to get a little too sappy here, but Daniel and his game did a great job taking me somewhere I haven’t been in a long while. I’m all grown up and happy now with a wife and kids and dog and mortgage and career and all that other adult stuff that killed my affinity for despair a million years ago. Still, playing this game made me feel like I was a troubled (read: average) teenager again, consumed with doubt and all the insecurity and self-destruction that comes with it. Even the poetry within the game smacks of the kind of all-important and over-emotional faux meaningfulness that eventually embarrasses us in adulthood.

It was a rather unexpected experience, and truth be told I feel a little weird gushing over it like this, but hey, I guess that’s what art feels like.

Job well done. Now I’m going to check out Daniel’s other work.

{ 0 comments }