ApathyWorks

Non Gameplay-related Development

Posted by Alex Jordan on

Cute Things Dying Violently was something I expected to program in three or four months. It wound up taking fourteen. Even so, most of the major gameplay stuff was done by Chrsitmas. So what the hell happened?

I'm assuming that the back eight months of development mostly involved tying everything together. To figure out whether or not this is true, I'm going to go through my code base and determine what was gameplay-related, what wasn't, and where certain tedious batches of code were downright inevitable:

That's not everything, but that covers the big-ticket items.

In reviewing the list, I find it astonishing that only the first three sections (CTIngame, Rules, and Animal Stuff) directly handle gameplay. That's it. Everything else regulates the game.

I'd find that horrifying, but pretty much every other section handles crucial, unavoidable systems that were necessary for the game to run well. In LevelInfo, all of the level object types had to be enumerated, period, or else I wouldn't have much to do with levels. Ditto for CTLevelEditor, which had to be finished so that I could easily make levels for the game. Data needed to be saved and loaded, so there's the StorageHandler. I needed menus and instructions, so of course I needed to put a lot of work into the MenuSystem and CTHUD stuff...

The unfortunate conclusion is that CTDV took forever to make because I did a (mostly) thorough job of making it. The in-between stuff is there so that the player can swiftly and cleanly move from one level to another, and be properly informed about what they're playing and doing. Nothing in there is really superfluous... if I spent a ton of time on it, it's because I knew I was going to use a lot of that feature (like Menus) and I wanted the code to be solid every single time I deployed it.

Which brings us to a problem with XNA: it's relatively easy to setup gameplay (and doing so only took me six months, remember), but since it's a bare-bones library with no support features, everything else has to be done from scratch. Saving, loading, menus, messages... you name it. Most modern engines are going to unified development environments these days, giving you a framework and the tools to quickly implement this filler stuff. Not so with XNA.

And now I'm sitting here and pouting, realizing that I worked my ass off in XNA despite the fact that it's not a very rewarding library (development-wise). Harumph.