Are games engines worth it for casual games?
Should you purchase a game engine to create your latest casual game? Or will you just need to throw it all away once you realise the game engine doesn’t live up to expectations? Will you have to start all over from scratch in 6 months time?
Most game engines are not game engines at all but just a rendering engine with a lot of middleware haphazardly bolted on to the graphics system.
Unfortunately “game engine” is a poor term to use to describe something so specialized.
Imagine if you will someone stating that they have “a car.”
We shall call this “car” a “Honda Civic.”
And so with this Honda Civic the owner is going to drive off-road across the desert in the Paris-Dakar Rally, they are going to pick up 2000lbs of lumber at Home Depot for a building project, they are going to take their family of five on a two week vacation, including all of the luggage, they are going to enter and attempt to win the IndyCar 500, tow a 30ft horsebox and to cap it all off they are going to shuttle off the entire high school football team at the prom, including their dates.
So any reasonable person will realise, you need specialised vehicles for specific tasks. A rally car, a heavy truck, a minivan, and so on and so forth.
So when people claim to have a “game engine” it is a bit like claiming “I have a car.”
Sounds rather ridiculous when you think about it, right?
Nobody would think of attempting to use the Diablo 2 RPG game engine for a vehicle racing game — and if they do they should be shot — and you wouldn’t think of using the Star Wars Galaxies game engine to create a casual puzzle game — and if you do, well… good luck to you.
The generic parts of a game engine, the graphics engine, the audio engine, the A.I. engine, the asset management system, are all re-usable on any project just like parts of a car, e.g. the steering wheel, the seats and the actual engine. These parts are all re-usable in other vehicles, but you need to configure the generic parts in such a way to make them work harmoniously.
So other than the issue with Not Invented Here/Other People’s Code which pretty much every programmer, everywhere, suffers from, it comes down to picking the right tools, and the right “car” for the correct job.
Having said all of this, creating technology from scratch for a casual game is a bit ridiculous as you aren’t delivering value to the customer whilst you are doing that and frankly, the customer that buys casual games doesn’t bloody well care what engine you used. Pick a generic game engine, Ogre, Torque, Irrlicht, etc and create some custom classes specific to your casual game needs. For casual games my company Infinite Monkey Factory maintains a word search game engine, a pinball game engine, a lightweight RTS game engine, a gem drop game engine, a hidden object game engine, and a slew of other niche casual game engines for very specific genres of games. The beauty of having a dedicated game engine for a particular game type is that a prototype idea takes only a few hours to create.
So yeah, get a game engine, I highly recommend it, just realise it won’t do precisely what you need out of the box. A game engine is a foundation on which to build, and not all game engines are created for all game purposes. The “game engine “is the glue that holds all of the other parts together, and it is the glue that is often the weakest part of the whole, the glue is most neglected and can rarely be made generic enough to suit all purposes.