This is just a collection of links and resources for people looking to get into making games sans-engine. I made it to accompany a talk I gave on the subject at IGDA Melbourne in 2025, but it might grow from there. Who knows?
Monogame is a framework for making 2D games in C#. It is descended from XNA, a framework Microsoft made to entice indies onto their platforms back in the noughts. Lots of cool things are made in XNA, including Celeste, Fez, Terraria, Stardew Valley, and all of Supergiant's games (eg Bastion, Hades). This is a great option if you're transitioning from Unity, because it's all in C# and you don't have to deal with things like memory management and asset loading and whatnot.
CS50x is a free introduction to computer science, offered online by Harvard. It's not about games but that can be an asset. It starts out low level, with just C (not C++ or C#), and you will very much learn some real programming if you get through it. The people who made it really know what they're talking about, both in terms of computer science and pedagogy. A great resource to learn if this kind of programming is for you - if you find the C part of this engaging and interesting, you should probably become a programmer!
Learn OpenGL is a set of tutorials about making graphics with OpenGL, in C++. OpenGL is a graphics API that is pretty outdated these days, having been superseded by the more modern low-level libraries like Vulkan and DX12. However, those are extremely inaccessible to beginners, and lots of experienced graphics programmers (including myself!) recommend learning OpenGL first and then transitioning later if you want. You won't have access to some modern features (like hardware raytracing) but it's absolutely feasible to ship a game with it as of the year 2025.
Handmade Hero is an educational project to make a game very from scratch. Not what I would recommend, but a fascinating series to get an idea of what that entails, and lots of interesting information to be found.
My OpenGL tutorial 0 is a set of specific instructions to get all the yak shaving done (with Windows, Visual Studio, C++, GLFW, and GLAD) and start a tutorial like the above one. I've had a few people say they struggle with this, so here you go!
The spirit of making games without an engine is being forced to learn/invent non-trivial code systems, in order to make a thing happen. This isn't unique to DIY engines, though! I've written a couple of ideas for Unity 'projects' that have limitations built in to give you a spiritually similar experience.
2D platformer: Build a 2D platformer in Unity. No need to do any graphics really. The main rule is, your character controller prefab isn't allowed to have a Rigidbody2D component, or any kind of collision components, attached to it. You can do raycasts and shape overlap checks, and your level objects should have 2D colliders on them, but that's it. Then...
Top down racing game: Build a micromachines-style top down racing game in Unity. Avail yourself of all the 2D physics you like, including on the car object. However, the car needs to sometimes go into a slide (like if you take a corner too fast), without always going into a slide (like a drifting game).
Coming soon(ish): More ideas for Unity exploration projects, a copy of the line renderer tool I use to teach physics with, and some examples of games made from scratch and what's interesting about them.