|December 19, 2012, written by Monogon||Aril, Technical|
In game development there’s always the discussion about whether to use pre-built game engines or not. With pre-built I mean engines like Unreal, Source, Cry and even Unity. I’m not going to give my opinion about whether using these engines is good or bad, I’m just going to tell you about the advantages and disadvantages of both and good situations to use either one.
As you may or may not know, Aril’s engine was written from scratch. Maxim and I built this engine using c++, openGL for graphics and openAL for audio. For those of you who don’t exactly know what an engine is or what defines it, the engine of a game or any program for that matter, is a base from which you are able to create games or other software. This is still a bit vague so look at it this way, consider your engine a kitchen.
When you start writing a program your kitchen, which in this case is a self-made engine, is just an empty room. You think about the things you want to cook in that kitchen and what you’ll need to do so. Let’s just say we want to bake a big chocolate cake. We’ll need a counter to work on, a furnace to bake the cake, a bowl, a mixer and a fridge for our ingredients. This is basically all our kitchen needs to contain to bake cakes. Our kitchen is now small, efficient and baking cakes will be fast and easy, but building this kitchen takes a lot of time.
But let’s just say we want to bake cakes without having to go through the trouble of furnishing your kitchen. You just want to bake cakes or anything else using the same kitchen. This of course seems a way better solution than having to build a new kitchen for every different meal you cook. In a lot of cases this is true, because furnishing your kitchen takes a lot of time and effort. But let’s just say we still want to bake cakes. In a bigger kitchen it would take longer to do so. Walking from the fridge to the counter to the furnace would take longer because of all the extra equipment in between. Also finding the right ingredients in a very full fridge and finding the bowl and the mixer in filled up cupboards would take longer. Also, if your kitchen doesn’t have a cake tin you might end up making a pie.
So why did we decide to write our own engine then? Because we thought building Aril would be a piece of cake. (get it?) Yet you always tend to underestimate these things and you spend a lot more time on it than you had in mind. This being said, we wanted a lot of features in the engine which most commercial engines do not supply, like peer to peer networking with hole-punching and scalable vector graphic support.
So how do you know which method you should choose? That depends on what you will be making, how long it can take and how capable you, and possibly your team, are. If you want to just bake cakes, build your own kitchen. But if you are making way more complex meals, you are not able to build kitchens or you just want to cook something up, use a pre-built engine.