
You don’t need all the features included in a commercial game engine, and you can make your asset pipeline / level editor / whatever way smoother to use when considering your specific use cases instead of needing it to be general purpose.
Specialization: You want to optimize your workflow for the kind of games you make. It’s a good reason to make your own engine, cause there isn’t any other option in cases like this. This can mean some kind of massive-scale simulation that requires some to-the-metal coding to make performant ( Factorio) or some custom thing that doesn’t fit into any existing molds ( Noita, Miegakure), or wishing to target an odd piece of hardware that current engines don’t support ( Playdate), or any number of other things really. Novel Tech: You want to make a game that uses a piece of novel tech that no other engines out there currently support, or can’t be easily made to support in their current state. Here’s a few good reasons why you might want to: Lets start with the absolute first question you should be asking yourself if you want to make your own game engine: Why?
I won’t be going into any deep technical details here, this is about why and how to develop a game engine, not a tutorial for how to write the code.
In this post I will go over why you might want to, what systems are needed in a game engine, and how you should approach development of it.
Great! There’s lots of reasons to want to make one yourself instead of using a commercial one like Unity or Unreal. So you’re thinking about making your own game engine.