I wrote about the difference between creating the game engine, and creating games. The article got some good comments and questions, and I decided to write bit more about this topic.
Basically, I’m saying that there are two ends in this scale:
- Game engine developers in the other end…
- …and Game developers in the other end
Game engine developers focus on building the engine. They focus on creating shadow systems, rendering system, you name it. They basically create everything to make it possible for player to interact with images and polygons on the screen. They focus on creating stuff that’s needed to build a game. And there’s nothing wrong with this – if that’s what you want to do.
Then there are the game developers who concentrate on making the actual gameplay. They focus building everything related to playing the game. If you want to make games – then concentrating on this part is my recommendation.
While there are good sides on creating the engine from scratch: like you get to modify it fully to your needs. But, I really think that creating fun games is not about the technology. It really doesn’t matter what engine you use. Creating a complete engine requires great amount of time, so I wouldn’t recommend it to new game developers.
Even if you think that it will “save time in the future”, it might not be such a good idea. Basically because as the time passes the technology changes – and your plans might change. New consoles and new game operating systems are developed and you might end up updating the engine to deal the compatibility and other issues. Perhaps in the future you want to create different kind of games, and your future plans might require different engine than you first created. If you want to concentrate on building the engine, then that’s fine – just realize the difference between building the engine and building the game.
While creating your game engine might enable you to create the games you want, you should think about how much time you could save by taking some 3rd party engine and surviving with that. While 3rd party engines might not provide everything you need, they most likely have all the necessary elements to create gameplay you wish.
Naturally there can be times when you would need to add additional features in the engine to make it work for your needs. Corvus commented this by saying:
“I think your distinction between the two is a little more severe than it needs be. While I wholeheartedly encourage game devs to explore the market and find the excellent tools which are available to them (the FOSS community has many great tools), there are times where wrestling a 3rd party engine into doing what you need is not cost effective and actually decreases the impact of your final product.”
I agree that 3rd party engines (and tools) can cause problems – sometimes major, sometimes minor ones. I agree that wrestling with them is not such a good idea. I think you should try to pick an engine that meets most of your need, and then simply survive with it.
I think the biggest point I try to say in this discussion is that many developers waste time on building the engine, when they should be building the game. I would really recommend new game developers picking one game engine, and simply building a game using that. I really think people who want to make their first game should get a ready made tools and use them. I’m sure that there will be problems when using a 3rd party engine, and it might not be possible to do everything you’ve planned with it. I think you should simply use the engine as much as you can. If the engine doesn’t have nice shadows, then simply ignore that part. If the engine cannot handle big forests or lots of polygons, then survive with less. Simply create a gameplay you can. If you want to make games then start a small game project first – don’t start a big game engine project.
I said in the previous article and I say this again: Whenever I can, I concentrate on making the game rather than the engine. Naturally you might need to program game engine for some parts, but my guideline is buying external parts whenever it seems right. I know that I don’t need to do everything by myself – I can buy libraries and parts when needed.
Bottom line is: if you want to be a game developer, then you should spend more time building the game rather than building the engine.