Making Video Games in 2025 (without an engine)

2026-02-274:38457215noelberry.ca

Thoughts, tools, and libraries I use to make games

It's 2025 and I am still making video games, which according to archive.org is 20 years since I started making games! That's a pretty long time to be doing one thing...

Screenshot of my website circa 2011

Screenshot of my website circa 2011

When I share stuff I'm working on, people frequently ask how I make games and are often surprised (and sometimes concerned?) when I tell them I don't use commercial game engines. There's an assumption around making games without a big tool like Unity or Unreal that you're out there hand writing your own assembly instruction by instruction.

I genuinely believe making games without a big "do everything" engine can be easier, more fun, and often less overhead. I am not making a "do everything" game and I do not need 90% of the features these engines provide. I am very particular about how my games feel and look, and how I interact with my tools. I often find the default feature implementations in large engines like Unity so lacking I end up writing my own anyway. Eventually, my projects end up being mostly my own tools and systems, and the engine becomes just a vehicle for a nice UI and some rendering...

At which point, why am I using this engine? What is it providing me? Why am I letting a tool potentially destroy my ability to work when they suddenly make unethical and terrible business decisions? Or push out an update that they require to run my game on consoles, that also happens to break an entire system in my game, forcing me to rewrite it? Why am I fighting this thing daily for what essentially becomes a glorified asset loader and editor UI framework, by the time I'm done working around their default systems?

The obvious answer for me is to just not use big game engines, and write my own small tools for my specific use cases. It's more fun, and I like controlling my development stack. I know when something goes wrong I can find the problem and address it, instead of submitting a bug report and 3 months later hearing back it "won't be fixed". I like knowing that in another two decades from now I will still be able to compile my game without needing to pirate an ancient version of a broken game engine.

Obviously this is my personal preference - and it's one of someone who has been making indie games for a long time. I used engines like Game Maker for years before transitioning to more lightweight and custom workflows. I also work in very small teams, where it's easy to make one-off tools for team members. But I want to push back that making games "from scratch" is some big impossible task - especially in 2025 with the state of open source frameworks and libraries. A lot of popular indie games are made in small frameworks like FNA, Love2D, or SDL. Making games "without an engine" doesn't literally mean opening a plain text editor and writing system calls (unless you want to). Often, the overhead of learning how to implement these systems yourself is just as time consuming as learning the proprietary workflows of the engine itself.

With that all said, I think it'd be fun to talk about my workflow, and what I actually use to make games.

Programming Languages

Most of my career I've worked in C#, and aside from a short stint in C++ a few years ago, I've settled back into a modern C# workflow.

I think sometimes when I mention C# to non-indie game devs their minds jump to what it looked like circa 2003 - a closed source, interpreted, verbose, garbage collected language, and... the language has greatly improved since then. The C# of 2025 is vastly different from the C# of even 2015, and many of those changes are geared towards the performance and syntax of the language. You can allocate dynamically sized arrays on the stack! C++ can't do that (although C99 can ;) ...).

The dotnet developers have also implemented hot reload in C# (which works... most of the time), and it's pretty fantastic for game development. You can launch your project with dotnet watch and it will live-update code changes, which is amazing when you want to change how something draws or the way an enemy updates.

C# also ends up being a great middle-ground between running things fast (which you need for video games) and easy to work with on a day-to-day basis. For example, I have been working on City of None with my brother Liam, who had done very little coding when we started the project. But over the last year he's slowly picked up the language to the point where he's programming entire boss fights by himself, because C# is just that accessible - and fairly foot-gun free. For small teams where everyone wears many hats, it's a really nice language.

A boss fight that Liam coded

A boss fight that Liam coded

And finally, it has built in reflection... And while I wouldn't use it for release code, being able to quickly reflect on game objects for editor tooling is very nice. I can easily make live-inspection tools that show me the state of game objects without needing any custom meta programming or in-game reflection data. After spending a few years making games in C++ I really like having this back.

Inspecting an object with reflection in Dear ImGui

Inspecting an object with reflection in Dear ImGui

Windows... Input... Rendering... Audio?

This is kind of the big question when writing "a game from scratch", but there are a lot of great libraries to help you get stuff onto the screen - from SDL, to GLFW, to Love2D, to Raylib, etc.

I have been using SDL3 as it does everything I need as a cross-platform abstraction over the system - from windowing, to game controllers, to rendering. It works on Linux, Windows, Mac, Switch, PS4/5, Xbox, etc, and as of SDL3 there is a GPU abstraction that handles rendering across DirectX, Vulkan, and Metal. It just works, is open source, and is used by a lot of the industry (ex. Valve). I started using it because FNA, which Celeste uses to run on non-Windows platforms, uses it as its platform abstraction.

That said, I have written my own C# layer on top of SDL for general rendering and input utilities I share across projects. I make highly opinionated choices about how I structure my games so I like having this little layer to interface with. It works really well for my needs, but there are full-featured alternatives like MoonWorks that fill a similar space.

Before SDL3's release with the GPU abstraction, I was writing my own OpenGL and DirectX implementations - which isn't trivial! But it was a great learning experience, and not as bad as I expected it to be. I am however, very grateful for SDL GPU as it is a very solid foundation that will be tested across millions of devices.

Finally, for Audio we're using FMOD. This is the last proprietary tool in our workflow, which I don't love (especially when something stops working and you have to hand-patch their library), but it's the best tool for the job. There are more lightweight open source libraries if you just want to play sounds, but I work with audio teams that want finite control over dynamic audio, and a tool like FMOD is a requirement.

Assets

I don't have much to say about assets, because when you're rolling your own engine you just load up what files you want, when you need them, and move on. For all my pixel art games, I load the whole game up front and it's "fine" because the entire game is like 20mb. When I was working on Earthblade, which had larger assets, we would register them at startup and then only load them on request, disposing them after scene transitions. We just went with the most dead-simple implementation that accomplished the job.

Assets loading in 0.4 seconds

All the assets for City of None loading in 0.4 seconds

Sometimes you'll have assets that need to be converted before the game uses them, in which case I usually write a small script that runs when the game compiles that does any processing required. That's it.

Level Editors, UI...

Some day I'll write a fully procedural game, but until then I need tools to design the in-game spaces. There are a lot of really great existing tools out there, like LDtk, Tiled, Trenchbroom, and so on. I have used many of these to varying degrees and they're easy to set up and get running in your project - you just need to write a script to take the data they output and instantiate your game objects at runtime.

However, I usually like to write my own custom level editors for my projects. I like to have my game data tie directly into the editor, and I never go that deep on features because the things we need are specific but limited.

A small custom level editor for City of None using Dear ImGui

A small custom level editor for City of None using Dear ImGui

But I don't want to write the actual UI - coding textboxes and dropdowns isn't something I'm super keen on. I want a simple way to create fields and buttons, kind of like when you write your own small editor utilities in the Unity game engine.

This is where Dear ImGui comes in. It's a lightweight, cross-platform, immediate-mode GUI engine that you can easily drop in to any project. The editor screenshot above uses it for everything with the exception of the actual "scene" view, which is custom as it's just drawing my level. There are more full-featured (and heavy-duty) alternatives, but if it's good enough for all these games including Tears of the Kingdom it's good enough for me.

Using ImGui makes writing editor tools extremely simple. I like having my tools pull data directly from my game, and using ImGui along with C# reflection makes that very convenient. I can loop over all the Actor classes in C# and have them accessible in my editor with a few lines of code! For more complicated tools it's sometimes overkill to write my own implementation, which is where I fall back to using existing tools built for specific jobs (like Trenchbroom, for designing 3D environments).

Porting Games ... ?

The main reason I learned C++ a few years ago was because of my concerns with portability. At the time, it was not trivial to run C# code on consoles because C# was "just in time" compiled, which isn't something many platforms allow. Our game, Celeste, used a tool called BRUTE to transpile the C# IL (intermediate language binaries) to C++, and then recompiled that for the target platform. Unity has a very similar tool that does the same thing. This worked, but was not ideal for me. I wanted to be able to just compile our code for the target platform, and so learning C++ felt like the only real option.

Since then, however, C# has made incredible progress with their Native-AOT toolchain (which basically just means all the code is compiled "ahead of time" - what languages like C++ and Rust do by default). It is now possible to compile C# code for all the major console architectures, which is amazing. The FNA project has been extremely proactive with this, leading to the release of games across all major platforms, while using C#.

Platforms supported by SDL3

Platforms supported by SDL3

And finally, SDL3 has console ports for all the major platforms. Using it as your platform abstraction layer (as long as you're careful about how you handle system calls) means a lot of it will "just work".

Goodbye, Windows

Finally, to wrap all this up ... I no longer use Windows to develop my games (aside from testing). I feel like this is in line with my general philosophy around using open source, cross-platform tools and libraries. I have found Windows increasingly frustrating to work with, their business practices gross, and their OS generally lacking. I grew up using Windows, but I switched to Linux full time around 3 years ago. And frankly, for programming video games, I have not missed it at all. It just doesn't offer me anything I can't do faster and more elegantly than on Linux.

There are of course certain workflows and tools that do not work on Linux, and that is just the current reality. I'm not entirely free of Microsoft either - I use vscode, I write my games in C#, and I host my projects on github... But the more people use Linux daily, the more pressure there is to support it, and the more support there is for open source alternatives.

(as a fun aside, I play most of my games on my steam deck these days, which means between my PC, game console, web server, and phone, I am always on a Linux platform)

Miscellaneous thoughts

  • What about Godot?
    If you're in the position to want the things a larger game engine provides, I definitely think Godot is the best option. That it is open-source and community-maintained eliminates a lot of the issues I have with other proprietary game engines, but it still isn't usually the way I want to make games. I do intend to play around with it in the future for some specific ideas I have.

  • What about 3D?
    I think that using big engines definitely has more of a place for 3D games - but even so for any kind of 3D project I want to do, I would roll my own little framework. I want to make highly stylized games that do not require very modern tech, and I have found that to be fairly straight forward (for example, we made Celeste 64 without very much prior 3D knowledge in under 2 weeks).

    Celeste 64 screenshot

    Celeste 64 Screenshot

  • I need only the best fancy tech to pull off my game idea
    Then use Unreal! There's nothing wrong with that, but my projects don't require those kinds of features (and I would argue most of the things I do need can usually be learned fairly quickly).

  • My whole team knows [Game Engine XYZ]
    The cost of migrating a whole team to a custom thing can be expensive and time consuming. I'm definitely talking about this from the perspective of smaller / solo teams. But that said, speaking from experience, I know several middle-sized studios moving to custom engines because they have determined the potential risk of using proprietary engines to be too high, and the migration and learning costs to be worth it. I think using custom stuff for larger teams is easier now than it has been in a long time.

  • Game-specific workflows

    Screeshot of Aseprite

    Aseprite assets are loaded in automatically

    I load in Aseprite files and have my City of None engine automatically turn them into game animations, using their built in tags and frame timings. The format is surprisingly straight forward. When you write your own tools it's really easy to add things like this!

Alright!

That's it from me! That's how I make games in 2025!

Do I think you should make games without a big engine? My answer is: If it sounds fun.

-Noel


Read the original article

Comments

  • By abcde666777 2026-03-028:299 reply

    My experience with making your own engine vs using an off the shelf solution - the former can be viable and even superior on the condition that you know what you're doing. That is if you've built entire games or engines before, or have enough experience with the internals of one.

    Otherwise it can be a dangerous fool's errand on which many projects go to die. My younger naive self can attest to this, he loved trying to build his own overly-ambitious engines. But he never finished any games.

    Another thought if you do roll your own - keep it simple stupid. When your brain tells you that some amazing nested scene graph with integrated occlusion culling would be the coolest thing in the world, but you lack evidence that you'll actually need all that functionality, tell your brain that it's being stupid and just implement some kind of basic flat scene structure. You can always retrofit it later.

    Also - study the code of the likes of Carmack. Consider that he produced the likes of the quake engines in only a couple of years. Reflect long and hard on the raw simplicity of a lot of that code.

    Do not worship complexity.

    These are the words of someone who has walked both roads!

    • By spiffyk 2026-03-0212:463 reply

      I think the biggest mistake you can make is shifting your mindset from making a game to making a game engine. No, you still want to be dead set on making your game, you just don't have the ready-made building blocks from an off-the-shelf engine, so you have to make your own as you go, and only as needed. Personally, when I was working on my little game, I found it helpful to call the endeavour—just like Noel Berry in TFA—"making a game without an engine", rather than "making a custom game engine". I only really wrote the absolutely necessary plumbing that I needed for the game I was making, nothing more.

      The same goes for software libraries in general, I think. Just make your program. Don't make an overly general library for something you won't need anyway. If the code proves useful for reuse, just factor it out after the fact and generalize as needed.

      EDIT: Typos, wording

      • By pibaker 2026-03-032:34

        > shifting your mindset from making a game to making a game engine

        This reminds me of when someone makes his own static site generator, write one blog post about how he started a blog with his own static site generator, and then post nothing afterwards.

        I suspect the reason for this genre of behavior is there is just a tremendous amount of creativity required to come up with anything original enough to justify putting into a game, or a blog, but game engines and static site generators have relatively straightforward feature requirements that you can just implement like any software feature. Building your own game engine or static site generator is just a good way to procrastinate doing the hard part of game making or blogging while still keeping yourself in the game making or blogging zone so that you can tell yourself, yes, I am a game developer or blogger.

      • By doctorhandshake 2026-03-0212:591 reply

        The way I phrase this to myself is ‘make the tool, don’t make the tool that makes the tool.’

        • By herpdyderp 2026-03-0214:082 reply

          On the contrary, making the tool that makes the tool is what I live for! My personal tech stack has benefited incredibly from this practice and fuels my startup, though it did take me 20 years of slow iteration to get here.

          • By doctorhandshake 2026-03-0217:18

            Well I’m not anti ;) … I just mean if your goal is to make the thing and you’re sure you need a tool to do it, watch out for the temptation to make the tool that makes the tool, which is the LONG way around, as OP was saying

          • By performative 2026-03-0220:44

            that's really dope, but i'm not sure if it'll work out the same way nowadays. i think we're in a weird stage where momentum REALLY matters in a way that it didn't 10 years ago or 5 years down the line (probably)

      • By __xor_eax_eax 2026-03-0217:56

        YAGNI still undefeated in 2026

    • By pjc50 2026-03-0210:272 reply

      > Consider that he produced the likes of the quake engines in only a couple of years. Reflect long and hard on the raw simplicity of a lot of that code

      Things like the famous fast inverse square root are short, but I would hesitate to describe it as simple.

      Ironically one of the things that the Quake engine relies on is clever culling. Like Doom, the level is stored in a pre-computed binary space partition tree so that the engine can uniquely determine from what volume you're in what the set of possibly visible quads is (if my memory is correct, oddly the engine uses quads rather than triangles) AND how to draw them in reverse order using painter's algorithm, because the software renderer doesn't have a z-buffer.

      https://www.fabiensanglard.net/quakeSource/quakeSourceRendit...

      The BSP partitioning used to take several minutes to run back in the day.

      Anyway, the point I was trying to make was that Carmack used a few, clever, high-impact techniques to achieve effects, which were also "imperfect but good enough".

      If you're not Carmack, don't over-optimize until you've run a profiler.

      • By BearOso 2026-03-0215:261 reply

        > Things like the famous fast inverse square root are short, but I would hesitate to describe it as simple.

        Not the best example. That snippet was in use at SGI for years and actually written by Gary Tarolli. Quake's optimization was mostly done by Michael Abrash.

        The original id engines were also famously inflexible. They fit the mold of "developing an engine, not a game" to a T. What you saw them do was all they could do. Look at how much Half-Life needed to add to be viable. idtech3 also only broke out of its niche because Ritual and Infinity Ward heavily modified it and passed it around. There's a good reason the engine-based ecosystem is so prominent now.

        • By jamesfinlayson 2026-03-036:58

          What changes were needed in Half-Life? Quake seemed okay enough to modify though it was rushed and getting close to what was possible with the hardware at the time.

      • By scott_w 2026-03-0213:34

        > (if my memory is correct, oddly the engine uses quads rather than triangles)

        I'm also working off a near 30-year-old memory but I recall quads not being unusual around this time. I remember a preview of Tomb Raider 3 in Official Playstation Magazine making a big deal out of the updated engine using triangles instead of quads to draw things. This was around 1998, so a couple of years after Quake came out.

    • By spppedury 2026-03-0210:08

      when Quake was being written, it was pushing the level of managable complexity at the time.

      they used NeXT workstations to develop it, the programming tools on PCs were too weak for such a project

      today it might look simple, but it's easy to say that when you open it in VS Code and have Intellisense, autocomplete, go to definition, ultra fast compilers, tons of RAM, and google for everything

    • By socalgal2 2026-03-0210:473 reply

      I see making a game engine as the illusion of progress on making a game. Making a game engine is fun and relatively easy. You have a check list of things to do. Each of them the solutions are relatively well known. so you do them and make tons of progress. You get a window open, then you get a triangle up, then you get a texture loaded, then you get some basic text for debugging, then you read the keyboard for input, etc etc. each day new stuff comes up and you think you’re making progress but really you haven’t even started making the game , you’re just reproducing what you could have already had if you’d started with an existing engine.

      Then you start it hit the more tedious stuff. loading animated characters, blending animations on selective subtrees of a character hierarchy. Making a level editor. Adding quality of life feature to it like undo. Etc…

      I’m not saying you shouldn’t do this. It’s fun to do. just don’t delude yourself that that’s making progress on your game. It’s instead making progress on a game engine. That’s a different thing.

      I've shipped 18 games, 4 of them AAA. I wrote the engines for most fo them. I wouldn't do it again.

      All that said, some nuance. If the game you are making is simple for some defintion of simple, Celeste, Dead Cells, Geometry Wars. Then making your own engine isn't much work and there maybe some benefits.

      On the other hand, see all the tiles made with engines. Silksong is Unity. A Short Hike is Unity. Blue Prince is Unity. Valheim is Unity. Peak is Unity. Dredge is Unity. You don't need to make your own engine to make an indie game.

      • By andai 2026-03-0211:415 reply

        Randy (funny gamedev guy from YouTube) said in a recent video that he realized he'd spent the last ten years making engines to avoid the creative terror of action making a game. I'm paraphrasing slightly, but that's what it came down to.

        "I thought if I made a really good engine, making a game would be the easy part!" I had similar thoughts when I was younger. Surely if I just upgrade my tools, the hard part will become the easy part!

        Jonathan Blow says making engines is easy, because enginedev only takes a relatively small part of development — the game itself takes way more time and energy.

        So his argument is, in the grand scheme of things, the engine is not that much work. (Since you're gonna spend ten years working on the game anyway, of course ;)

        • By jz391 2026-03-0222:25

          And, of course, the next level of procrastination is to develop your own programming language, which you will use to write the engine to use in creating the game :-) Definitely hats off to Jon for pulling it off - he had a lot of focus and some previous experience - and it also helps to have re$ource$ from past successful games. For many of us, the lure of developing better tools, rather than the end product, proves to be too strong to resist. At least Jon stopped short of developing own OS :-)

        • By the__alchemist 2026-03-0219:53

          Jonathan Blow also makes games at a very slow pace; e.g. his Sokoban games. There are other factors at play, but his pace is consistent with the speed drawback of rolling your own engine.

        • By rcxdude 2026-03-0215:31

          And the thing usually is that what you want from your engine is the flexibility to be able to change things around easily so you can iterate and experiment on the game design itself. Sometimes a custom engine can give you that (especially if you're going off the beaten track) but often the tooling around the off-the-shelf engines is much better for it.

        • By kleiba 2026-03-0215:06

          That's also why the Handmade Hero series took more than 600 episodes to eventually go nowhere.

        • By whstl 2026-03-0217:36

          That’s also why 99% of people building games with Unity or Unreal never get anywhere by themselves or just produce asset-flip slop, and then complain on Reddit about marketing being hard.

          Programming an engine requires dedication, but pretty much every other area in gamedev require similar dedication to get to an acceptable result.

      • By krapp 2026-03-0211:54

        Yeah don't end up like me with a folder full of library code, "tests", "prototypes" and a dozen implementations of the Tiled API but no game.

        For certain personality types I think making an engine can make it very easy to get distracted and wind up in the weeds of something you don't actually need, overoptimizing, fence-painting etc. Using an engine can help with self-discipline and focus on the end rather than the means, although then you need to make sure you don't just wind up with a ton of mostly finished tutorial projects and no game.

      • By andsoitis 2026-03-0213:011 reply

        > I've shipped 18 games, 4 of them AAA. I wrote the engines for most fo them.

        Solo? Or part of a team?

        • By ses1984 2026-03-0215:16

          Can you name one solo dev AAA game let alone four?

    • By zerr 2026-03-0213:36

      I believe most of programmers who dive into game dev are actually interested in game engine and tools development.

    • By diath 2026-03-032:54

      There's also a middle ground - using a framework that already abstracts away things like graphics, window, audio and input handling but acts as a "bring your own engine" base. This is probably the best if you have a specific type of game in mind where generic solutions wouldn't really work. Things like Raylib, SFML, Love2D and so on are a great compromise.

    • By vor_ 2026-03-031:11

      > Also - study the code of the likes of Carmack. Consider that he produced the likes of the quake engines in only a couple of years. Reflect long and hard on the raw simplicity of a lot of that code.

      There's a tendency to ascribe the entirety of id's technology to Carmack. Michael Abrash, as one example, was a major factor.

    • By samiv 2026-03-0210:332 reply

      "Also - study the code of the likes of Carmack. Consider that he produced the likes of the quake engines in only a couple of years. Reflect long and hard on the raw simplicity of a lot of that code."

      Also says something about the accumulation of complexity. At that time Carmack (and his team) were able to create a state of the art engine in a few years. Now consider the task today, if you were to create a state of the art engine today it'd take tremendously more work.

      • By abcde666777 2026-03-0214:44

        An interesting thing is I think a lot of it's caused purely by the graphical fidelity. For instance an animated character back then was just a key framed polygon soup - compare that with the convincing humanoids games have now.

        And yet often the actual gameplay code itself may only be 2x to 3x more complicated then the days of old.

        I think of counterstrike for instance - it's still just guys shooting guns in a constrained arena.

      • By direwolf20 2026-03-0210:491 reply

        But you could create Quake.

        • By andai 2026-03-0211:37

          Quake is peak graphics anyway. We hit diminishing returns after that ;)

    • By threethirtytwo 2026-03-0214:032 reply

      AI may change the game here. Most games are slop coded by humans anyway as the industry prioritizes speed and dead lines over code quality.

      So having AI build the slop instead of a human seems to make sense. I really wonder how AI is changing the gaming industry.

      The articles author strangely left AI out of what he wrote. While I know a lot of HN readers are traditional and love the old way of doing things I don’t know how much longer that way will last.

      • By agentultra 2026-03-0216:281 reply

        It’ll last as long as there are humans who like making things themselves.

        • By threethirtytwo 2026-03-0216:481 reply

          That’s what they said about assembly coders.

          • By agentultra 2026-03-0218:26

            Guess what, there are still people who write code in assembler.

            For plenty of reasons there are lots of programmers who still need to know how to code in assembly, read assembly, etc.

      • By spiffyk 2026-03-0310:54

        The indie gamedev scene is full of people for whom games are an art form. These people don't give two hoots about what "the industry" prioritizes, they just want to make their games their way.

        Calling their creations slop and suggesting using AI to make them is honestly quite the insult.

  • By the__alchemist 2026-03-0219:565 reply

    3 anecdotes:

    - For Talos Principle 2, Croteam switched from their own engine to UE5. The description was "It would be like attempting to sprint and catch up with a train that is already far down the track and accelerating even faster.". From a user's perspective, observe the graphics of Serious Sam Siberian Mayhem and Talos Principle 2: Same company, released at a similar time. Talos Principle (UE5) looks dramatically better than SS. (In-house engine)

    - Jon Blow rolls his own engines (and lang), and releases games very slowly

    - Expedition 33 recently released as a phenomenal game that leaned heavily on features in UE5 (Face/body, graphics, map/terrain gen etc.) They focused on the game itself, and let the engine do the heavy lifting... to a superb result.

    From my own anecdotes in graphics programming: Producing a simple engine is easy. Producing something that's photorealistic etc is massively more difficult. Let along all the other things an engine provides for you. Modern games have so many complexities the engine abstracts out; we don't need to roll a new engine for each game or studio, each trying to have optimized netcode, human characters, photorealistic lighting, GUI map editors + terrain gen etc.

    I use my own graphics engine for my scientific programs, but it has much simpler requirements than a game engine.

    • By mikepurvis 2026-03-0220:31

      Not a gamedev, but I think a huge thing in a modern studio context is being able to parallelize effort. With UE5 you get authoring tools up and down the stack, so your artists and storyboarders and level designers can all start creating the world and setting up the scripted events and cinematics, even if key assets or behaviours aren't in place and are just placeholders. The developers are basically writing plugins into this system in collaboration with the design process.

      Very different world from 20-30 years ago where the initial "game design" was happening in paint programs or even graph paper notebooks.

    • By jonny_eh 2026-03-0221:171 reply

      Did you play the Talos Principle Reawakened? They took a great performing game made with their own engine, re-released it with UE5, and now it performs like doggy doodoo.

      • By the__alchemist 2026-03-0222:55

        I did. Was kind of underwhelmed by the graphics too. Although that may be in line with a remake. Ie, I gave it benefit of the doubt since I don't know how much effort they put into it beyond "making it work".

    • By ehnto 2026-03-032:51

      Jonathan Blow seems to stand very strongly on principles, and yet be extremely pragmatic while executing them, which I feel is a good balance that still results in shipping games. That said if he didn't have the work ethic that he does, it probably wouldn't have been a winning strategy.

    • By 0cf8612b2e1e 2026-03-032:141 reply

      Not sure there is anything to take away from Talos Principle 2. It was a puzzle + philosophical musings adventure. Could have achieved the same effect with Quake level graphics. So much needless vast (pretty) landscape you had to circumnavigate just to get to the next puzzle arena.

      • By Klaster_1 2026-03-035:571 reply

        Compared to generic Serious Sam like maps of TP1, I found beautiful environments of TP2 really added another level of appreciation to the game. Those and the music surface up in my memory couple times a week, very few games had this effect on me - maybe only TES3. The game is magical and I'd love more of that.

        • By 0cf8612b2e1e 2026-03-036:131 reply

          Oh it was definitely beautiful, it just never seemed relevant to what was happening. More like the art team run amok. TP1 at least had an in universe explanation for the shape of the world.

          Spoilers…kinda

          I guess Athena and crew have invented literal universe manipulation powers? Allowing them to craft whatever beauty they see fit. Yet, their living quarters always seem to be some dingy basement lab with power cables and other miscellaneous garbage strewn about. The wondrous environments seemed fully disconnected from everything else in the world.

          If they had the time and the budget, go nuts, but the game would have been perfectly suitable with significantly lower fidelity graphics.

          • By throw_away_623 2026-03-0312:34

            A lot of the game was spent walking from puzzle to puzzle. I think prioritising graphics was a good choice, because one was forced to notice the landscape.

    • By indubioprorubik 2026-03-0221:40

      Then again,UE5 has massive criticism leveraged against it- for pushing exotic and hyped up technology, that is not really production ready and demands you tailor your whole workflow around them. Held against last gen custom engines - ue5 almost always looks worse.

      https://www.youtube.com/watch?v=Ls4QS3F8rJU&t=539s

  • By redbell 2026-03-028:176 reply

    > Our game, Celeste

    I was really enjoying reading this piece until I read the above, then I realized I am reading for a big developer, the maker of, Celeste [1]. I am definitely adding this to my list of favorite articles about making games.

    Also, you may want to check a previous discussion from nine months ago (573 points, 246 comments ): https://news.ycombinator.com/item?id=44038209

    _____________

    1. https://store.steampowered.com/app/504230/Celeste/

    • By tmtvl 2026-03-0214:17

      Better link to Itch (<https://maddymakesgamesinc.itch.io/celeste>) than Steam, Itch by default only takes a 10% cut instead of 30%.

    • By hjkl0 2026-03-0210:564 reply

      But Celeste came out in 2018. How is it relevant to 2025 as suggested in the title?

      Also, pretty sure it was a small indie team rather than a “big developer”

      • By ecshafer 2026-03-0214:58

        I think Celeste was popular enough in the indie space to get "big developer". To put some words in OP's mouth, its not "Big Developer" as in a large studio. But "Big Developer" as in well known and acclaimed.

      • By tecleandor 2026-03-0212:25

        It's the same developer as Celeste, but in the article they talk about "city of none" [0], that's a yet unreleased game they're working on right now.

        --

          0: https://cityofnone.com/

      • By Murfalo 2026-03-0214:06

        In the article they make that 2025 is a tipping point where open source frameworks and libraries "just work", making speedy, fun development possible without needing to fight the clunkiness of heavyweight engines.

        And any new stuff regarding Celeste or from their devs will forever be relevant to me! Highly recommend to any who haven't played it.

      • By PacificSpecific 2026-03-0212:211 reply

        How is it not relevant? Celeste wasn't exactly a pinnacle of bleeding edge technology when it came out.

        If I remember correctly it was a team of 2.

        • By 0cf8612b2e1e 2026-03-032:22

          It was also originally created for the PICO8 platform. Which is as minimal as you can get.

    • By iNic 2026-03-029:21

      Just want to +1 this. It is a game so good I bought (and beat) it twice, once on Switch and once on Steam.

    • By wasting_time 2026-03-0215:58

      I thought Celeste was a solo project of Maddy Thorson [0] before reading this piece.

      0: https://maddymakesgames.com/

      Fans of Celeste will almost certainly enjoy the local multiplayer game Towerfall by the same developers.

    • By kelvinjps10 2026-03-0211:10

      I also reached the same conclusion, it feels wholesome

HackerNews