Are You a Game Developer or Game Engine Developer? (Take 2)

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.

Juuso Hietalahti


  1. “An important tenant of TDD is to write a test case and then only the simplest code necessary to make it pass. You don’t even think about future test cases or write code that accommodates them.”

    Excellent piece of advice.

  2. I think an important issue here is that if you are building your game without a 3rd party game engine then you need to be very careful not to fall into the trap of making a game engine. You have to focus on meeting your games’ needs. You have to write the code you need and completely ignoring the potential the code has. It is sort of like Test Driven Development in a way. An important tenant of TDD is to write a test case and then only the simplest code necessary to make it pass. You don’t even think about future test cases or write code that accommodates them. You try not to anticipate the future and focus on the one small step in front of you. In terms, of a game you need to write the simplest code that meets your game’s needs and completely ignore things like reuse, modularizing, architecture and all the cool bells and whistles you could add. Instead, you let the needs of game dictate the structure.

  3. You have to think about programming/logic/structure (probably more than you want) while you are writing the game itself, not only while engine coding, a part which i’d like to omit in the future.

  4. @Rick: Nice post.

    @Scott: Take a look at http://www.devmaster.net/ – they have quite a list of engines…

    @HoboBen: I must point out that there’s nothing wrong in doing the game engine – if that’s what you want to do. I’m simply saying that if you want to make games, then make games. If you want to make engine, then make engine :)

  5. I suppose I agree with this article when game development is for profit, or for money to eat.

    But if you’re a programmer for fun, and profit is just a nice coincidence, then learning about how to create a good engine behind your game can be both rewarding and a good chance to improve you as a programmer as deeply as how you even think about programming/logic/structure, etc…

    Basically the “it’s fun!” argument. :-)

    There’s been some interesting discussion here.

    Cheers :-)

  6. Thanks for the advice. I’m new at game development and I think that I will take your advice and try to stick with one engine and just focus my time on developing the game.

Comments are closed.