There are many libraries and frameworks that take the grunt of game dev, without locking you to their specific physics engine, etc.
For example
2D: SFML, Easily create a window and move sprites around, rest is up to you. (C++)
3D: JMonkeyEngine (Based on lwjgl) is basically the same, with 3D rendering instead. It contains tools for physics and collisions, but those are optional. You can do whatever with meshes in 3d space (Java)
I probably should have realized this before fighting with complete game engines (unity, godot) for multiple years even though I prefer doing stuff myself. I find it easier to handle when I’ve made it myself.
Anyone else know any minimal but feature-rich engines?
I was writing my first game in XNA .NET framework, and I’m really glad I had that experience. It forced me to understand (and figure out) the insides of a game engine, such as collisions, GameObject model or game loop really well, and since by that time I had no idea something like game engines exist, I learned to not take those features for granted and actually had to research and write them.
When Unity went free, I appreciated the features so much more, and now I also see that some of the newer developers have no idea what’s actually happening in the background, which is a shame.
I’d recommend that anyone interested in gamedev starts more low-level, and only after that gets to more heavyweight engines. Sure, you probably won’t make a 3D game, but making a simple platformer from scratch is an amazing learning experience.