Sunday, January 17, 2010

The importance of starting small.

It's hard to convince new BGE users that they should try to replicate the mechanics of some very simple 2D games before doing anything more complex. They try a few logic bricks, they snag a few working scripts, they see all this complex behavior just work, and they think: "If I were to make a whole game, it would only be slightly more complex than this.".

The BGE is a great tool, but it can trick the unsuspecting user into thinking that game development is easy. Well, it's not; game development is still software engineering, and software engineering is hard. I mean, even with something like break-out, the details behind such a seemingly simple game are quite challenging, especially for someone who is unfamiliar with the BGE.

So, while I'm sure that your FPS-MMORPG uber game is "awesome", and that you are indeed capable of learning everything required to make it work "as you go along", I think you should start by re-creating a simple game of break-out first.

Not only will you learn a lot about how the BGE works, but you'll also get a sense of what you're able to do, and what exactly defines a *realistic* project for a single developer with your particular skills. It's an important perspective to have, because otherwise, you'll probably start on some overly ambitious project, spend a year on it, and then realize that you don't really understand any of the scripts you're using, and that everything in your game is a jumbled mess of things that can't be changed without essentially redoing the whole project.

Now, some will say that even overly-ambitious projects are ultimately a learning experience, and that, as such, they should be encouraged. This is partially right: yes, everything is a "learning experience" (this includes failure), but there is a difference in how many lessons are learned, and how long it took to learn them.

Also, there is something to be said about the difference between failure, and *graceful* failure.

With an overly ambitious project, which becomes abandoned after something like a year (or maybe even a few months), the lessons learned are few:
  1. You bit off more than you could chew.
  2. Using other people's code without understanding it first was a mistake.
  3. The people on BA didn't want to make your game for you.
  4. Game development is hard, even with the BGE.
Ok, so you probably learned a few technical details about the game engine as well, but my point is simply that you could have learned *a lot* more, in a significantly shorter period of time, by pursuing more realistic goals.

And, as an added bonus, you would actually have a complete game that your friends/family could play.

1 comment:

  1. Perfect!

    All mistakes listed by Social checked! I did all of them! : ))

    Worth a mention: MAINTAINING the project is a pain in the ass.

    Also: making sure that other people understand how your .blend file works (logic) is something no one cares about, and, in my humble opinion, that's crucial to expand any Blender project

    ;)

    ReplyDelete