Monday, August 11, 2008

To create or to borrow

I seem to always find myself working on game projects in spurts, often spread months apart.  Inevitably, by the time I've started a new project, technology has changed enough to warrant an investment in a newer, shinier codebase.  With this realization, I always face several questions: Do I use an engine, or just bake the engine into the specific game?  I almost always choose the former, but then comes the harder question: Do I write my own engine to be exactly what I want it to be, or do I borrow someone else's?

In the past, I'd readily take on the challenge of creating my own game engine.  I've written dozens of sprite/animation libraries, several GUI systems, and a few 3D view management systems.  This process is invaluable and despite what your mentors may tell you, I'd recommend doing this at least at some point in your game-developing life.  The lessons learned are worth the effort, and you'll consequently approach third-party engines with much more insight into their motivations.

But what inevitably gets me are the tool requirements.  If I'm creating any game of remotely significant scale, I'm going to need some sort of sprite editor, level editor, and animation editor at least.  It's not feasible to hard-code these assets anymore. 

To this end, I've been re-exploring the Flat Red Ball engine, which has above average support (dare I say, "exceptional"), a sprite editor, an animation editor, and a particle effect editor to name a few.  It began as a Managed DirectX engine and evolved into an XNA Game Studio engine, with support for XNA Game Studio 2.0 as of this writing.  I have a healthy level of concern about the longevity of this engine, but my skepticism is tempered a bit by the fact that the creator has maintained this code for over two years straight with regular updates, and responds to forum posts and IMs promptly.  It seems to be a labor of love for him, and hopefully he'll see more from it in the future.

No comments: