Why make our own game engine?

When deciding to make a video game, one of the most common pieces of advice is to not make a custom engine, but to use an already available commercial or open-source engine. This is good advice for many people, and the main reason is that making an engine costs a lot of time and money, which could be spent making the gameplay features instead.

Why then do we want to write our own engine? The main reason is that a custom engine allows us to implement unique features and capabilities. On the Aesthetic Principles section I mentioned some of the goals of the engine, but that's not the same thing as the goals of the game itself.

The game I want to make is a 2D shooter, with real-time multiplayer, that loads instantly and can be played by anyone without creating an account or downloading anything. Also, I want to allow the players to change the parameters of the game, such as weapon damage, level layout, and even victory conditions.

There's no engine available that has those features, and that's why we'll have to make one.

Next: Hello World and basic setup