Roll your own engine, roll your own problems
Recently I was approached by a group of hobby gamers who wanted me to make some art for a game they were working on (for the record, I have no interest). They tried to persuade me that they were worth working with with the line “…and we’ve built our own engine.”
A few days later I heard the same on MSN, about a small hobby project – “We’ve built our own engine”.
Which made me ask – “WHY?”
If you are a programmer wanting to learn about engines, then by all means, go ahead (although you’ll learn quite a lot just tinkering with existing engines). But if you are a small group of hobbiests wanting to make a game, you really shouldn’t.
Writing engines is hard. Really hard. And there are already so many out there that there is bound to be one that suits your needs, or almost suits your needs without you having to write it all. Some do costs hundreds of thousands of pounds, but Torque costs $100 for a single license.
You’ll need to write your own tools, and probably exporters. You’ll need to figure out lighting, and memory access, and probably streaming. Oh, and animation systems and directional sound. Input and output routines. I almost forgot about particle systems, and the scripting language to write the actual gameplay with. Oh, did you want network code with that?
You are going to end up writing more engine code than game code.
“But it’s a great way to learn!”
Yes, for one or two people – but what are rest of your team going to do while you hack away for months? Yes, they can make assets, assets that they will not be able to see in game because there is no game yet, because there is no engine to build a game with.
In the end, an engine is a program that maintains the game world, and if you want to make a game, why not concentrate your efforts on making a game? An off the shelf engine will probably suit most of your needs, allowing you to spend more time on the fun stuff.
Thank you to Dino for the phrase I used for the title.