9 ms·
Making Video Games in 2025 (without an engine)
- teleforce 7mo agoLewis Nicolle created his own game engine with D language for his new game Art of Reflection [1],[2]: [1] Why D Programming Language? https://www.youtube.com/watch?v=teWQbYvPBTg https://www.youtube.com/watch?v=teWQbYvPBTg [2] Art of Reflection: https://store.steampowered.com/app/2290770/The_Art_of_Reflection/ https://store.steampowered.com/app/2290770/The_Art_of_Reflec...
- RobLach 7mo agoHell yah.
- lovegrenoble 7mo agohttps://en.wikipedia.org/wiki/Celeste_(video_game) https://en.wikipedia.org/wiki/Celeste_(video_game)
- rob74 7mo agoAfter I read the title, I fully expected this to be about writing games using AI. But no, actually there is no mention of AI to be found in the text, not even in the "Miscellaneous Thoughts" section, which seems to be mostly answers to "why don't you use X?" questions. Refreshing...
- oneeyedpigeon 7mo agoThe author is Noel Berry, creator of Celeste. They don't shout about it, but with that pedigree, I'm confident they'll be staying well away from AI.
- arlcode 7mo agoOr they'll take a look at what, if anything at all,they can use in their workflow as a useful tool not a magic solution. No need to brag about that.
- dwroberts 7mo ago> can use in their workflow as a useful tool not a magic solution. Like what? If you can already program your game and create art for it, what is it going to be doing? People are so obsessed with using AI stuff for the sake of it, it’s nuts
- segh 7mo agoI can do long division manually but I still reach for a calculator.
- dwroberts 7mo agoDo you also spend a lot of time maximising calculator utilisation in other places? Maybe trying to write letters with it or composing music with it?
- hjkl0 7mo agoWon’t you get much better results trying to maximize utilization of some sort of LLM? For many people, you’d get faster and better results trying to optimize for LLMs than for any standard word processor or music composition tool.
- _zagj 7mo ago> but I still reach for a calculator Does the calculator give you a slightly different answer each time, even with the same inputs?
- rhdunn 7mo agoI don't use AI for the sake of it, I use it where and when it is useful. For example: 1. advanced autocomplete -- if you have or paste the structure of a JSON or other format, or a class fields, it is good at autocompleting things like serialization, case statements, or other repetitive/boilerplate code; 2. questions -- it can often be difficult to find an answer on Google/etc. (esp. if you don't know exactly what you are looking for, or if Google decides to ignore a key term such as the programming language), but can be better via an AI. Like all tools, you need to read, check, and verify its output.
- MasterScrat 7mo agoWhy would a game development pedigree correlate with rejecting AI? As Carmack said: > AI tools will allow the best to reach even greater heights, while enabling smaller teams to accomplish more, and bring in some completely new creator demographics.
- tkel 7mo ago[flagged]
- Cthulhu_ 7mo agoSlop is a garbage in, garbage out deal - in the hands of a competent developer who can review the changes, AI generated code is fine.
- MasterScrat 7mo agoAre you saying Carmack isn't a "talented and successful developer"?
- deleted 7mo ago[deleted]
- coldpie 7mo agoI hate to say it but honestly, kinda, yeah... I do think that. Has he done anything significant since the early 1990s? All I've known him for since then is wasting a bunch of years spinning wheels at a virtual reality toy company and posting on Elon Musk's child pornography platform. I would not look to Carmack for tech inspiration in 2026, personally.
- yarn_ 6mo agoWith respect to Carmack I completely agree. There is too much appeal to authority with respect to him solely based on him making an impressive game (with the help of some other genius level programmers eg abrash) nearly 40 years ago.
- mock-possum 7mo agoBecause Celeste is left-aligned, and deriding AI as planet-destroying slop stolen from poor artist is a left position to take.
- deleted 7mo ago[deleted]
- kleiba 7mo agoDiscussed before: https://news.ycombinator.com/item?id=44038209 https://news.ycombinator.com/item?id=44038209 (246 comments)
- rimmontrieu 7mo agoNice article, engines are bloated and introduce so many overheads. If you don't intend to ship any AAA games, consider investing your times to learn code-first game frameworks like libGDX, MonoGame, love2d,... or even lower level stuffs like SDL, bgfx, opengl which are good enough for almost any cases. A bit higher learning curve is expected but it won't hide anything from you, or bury you under tons of bloated abstractions.
- JoeyJoJoJr 7mo agoI’d highly recommend going with SDL if it’s 2D. IMO libraries like MonoGame, Love2D, LibGDX only offer small conveniences over SDL with big negative tradeoffs, sacrificing portability, quality of libraries, and conventions. The downsides of using C++ are now heavily mitigated with the use AI tools. I could never jell with C++ until I had Cursor hold my hand (especially around the build system), and now I feel like I am developing games with a razor sharp knife that I could never before access. The patterns associated working directly with memory suddenly clicked and now it’s the only I want to build games.
- tripledry 7mo agoSimilar, I also went back to mainly C++ and Raylib now that I can delegate the "boring" stuff to AI, never had any issues with programming in C++ it was mainly adding dependencies and builds I hated (configuration). I still don't use it (AI) for the game programming as it sucks the joy out of it for me. Especially when AI usage is currently being pushed hard at work.
- raincole 7mo agoI'm actually building my own mini-engine with SDL_GPU. It works ok so far. I'm quite confident that it's capable enough to replicate most of Unity's URP features (except the shader graph as I don't plan to expose such an interface for artists). But I haven't reached to the more tedious parts, like doing skeleton animation on GPU and testing cross platform (SDL should be naturally cross platform, but I never tested it...), etc. The most tedious part, imo, is to build your own 3D scene editor. At very least I can say SDL has reached a passable state for 3D. It doesn't support some modern features like bindless though. And one doesn't need to stich with C++ if they don't want to. SDL is pure C and if your favorite language can call foreign function it's not that hard to make it work with SDL.
- bob1029 7mo agoThe primary thing I'm going for in a commercial engine is platform targeting and stability. Some of the defaults are certainly "bland", but that ensures I can actually ship this thing to a meaningful % of the available market. Unity's coverage is so consistent that I've been debating using it for non gaming applications. There aren't many cross platform ecosystems that work this well.
- bizzletk 7mo agoWhat are some things that you'd build with Unity that aren't games?
- deleted 7mo ago[deleted]
- bob1029 7mo agoUser interfaces for complex physical plants. https://en.wikipedia.org/wiki/Digital_twin https://en.wikipedia.org/wiki/Digital_twin
- dwattttt 7mo agoA storied history: https://en.wikipedia.org/wiki/SimRefinery https://en.wikipedia.org/wiki/SimRefinery
- voidUpdate 7mo agoNot OP, but at £JOB, I use Unity most of the time making demo and sales apps for clients to use at shows. The fact that it can build for basically every common platform and (most of the time) not need any special considerations for that makes it ideal for us. Sure, we could write web apps or something, but that's a different department. I'm also not sure if it's still in the installer, but it used to ask you what you would be using unity for, and I don't remember most of the options, but one of them was "military simulations" or something like that, so they are aware of the possibility
- Zarathruster 7mo ago
- redbell 7mo ago> 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 https://news.ycombinator.com/item?id=44038209 _____________ 1. https://store.steampowered.com/app/504230/Celeste/ https://store.steampowered.com/app/504230/Celeste/
- iNic 7mo agoJust want to +1 this. It is a game so good I bought (and beat) it twice, once on Switch and once on Steam.
- hjkl0 7mo agoBut 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”
- PacificSpecific 7mo agoHow 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.
- 0cf8612b2e1e 7mo agoIt was also originally created for the PICO8 platform. Which is as minimal as you can get.
- tecleandor 7mo agoIt'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/
- Murfalo 7mo ago
- imtringued 7mo ago>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... I honestly don't see anything wrong with using the engine for its UI and "some rendering" kind of sweeps a lot of the complicated 3d light handling under the rug. I think the biggest mistake large engines have made is baking in features as first class citizens instead of those features being part of a standard plugin you could have written yourself from scratch once you reach that stage. I've contemplated building my own editor UI, but after four weeks I realized that I'm just rebuilding the same UI structure you see in FreeCAD, Blender, Isaac Sim, Godot, etc. There's always a 3D viewport, there's a scene tree and there is an inspector panel for looking at the properties. So why not just use the Godot editor as a UI and provide my own custom nodes? By the time I've outgrown the training wheels, I've spent months working on the actually differentiating features.
- nkrisc 7mo ago> I honestly don't see anything wrong with using the engine for its UI and "some rendering" kind of sweeps a lot of the complicated 3d light handling under the rug. I think the biggest mistake large engines have made is baking in features as first class citizens instead of those features being part of a standard plugin you could have written yourself from scratch once you reach that stage. Godot is more or less built that way. The entire node system is an abstraction over the various “servers” and you can even completely forgo it if you want, providing your own MainLoop implementation (instead of the included SceneTree implementation of MainLoop) and then just use the servers directly. A lot of the editor features are also implemented as plugins. It’s been very easy turning the Godot editor into a custom editor for my game by writing some simple plugins
- abcde666777 7mo agoMy 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!
- spppedury 7mo agowhen 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
- pjc50 7mo ago> 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/quakeSourceRendition.php 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.
- Madmallard 7mo agoHas he dealt with some of the more challenging problems in game dev that engines help a lot with? Like... multiplayer netcode. Seems like if you're doing this for a hobby or solo/small team then maybe it's reasonable. For most people where they want to be a game dev but they probably will just work in industry, it seems like learning the major engines to competency cannot be ignored.
- rob74 7mo agoWell yeah, he's working with a pretty small team, and quite successfully: https://en.wikipedia.org/wiki/Celeste_(video_game) https://en.wikipedia.org/wiki/Celeste_(video_game) I would say that one of the "Miscellaneous Thoughts" at the end of your article answers your question pretty well: > 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).
- jesus_666 7mo agoYou should use tools that are appropriate to what you intend to achieve. If you want to make a 3D game then Unreal, Unity, or Godot are appropriate choices. If you want to make a 2D game then something like MonoGame might make more sense than Unreal. You don't need highly refined netcode if your game never needs to exchange data in realtime. Heck, I've seen someone build a visual novel-type game with WinForms. That was actually a sensible choice for the game's presentation and interaction needs. Of course if you want to become a game dev at a studio then you should be competent with whatever the studio uses (or something comparable so you can pivot to their stack). If you only want to make your hobby project and maybe publish it later it doesn't matter if your engine is Unreal, MonoGame, RPG Maker 2000, or vanilla JS/DOM.
- raincole 7mo ago> that engines help a lot with? Like... multiplayer netcode. Rust (the top 10 most downloaded game ever on Steam) is built with Unity. However they ended up to write their own netcode anyway. Of course Unity isn't known for the best netcode, but how much an engine helps is often overstated. Genshin even bought Unity's source code to customize it.
- gethly 7mo agoi am making a text editor/ide in Go and i too switched from raylib to sdl. it's likely one of the best graphics layers out there.
- bitwize 7mo agoCreating a game with an engine is like designing a character with a pixel dollbase. You can get something out quickly, skipping a few steps because they're done for you, but you have to live with whatever choices were made by the creator of the engine/dollbase. Those choices can constrain your execution and to some extent, your imagination.
- charcircuit 7mo agoWhile true, people overestimate how limiting it actually is. It's like wanting to make your own kernel for your application instead of using an off the shelf one like Linux. Sure you might be able to eek out some extra performance but there are so many upsides in reusing Linux.
- krapp 7mo ago>Those choices can constrain your execution and to some extent, your imagination. In theory, yes. In practice 99.9% of the games developers want to make are feasible with an off the shelf engine.
- jesse_dot_id 7mo agoThis was a great read. I'm in my 40's and have mostly done web dev/devops type stuff throughout my career. Making video games has always eluded me even though I've always been interested in it. I think it's that everything feels like a brand new language I have to learn. Perhaps creating an engine is the move.
- Cthulhu_ 7mo agoI'm no game developer, but I'd say don't create an engine if what you want to do is build a game. Do create an engine if you want to create an engine though. But yeah, it is like learning a new language. But that's not a bad thing! I found messing around / following some tutorials for e.g. pico-8 to be both liberating (two characters are enough for a variable name) and educative (using functions like min/max to the fullest) [0] https://www.lexaloffle.com/pico-8.php https://www.lexaloffle.com/pico-8.php
- endemic 7mo agoIf you're familiar with web development, you can make games with HTML/JS, which is almost its own "engine." Think DOM elements for sprites, CSS animations for movement, requestAnimationFrame for an update loop, etc. This has the extra benefit of zero friction for players -- no native app installation necessary!
- jesse_dot_id 7mo agoI have thought about doing this via PhaserJS in the past, but it just never clicks for some reason. I feel like my brain is missing some important component for making game design make sense.
- endemic 7mo agoI wrote some tutorials for making "grid-based" games that might give you some inspiration (https://ganbaru.games/writing-grid-based-games/ https://ganbaru.games/writing-grid-based-games/) It's actually kind of crazy how many different types of games work with this approach.
- sgt 7mo agoWhat's the best place to get some cool graphics assets, sound etc when making a love2d or sdl or {yourfavoritetech} game?
- armcat 7mo agoI've used itch.io before, it's great! I even made a game using some free assets and AI: https://github.com/acatovic/gothicvania-codex-demo https://github.com/acatovic/gothicvania-codex-demo
- u361 7mo agoPutting as much love into it as you can.
- samiv 7mo agoDon't know about "cool" but I always end up going back to opengameart.org While most of the stuff is one off assets that do not fit together there are also some nice sets by some creators such as Kenney or Emcee Flesher Also the Liberated Pixel Cup (LPC) stuff is pretty nice. Mind you I mostly just look for 2D assets. https://opengameart.org/users/kenney https://opengameart.org/users/kenney https://opengameart.org/users/emcee-flesher https://opengameart.org/users/emcee-flesher https://opengameart.org/content/lpc-collection https://opengameart.org/content/lpc-collection
- kurtdev 7mo agoFor prototyping I usually use Kenney assets (from kenney.nl). Theres lots of assets for many types of games which lets you rapidly prototype and iterate without worrying about making assets first. For sounds you can use BFXR and just play around. Sometimes playing around with sounds can even lead to new feature ideas :)
- krapp 7mo agoitch.io is good for sprite assets and fonts I find.
- sbiru93 7mo agoVery interesting article. It's kinda sad SFML never get quoted, It was my framework ( after ALLEGRO ) where i learned c++ and I think it dosen't get much love nowdays even if it is very light and strong
- Subdivide8452 7mo agoSFML definitely needs more love than it's receiving.
- throwaway2046 7mo agoI've almost never seen SFML used in the wild. Does it offer anything significant over SDL?
- u361 7mo agoMaking video games in 2025, sans AI, sans an engine, is harder than some poeple could handle it, and very rewarding: it's like playing Celeste.
- roflcopter69 7mo agoI read that article a while ago and highly enjoyed it. C# truly has become a very good language for game development and since NativeAOT has become a thing, we will less and less rely on hacks like IL2CPP or BRUTE which transpile the C# IL to C++ such that it can run on JIT restricted platforms like consoles or iOS. I'd really love to go all-in with C# and SDL3 to make an engine-less cross-platform game but I still miss a good way to make complex game UIs without doing everything from scratch. Does anyone have a good suggestion for making non-trivial game UIs without using a full game engine? So far, I only found https://github.com/vchelaru/Gum https://github.com/vchelaru/Gum and https://github.com/mikke89/RmlUi https://github.com/mikke89/RmlUi but I think there's not really something super mature and feature packed, or is there? I'm aware of https://github.com/ocornut/imgui https://github.com/ocornut/imgui, as the article also mentioned, but that's more for debug UIs, right?
- pjc50 7mo agoInterested in knowing your modern dotnet gamedev stack. Am I right in thinking that Unity are still stuck in ".NET Framework" era? How is Godot?
- roflcopter69 7mo agoI myself don't have much of a dotnet gamedev stack going on unfortunately. Although I've been dabbling with MonoGame and have been enjoying it so far. MonoGame matured quite a bit since I previously used it which was more than 5 years ago! Unity indeed is still using Mono instead of CoreCLR and is kinda stuck in that sense. But to be fair, they are trying to migrate to CoreCLR which will let them profit from all the crazy optimizations that Microsoft has poured into the runtime and ecosystem. Godot is kind of a hate love for me when it comes to C#. Godot gives me the most hope that there can be a free, community-driven but powerful game engine and it having C# support built-in seems great at first glance until you realize that GDScript, which is veeeeery dynamic language, pretty much nullifies a lot of the advantages you'd get from using C# because you find yourself doing weird type system stuff that GDScript imposes on all the other languages. The best you can do is doing as much as possible in C# and use Godot as kind of a input and rendering abstraction layer. But then you're missing out on a lot of the functionality that Godot offers which should raise the question why use a game engine in the first place. It's difficult, at least for me. Others might have figured it out much better.
- roflcopter69 7mo agoI see `dotnet watch` being mentioned for code hot reload which is such a great feature for quickly iterating on a game. Not having to restart the whole game just because one has changed a few if statements and values really helps staying in the flow. But I'm still not too enthusiastic about having GC in C# which is why ideally I'd like to start making a small 2D game just with SDL3 and C++ but how could I get this nice hot reload workflow there? I don't have the money to pay for expensive proprietary tools like https://liveplusplus.tech https://liveplusplus.tech so what can I do? I guess there's the "game as dynamic library" trick from Handmade Hero (see https://www.youtube.com/shorts/seWAIURXxH0 https://www.youtube.com/shorts/seWAIURXxH0) so maybe that would work good enough? Maybe https://github.com/fungos/cr https://github.com/fungos/cr would do most of what's needed here? Also, how does one even do modern C++ these days? Is it possible to have big C++ code bases that still compile fast these days? Is CMake 4 good™ now? Are modules really there yet? I rely on clangd as LSP for working with C++ but I read that clangd still fundamentally struggles with C++ modules https://chuanqixu9.github.io/c++/2025/12/03/Clangd-support-for-Modules.en.html https://chuanqixu9.github.io/c++/2025/12/03/Clangd-support-f... and it's so bad that there has even been some effort going into making a new C++ LSP https://github.com/clice-io/clice https://github.com/clice-io/clice
- neonsunset 7mo ago.NET also now has an (amazing) alternate low-pause/effectively pauseless GC: https://github.com/VSadov/Satori https://github.com/VSadov/Satori Builds: https://github.com/hez2010/Satori/releases https://github.com/hez2010/Satori/releases how to use? do self-contained publish (but not single file), replace 3 files in the folder with the one from Satori release you can check if it's in use with GC.GetConfigurationVariables().ContainsKey("SatoriGC") It is a far, far superior experience to touching anything C++.
- roflcopter69 7mo agoOh thanks, that looks very intriguing! The maintainer seems to be a Microsoft employee so there's that? I wonder though, is this a niche hidden gem or really something that more people should consider using? Also, what about compatibility with platforms like Android, iOS or consoles? That'd be very important for gamedev.
- ps173 7mo agoReading this I realized even for someone who just wants to make games that are fun for him, I find engines very less rewarding to work with. I always loved game libraries that provided utilities to build things but hated do everything ones ( love2d supremacy ). It's great to see experienced and accomplished professionals validating my take :) I saw this documentary on how celeste was made [1], which completely inspired me and got me into indie game dev community. Unfortunately I haven't made any games as of now that I would proudly showcase but the seed that your effort put is still there and one day I will get back to making games. Thanks a lot for making celeste I absolutely love it! ---- 1. https://youtu.be/MSKOQr_YS-U?si=AGzl5ILzxkoIB-j9 https://youtu.be/MSKOQr_YS-U?si=AGzl5ILzxkoIB-j9
- phendrenad2 7mo agoNote that this is primarily about 2D indie games. For 3D, it's not much of a question, you probably need an engine.
- cyber_kinetist 7mo agoIf you throw away photorealism and limit yourself to stylized 3D, using a custom engine can certainly be a pragmatic choice. The best examples I can think of are Thumper, Devil Daggers, Hyper Demon, The Witness, and No Man's Sky. And of course, Minecraft!
- PacificSpecific 7mo agoI generally worked on AAA stuff but the few times I released stuff independently I ended up writing my own framework/engine. I think the issue was when I used an engine the scope was too large and I never completed the work so I never released the game (or I released it for free because I felt it was incomplete and wasn't worth charging for) It's great to work in a constrained environment
- huflungdung 7mo ago[dead]
- RASBR89 7mo agoA lot of modern games ‘feel’ the same to me now. Same sort of lighting, blur.. even the texture loading and pop in. They all sort of blend into one mess. I liked when games all felt very distinctly different and I feel like part of that was that they all varied on ‘engine’
- boca_honey 7mo agoThat's the Unity / Unreal look. I can see why that might be a problem, but I actually really like the Unreal 4 look and think fondly about many games using that engine that I like. The way it handles lighting, fog effects and color in general makes me feel "I'm home".
- HerbManic 7mo agoThis is why I am impressed by the works of Enhance Games. Their titles Tetris effect, Rez Infinte (UE4), Humanity and Lumines Arise (Unity) dont show any of the usual traits of those engines. They have done a great job of avoiding the defaults of these engines and crafting something new with the engines as the base foundation. But I suspect that when you have multiple years to build Tetris, you can spend a lot of time crafting your own style.
- allthetime 7mo agothat's because fundamentally, they are the same. Different assets and scripts, same internals / foundation.
- deleted 7mo ago[deleted]
- baby 7mo agoNo MacOS version for Celeste 64. I would have thought building something from scratch would have meant that its easier to do multiplatform right?
- Levitating 7mo agoXCode licensing might play a part, as well as the need for apple harwdware
- hollowturtle 7mo agoTo anyone with experience on the matter: I'm looking for making a mobile app which resembles more of a game or "a graphical app" and was looking into tech I could use, all I need is a drawing API I could use cross platform for Android and iOS without much hassle, don't need any OS specific widget/component, I just want to draw stuff on the screen, handle touch input and do some network calls. Possibly with a statically typed language that gets compiled and has good performance. So far I excluded React Native because it's javascript and has too many dependencies(especially with expo) and SDL3 with plain C which seemed a little too much low level to dealing with on a mobile phone. Also tried go mobile but seems unmaintained and gives opengl context which is deprecated on iOS, and finally I'd really liked using Raylib but no iOS support :(. Any suggestion?
- newswasboring 7mo agoIf you are willing to try out Lua there is Love[1]. Supports most common platforms on PC and mobile. [1] https://love2d.org/ https://love2d.org/
- hollowturtle 7mo agoI really like love2d and used prior but lua isn't compiled and network support is limited, although I see they now support https requests on the latest version
- arjonagelhout 7mo agoI personally use Skia, in combination with a very thin platform layer. I do use C++ so that might still be a bit too low level, but after having set up everything, the Skia API is really nice for just drawing some text / other primitives onto the screen. React Native uses Skia under the hood as far as I recall.
- hollowturtle 7mo agoI'd love to use Skia. Any template/starter I can look for having both Skia and c++ compiling inside xcode/android studio?
- agentultra 7mo agoI’m in the middle of making a game now in C with raylib. Super small in scope. No level editor or tooling needed. It’s easy for me. I just know C and raylib’s API is small. I got cross platform compilation going in an afternoon. I’ve worked through some things with Godot. There’s just so much to learn that it’d take me longer to learn Godot than to get running with C. Feel much the same as the author.
- ecshafer 7mo agoFor me when there is a library or framework or "engine". You are often having to learn the specifics of how this thing works, and ALSO map your mind to the way it works. When you write things yourself you are only in your own mindset. So you can write your 90% self implementation in less time than learning this new mindset. Then you can build everything together without special ways of piping things together. Adding more frameworks or libraries is an exponential explosion in complexity, and more and more of your time is spent with glue code. When you write everything yourself, you are in one design space and things flow more naturally.
- JKCalhoun 7mo ago100% agree. • There is overhead in learning how a specific game engine works. • Often, due to a game engine API, it seems to herd you into writing the same game everyone else is writing with that engine. I wanted just enough "game engine" to abstract away the pixel-buffer, windowing, user-events on the various target platforms and then do no more. "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." And that is exactly where I landed as well. SDL3 [1] absolutely matched what I wanted. Then again, I enjoy writing sprite-based games. If you want to write a 1st-person shooter though I'm sure you will still want to go with one of the giant game engines. (Actually it was SDL2 since it was two years ago I was exploring it: https://store.steampowered.com/app/2318420/Glypha_Vintage/ https://store.steampowered.com/app/2318420/Glypha_Vintage/)
- lasgawe 7mo agoA lot of modern games do feel like they blend together visually, similar lighting models, motion blur, depth of field, texture streaming pop in and I think part of that comes from so many titles relying on the same engines. When more studios were building or heavily customizing their own engines, games tended to have a more distinct identity.
- zeroq 7mo agoThere's a huge difference between "making a game" and "shipping a game". If journey is more important to you than the destination then developing games without an engine can be a great adventure. But if you bank on shipping your product within budget and scope then you'd better pick up one. Any one. And stick with it.
- YesBox 7mo agoI've been working on Metropolis 1998[1] for +4 years now. Custom C++ engine built with a modified version of SFML 2.5 and SQLite. Creating my own engine was both a personal and strategic decision for me. I was really worried about running into performance issues with generalist engines, and I did not want the friction of working with someone else's mental model. Pretty sure that friction would have caused so much burnout for me. There's also the long payoff of operating in an environment that you understand top to bottom. I ignored all the advice about making smaller games first, creating an engine first, etc. Metropolis 1998 is my first game and so far it's working out just fine. But your mileage will vary.. I started development with 10+ years of software experience and fond memories of Rollercoaster Tycoon and SimCity 2000/4. I only add what I need. There's no level/scene editors (outside of the game being one itself :P ). No scene graphs. Shaders are coded by hand. Right now the entire game is about 45MB. [1] https://store.steampowered.com/app/2287430/Metropolis_1998/ https://store.steampowered.com/app/2287430/Metropolis_1998/
- megalomanu 7mo agoLooks fantastic! Growing up on RollerCoaster (+Transport) Tycoon and SimCity myself, this is exactly the kind of project I'd dream about building, if only I had your dedication!
- YesBox 7mo agoThank you! I'm fueled by passion more than dedication.
- Karrot_Kream 7mo agoCurious how long you spent on the "engine" vs just writing the game? Based on the stuff I see on Steam you're pretty far along. I see it's Windows only which makes sense for your goals (and honestly seems very easy to run in a VM.) Was it easier to target and test for a single platform? (Also thanks this is exactly the kind of game I'm into.)
- YesBox 7mo ago
- alvivar 7mo agoInspired by this blog post by Noel Berry, I started playing with SDL3 and C# yesterday, experimenting with falling sand algorithms (implemented sand, stone, and water) https://github.com/alvivar/falling-sand https://github.com/alvivar/falling-sand
- the__alchemist 7mo ago3 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.
- mikepurvis 7mo agoNot 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.
- jonny_eh 7mo agoDid 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.
- 7mo ago
- TimFogarty 7mo agoIf you're interested on a dive into building game engines, I've enjoyed some of Cherno's videos [1] on developing his game engine Hazel [2][3]. It's cool to see the amount of work that has to go into building an engine. I believe Noel when he says building games without a commercial engine is more fun - there's a lot of fascinating optimizations and tricks at the engine layer. [1] https://www.youtube.com/playlist?list=PLlrATfBNZ98drHSOb-h2e618oOB6yuLUS https://www.youtube.com/playlist?list=PLlrATfBNZ98drHSOb-h2e... [2] https://hazelengine.com/ https://hazelengine.com/ [3] https://github.com/TheCherno/Hazel https://github.com/TheCherno/Hazel
- ventare 7mo agoI remember reading this article a while back. It may be partially responsible for me starting my own game project in a custom engine. Also the last 10 years of my professional life have been spent wrangling Unity and Unreal, and, well, I just didn't want to do it anymore. So I narrowed my game concept to be more stylized, no photorealism, no human characters, etc, in order to make something both unique, and deliverable. Its inspiring to see others doing the same thing for similar reasons. Maybe I'm not completely crazy after all :)
- wolttam 7mo agoHey Noel! There is always Neovim :) - A former VS Code enjoyer
- agentifysh 7mo agobeen working on something in three.js and ended up building an editor inside it its kinda insane how much i can get done with codex half way through i realize i need a way to build levels and codex suggests you need a editor, here's the PRD following the safety harness and framework in your AGENTS.md and I come back to get coffee and its done.... also have a appreciation for how much game engines do for you, every step of the way I want to add a simple feature and realize we are not using a game engine so those have to built as well
- holoduke 7mo agoA bit off topic. But I think that if the speed of today's LLMs would be a factor 1000 faster, we would need no general purpose engines or frameworks to build a game. One could prompt a complete custom game including all the parts that make the game. Engine. Physics, assets. Sounds, level design everything. Capabilities of for example opus is enough to achieve this. Its only slow.
- jharohit 7mo agoon that theme it reminds my of the Pico-8 community (although technically it is an engine but you dont need to do engine programming even for generating music!!) compiled a personal webpage to play with mobile controls and a javascript engine to play the pico-8 games and i love the celeste port on that! https://rohitjha.com/labs/flynns-arcade https://rohitjha.com/labs/flynns-arcade
- purple-leafy 7mo agoI started making a raycaster from scratch in C which I wanted to turn into a game engine [0] Was my first C project to learn C as a 4 year self taught dev. Will revisit it in a years time (working on something big) and try implement my full vision - minecraft-like worlds but if it was fully raycasted [0] - https://github.com/con-dog/chunked-z-level-raycaster https://github.com/con-dog/chunked-z-level-raycaster
- deterministic 7mo agoDon't fall into the trap of making an engine instead of making a game. Unless of course you deep down don't really want to make a game. If you really want to make a game then start on the game and then figure out what external tools are useful for that game. (I have released 2 commercial games with engines written by me - I would not do that again).