Game Development Personal Development

Thousander Club Update: September 11th

For this week’s Thousander Club update:

Game Hours: 188.25 / 1000
Game Ideas: 432 / 1000

Target: 693

The deadline for IGF 2007 has come and gone. It’s September, and I am not even close to selling a game of mine on my website. Well, I’ve been meaning to update my business plan for some time, and now that I’ve basically missed every date I have ever set, now would be a good time to do so.

I feel like I need to “get back to fundamentals” as Michael Jordan would say, but I realized that I don’t know what the fundamentals of game development would be. I feel that by expending so much energy on making a component-based game engine, I am preventing myself from making a game. And I’ve never made a Pong clone before, which means it is complex enough to be a real challenge for me. How is it that I’ve been working on projects for over a year and still haven’t made anything playable? What made me think that Pong would be too easy but an entire game framework, specifically a component-based one, wouldn’t be too hard?

I’m going to focus my limited energies on making a Pong clone. Am I scrapping my engine? Hardly, but without the experience of writing a few games, I don’t think I can even begin to identify those things that my engine would need to be able to do. I don’t like that I’ve now switched to a different project twice this year, but I feel like I am spinning my wheels trying to make a component-based game engine. I’ve managed to make some good components that I can probably copy and paste into a more “hard-coded” engine without too many changes, so the past five months or so haven’t been a total loss. Maybe I just needed the experience of biting off more than I can chew.

As has been said before, game development is tough. Even if you have a ready-made engine, making a game is a difficult thing to do. I’m of the mind that the code, the engine, is just infrastructure to support the game and is NOT the game itself. While an open-source component-based engine would be nice to have, I just don’t have the experience, knowledge, and resources to make one that would be useful in a timely manner. When I can prove that I can make Pong and other game clones, maybe then I can have a better idea of what it takes to make an engine that would make all of those games. Making a Tetris clone is something that still makes me nervous whenever I think about how to implement the various pieces and how to spin them.

Saying the above means admitting that I am still a beginner at game development. Maybe a little wiser than I was a year or two ago, but still a beginner. Pong is supposed to be relatively easy, though. Perhaps it might only take me a month of part-time work to create it.

9 replies on “Thousander Club Update: September 11th”

It’d be interesting to see what a generic opensource game component framework would look like and what features it would have. Something where you could just fill out components and plug them into an engine could be pretty cool. Things I can think of are a component database, the ability to create components from xml or a config file, component serialization and messaging. A GUI to edit components would be nice also.

So far my component engine would allow you to specify input handlers for specific entities. Each input handler can detect key presses, key releases, or the state of the key, and upon detection, it can call a list of actions to perform. The obvious one is to move an entity in a direction, and then I would update the entity’s sprite to match the position. I also used input handlers to easily toggle gravity in my physics tests.

But it is so far away from having enough features to be really useful, and I think the way it is currently setup is actually too limiting still. For example, I can’t easily think of a way to change input handlers on the fly, which would allow you to move an entity in one situation, but then move through a menu after pausing.

I think that I’ll get three or four games under my belt. Maybe then I will have some insight into what I would need and how to code it without restricting my options too much.

As was I. I was inspired from that slideshow, the article in Game Programming Gems 5 regarding component-based game development, and the article called Object-Oriented Game Design which was really about components.

Well, that 415 page paper should make for some interesting bed-time reading. I could have sworn I had downloaded it before, but I don’t seem to have a copy on my computer. Thanks for the link!

Well congrats in finally deciding to make a game, however, I don’t think you were “biting off more than you could chew”. You did learn stuff, and you have partially working source, that’s hardly too much. The thing that’s important, however, is that you finish games. For that sense of accomplishment, so you really don’t feel like you’re spinning your wheels. I mean I think everyone who wants to make something they’ve never made before are “biting off more than they can chew” – i mean tetris was a big deal, as big to me as would making the next mmorpg or the next quake,doom,what-have-you. I mean I knew nothing and eventually knuckled down (or sure maybe whined a bit, and got some people to help me out, but still I made it) and finished it.

That is the real turning point. The feeling of accomplishment. Don’t ever let anyone think you aren’t ready for anything, because truth is you aren’t ready for anything, so you just have to learn it. And since you’ll be learning for the rest of your life (or career end whichever comes first) it’s not going to matter one bit whether you learn how to turn the pieces now, or how to build a huge online multiplayer world later. All that really matters is that you finish your projects.

Of course you can be realistic, if a program just isn’t working then no need to keep beating yourself up, just start on something new. However real value comes with finishing your projects. You just need to be sure that you don’t cop out early and that you really are having problems that are insurmountable in your current position. Then if you really like the project you’ll just learn to figure it out.


Comments are closed.