One more time: Game Framework or Game Engine?
Not long ago, I mentioned how, thanks to you all, I manage to stick to certain decisions. Decisions like whether to make games using an engine or a framework.
My recurring dilemma of whether to stick with the Godot engine or switch idealistically to the MonoGame framework can probably be considered an ongoing joke by now 😉
Nevertheless, today I will tell you how I've gathered logical arguments on this topic.
I'll skip concepts like the game library since it's a game development layer so low that it's clear to the naked eye that it's beyond my capabilities. Those interested in delving into this topic can refer to this article.
We're interested in the next level - the framework - which is a collection of game libraries, with my undisputed favorite (due to C# and the catalog of games already made in it), namely Mono Game.
Sometimes, when the Godot engine seems too big, it's easy to fantasize about "simpler" solutions. What does the simplicity of a framework entail? Well, it's like taking an engine, removing the level editor and similar tools, and leaving behind a connected set of libraries.
Engines inherently aim to make our lives easier by reducing the amount of work we need to do. So, they make choices for us and don't require us to do much programming. They expect us to adapt to it. In contrast, a framework needs to be adapted to our needs by adding various tools.
It might not seem like a big deal, but as a programmer, I feel tempted to program as much as possible myself, to maintain control and understand what's happening. Whenever someone mentions how wonderful and educational that experience is, I feel enticed; I've received an offer I can't refuse.
And this is where the "games from scratch" channel comes in, all in white, proposing a solution:
Start with the engine
Learn how it works
See what you like in it
See what you don't like in it
Transition to the framework and…
make it your own based on your insights
select your own tools,
implement your own pipeline.
In this way, you will create something like your own game engine. A full circle.
If you think about it, it sounds obvious. Until I remember what the engine does for the developer:
Rendering engine and/or other graphical tools
Memory management
Networking
Audio
Physics
AI
Scripting
UI
User input
All sorts of integrations, like importing 3D assets
Plus everything I forgot
Seriously, I’d prefer to focus on the game then to implement all that 😊
Recommendations
Warren Spector, creator of the epic hit Epic Mickey and a hidden gem called Deus Ex on his 40 years of gamedev.
And Valve breaks down what will get your game featured on Steam (gamedeveloper.com)