I've been making video games in some form for 20 years, so I wrote an article about my process - and why I don't use an engine.

https://noelberry.ca/posts/making_games_in_2025/

Making Video Games in 2025 (without an engine)

Thoughts, tools, and libraries I use to make games

@noelfb for some reason I’d never considered it possible for me to just generate sprites/animations from .aseprite files instead of hand-exporting. Maybe this is because I’ve mostly worked with artists that “do their own thing and send the files over” in a less professional capacity, but when I’m on my own and using aseprite, why am I making this process tedious for myself??

maybe this illustrates how major engine workflows ruined game programming for me a little

@maya Yeah I think this stuff can be easily missed when the big engines have *their* way of loading things, and it's not really accessible to modify or add your own content types.

I have my C# aseprite loader here if you find it useful at all: github.com/FosterFramework/Foster/blob/main/Framework/Images/Aseprite.cs

(There are probably more complete libraries somewhere, this just did what I need - it's missing some stuff like loading tileset data, etc)

@noelfb I should spend more time on this and less time trying to avoid making tools by writing boilerplate and doing unfun busywork. maybe ill look at if the rust community has something like this and if not it’d be a fun project to port to something like bevy :)

@maya Aseprite also has a pretty good CLI. In the end, this is how importers often work; using the command is easier and more future-proof than reinventing the file format reader. But the processing is slower.

Omg. I need to get back to gamedev again. I miss it so much.

@noelfb: thanks a lot for the article!!

@maya I usually have a script that watch my project folder waiting for .aseprite files modification and then run aseprite CLI to export those files to .png. So I can just draw the images and save them, they will automatically be exported to my project.

Very old script example here: https://github.com/stephannv/aseprite_listener/blob/master/aseprite_listener.rb

aseprite_listener/aseprite_listener.rb at master · stephannv/aseprite_listener

Listen changes on .ase/.aseprite files in specific folder and export .png and .json to a target folder - stephannv/aseprite_listener

GitHub
@stephann thats the minimum but I think I want to do it like noel and load the data directly instead of using an automatic export middle step
@noelfb this is a lovely writeup. I've used custom engines (in mid-sized teams) for the past 8 years and the benefits are often quite obvious. For solo projects I always defaulted to Game Maker because of "I just want something playable real quick", now I'm using Godot for a project with a friend but I would love to give this a go. It just sounds like a lot of fun.
@alexkalopsia thanks Alex! yeah I think sometimes, when you just want to experiment with an idea quickly, tools like Game Maker and Godot can be fantastic :)
@noelfb Thanks for the feedback on tour pipeline and tools! On my side, I'm making games for more than 30 years, and also using my own frameworks for the same reasons : mastering the code, less constraints and pleasure :)
@noelfb I just featured it on the weekly update at enginesdatabase.com. That was an amazing read, thanks for writing it!
@noelfb been going the "#madewithmyengine" track as well, so I'll sure #booxread that ...

Hi @noelfb

As a FLOSS enthusiast, I'm glad you share it. I think the VG industry, even indies despite FLOSS too much. IMHO, small studios should invest in shared FLOSS to be competitive, big studios can despite FLOSS because they can pay for licence/inner development of tools but indie should rely on it.

Do you know any like-minded people in France? Whatever the studio's size. I'm looking for people ready to pledge a yearly donation for FLOSS (godot or whatever) for @copiepublique

@noelfb really enjoyed the article, especially about the tools for input/rendering, etc. that seem like the biggest hurdles to not using an engine. I'm considering switching away from windows soon as well. What Linux distro do you use? I'm thinking of trying Bluefin and Bazzite for game compatibility but haven't had the time to try yet.
@programmylife thanks! I'm using Fedora, and have for a few years. It can take a bit more setup for some stuff since it intentionally doesn't come with proprietary stuff - but I like how up to date it keeps things.
@noelfb do you play much in the way of recent games? If so, how do you install things for compatibility? Not looking for specifics, just wonder if you install GPU drivers yourself, or if there are packages you are using for that kind of setup.
@programmylife yeah, I've been playing stuff like Expedition 33 on my Linux PC without any issues. NVidia GPUs you will likely need to install, but those have gotten considerably easier in the last 1-2 years. AMD GPUs are even more straight forward, I believe.
@programmylife (as in, the drivers are just a package you install from your software app or package manager)
@noelfb Thanks for writing it up! Great article and tbh I share a lot of key points, especially those related to Windows. I may give it a go and try something similar!

@noelfb I love the article! My time is spread so thin that, while I would love to take this approach, I swerved over to Game Maker... I'm a control freak, so it's been tough, but when I was rolling custom, I found myself spending so much time on the tools that I forgot what I was doing 😅

I want to get back to custom, but I wouldn't know where to begin (but I do love C#).

@noelfb making everything yourself is one of the great joys in life.
@noelfb Hello 👋 ! Thank for sharing your experiences in a very detailed post 😊. Nevertheless is not "without engine" is "without existing one" or "with my own". You do an incredible work by recreating one by yourself (with the help of some framework). I think it is important to say it.
@theludovyc i am conflating "engine" with "proprietary commercial game engines like Unity, Unreal, Game Maker, etc" to simplify my point under the common understanding of the term.
@noelfb Oh ! I get it. Thanks to clarify it 😊