The Chicken or the Engine?

When designing an application that has separated functions for created and displaying data, the developer faces a dilemma. It is difficult to test the application that displays the data without an existing test set. However, it is hard to create a data set by hand, and it is difficult to know whether your data creation program is operating correctly without being able to view the product in the display program. It always ends up being a balancing game; develop a small part of the display app with a limited hand-crafted data set, then build the creation app, and then try to develop small modules in parallel until you have a robust enough codebase.

Really the problem is the development cycle itself. Say I want to create a game. So maybe I decide to use a preexisting engine so I don’t have to create my own renderer (by the way, my 3D game engine is coming along nicely, albeit slower than I expected. I need to rework a lot of the math behind it, but once I’ve built the basic graphics part I expect it will get easier). First you strip down the engine, but then what the hell do you do?

I suppose you code game mechanics, or at least the UI and then the way user controls interact with the game. Then you start to build up a set of game entities, until you have the basic game and then you can add in features. You can create test assets as you add features. Once the main meat of the game is coded, you can pass it off to the environment designers, etc. After that you can continue to polish the game and add features that don’t change asset requirements or level design needs.

But that’s only if you start with a pre-built engine. When building an engine from scratch, you need some sort of test data, such as a 3D model or XML file. You need it to be be simple enough to debug, but that may involve a lot of hand work. Often you need the display codebase to build the test data in anyways! Hmm. Not sure where this is going. I guess it was more of a complaining session than anything else.


Say something! Do it!

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: