Friday, July 17, 2009

Walking Away

Today I learned to walk away from a feature that was bugging me.

Stupid features.

First of all, updates have been slow in the last month because:
  • There is a plethora of sunshine and nice weather
  • SimCity4 got reinstalled on my computer
  • The Secret Of Monkey Island: Special Edition came out on Steam
  • ArmA2 came out, which is wicked fun (helicopters!) and has a scripting language (map editing!) so I've been getting my code fix through there
But above all of those, it's mostly been because this one particular feature had been really nagging at me. It's simple on the surface: Whichever way gravity points, direct that to be "down" on the Protonaut game screen.

As I chugged away at it, I started running into more and more problems. Lining the camera up with the player, keeping the player himself oriented correctly, orienting the player's bounding boxes, adjusting all the in-game vectors (throwing TNT "up" isn't so easy any more, and all the movement keys need re-working).

It was getting more and more difficult, and the more I dug at it the more often small "gotchas" would spring up. It really started to get on my nerves, and I was having a lot of trouble staying focused on the whole project because of it.

Tonight as I lay in bed around 1AM, I couldn't stop thinking about it. I decided to get up and do something about it. I spent an hour or two looking at all the code, taking stock of all the work - and then took a step back and said, "wait a minute."

"Is this feature even any good? Will it improve gameplay at all?"

I couldn't wrangle a "yes" out of that. It's a feature that's kind of neat on a technology scale, but as many things as it would make "cool", it would make other things impossible. For example, a few people have made levels where you are "on a train" that is colliding with the wall at a rapid speed. I don't have any moving parts in the game though - the movement is simply the gravity vector pointing a little more sideways than is normal, and the "train" is actually just "falling" downhill. If I rotate the screen to match gravity - it ruins the illusion and makes the control mechanism (hopping around on the train while it moves) impossible.

I was thinking I'd eventually have switches in-game, that would allow you to rotate gravity at will. Again, kind of neat - but I don't think it really fits this game too well.

So I walked away from the feature. I gave it two big middle fingers as I reverted back to an earlier fork.

In the hour since that reversion, I made a dozen changes and added some new features, uploaded a new version to the site, and made a few blog/forum posts about it.

I've gotten more done in the last hour than I have in the last month.

Anyway, build 24 is live on the Protonaut site if you want to check it out. New stuff in a nutshell:
  • The level editor now has cursors that indicate the current drawing mode.
  • TNT has been pretty much transformed into something not-TNT-like. It still asplodes, but with hardly enough force to move an ant. I might make them simply "fade out" eventually instead of exploding. It detonates after 5 seconds.
  • Nitrogen (as everyone knows) is unstable and will explode upon touch (in the fictitional microbial world of Protonaut, based on authentic Xiuuzn Universe Physics and Chemistry). I think this might be a big key to more-fun-gameplay, as it adds a direct-death challenge to the player.
  • Nitrogen still has to be collected/destroyed, though, so just hopping over them all won't work...
  • But "TNT" (or whatever it is now) can set off the Nitrogen for you. :) Hucking things around is now a required game mechanic! (if there is nitrogen in a given level, that is)
  • Some display glitches resolved, level name now appears, and included some network error catching for level loading.

No comments:

Post a Comment