Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • You do it because it's fun. Then you win, even if you lose!

    This also applies to everything else in life.

  • Still bitterly disappointed that the upcoming sequel to Cyberpunk 2077 will no longer be on their in-house engine. There's something innately charming about the unique brand of jank that comes with doing it all in-house. See also: Skyrim/Creation Engine in general.
  • The Bethesda Morrowind-onward RPGs had their engine roots in Gamebyro, which was fairly widely used by other developers as well. That said I think there's a question about where the value comes from, as their customization to it 25+ years ago and what it enables their game/toolkit to do has clearly given them a 'special sauce' that hasn't been replicated.

    Also upthread Source was mentioned which has id's Quakeworld/Q2 engine as an ancestor, via HL1 GoldSrc.

  • Yes a custom engine gives the game a unique look and feel, but it's also expensive. In fact, if Cyberpunk 2077 had used an off the shelf engine, it probably wouldn't have had such a buggy launch.
  • This is why the custom engine over the last 6 years I've contribute to `godot engine` is more widely used and I haven't finished my game.

    I reject this theme, I gained but I also lost.

  • Game developers who find themselves writing a game engine are no longer writing a game, they are writing a demo for their game engine.
  • Yes but to be fair the vast majority of custom game engines I've seen never even as far as to have a single working game written with them, even by the author. Having a game engine and a "demo" is an accomplishment in and of itself.
  • The thing about game engines is that 80%+ of engine developers time is spent on designing tools and a checkbox/slider for you to click. Another 15% is spent on conflits when combining featured. Less than 5% of the time is invested in actual engine features. In raw homegrown engines, you call a function to enable the feature you want. Your 5% time matches commercial engine 5% time. You dont gain much if you know what you are doing. If you dont know what you are doing, well …
  • That graph isn't 13% "make their own game engine." It is 13% as "other." There are a LOT of other game engines out there. Very, very few games roll their own.
  • If you look at the actual source linked in the article it contridicts you.

    "Other" in that document means custom game engines.

  • > Very, very few games roll their own

    Except a ton of successful indie games, including some of the best of all time:

    Minecraft, Braid, the Witness, Dwarf Fortress, Stardew Valley, Terraria, Fez, Animal Well, and probably a bunch I haven't heard of or forgot.

    Also most AAA studios and a lot of AA studios.

    Most game engines were also born out of a game. Source, Unreal, IDTech all were games first, then the engine was extracted.

  • The simple reason that a lot of the games made without a custom engine don't sell is because they're simply turds. Games don't sell based on what engine they were made in. Games sell because they're good games.
  • Where do you put modular engine/framework hybrids like Bevy? It owns the game loop so it's technically an engine but you can swap out just about every part of it, even rendering and window management. Tiny Glade only used the core ECS with every other part being custom.
  • Framework, Bevy is definitely not an engine.

    Does it do one thing? It's probably a library.

    Is it a collection of libraries that work together focusing on primitives with callbacks? It's probably a framework.

    Does it load levels? Have its own schema for an entity? Provide a multiplayer server protocol, and build on primitives? It's probably an engine.

    Libraries -> frameworks -> engines -> games.

  • As a hobbyist, I also dislike how standardized the notion of a “game” has become. The big name engines feed into this with the biases built into them to help facilitate making these sorts of games, and then the notion of an “engine” gets similarly restricted. But a game can be any sort of joyous program.
  • I understand that making a game engine is often at odds with actually making a game, but does anyone know of good literature on building one from scratch? Ideally something like crafting interpreters but for an engine. It’s been on my list for quite a while.
  • There's a game version of the Whorf hypothesis; the engine limits the kinds of games that are thinkable. Unless you are the kind of person that has shipped your own engine, you probably don't even realize the thousands of little decisions that are forced on you. Which is why so many games look and play exactly the same.

    According to my research, Steam success is somewhat correlated with making your own engine. Novelty and standing out from the crowd are the things that sell your game. It's a lot harder to do new things if what you can think is limited by your infrastructure.

    Still, don't build your own engine. Build your game; the engine comes out of that.

  • > the engine limits the kinds of games that are thinkable. [...] You probably don't even realize the thousands of little decisions that are forced on you

    Well, if Im not aware of those decisions forced upon me. I doubt they are affecting what I think is possible to do in the engine, as I'm not aware of the limitations in the first place.

  • > the engine limits the kinds of games that are thinkable.

    Does anyone actually do that? Most people just sit around thinking things up, and only later are they sobered to the fact of how much work it would be to implement a niche feature that isn't a substantial part of the game.

    > Which is why so many games look and play exactly the same.

    I'd argue that 90% of that is caused by default shaders. It's why people complain about "unreal engine sheen" it's how most of the materials get set up for you if you don't care to change it. The other 9% is default character controllers for the same reasons. 1% or less is going to be caused by some unalienable quirk of the engine that can never change.

    > Steam success is somewhat correlated with making your own engine. Novelty and standing out from the crowd are the things that sell your game.

    Successful games often have novelty and stand out. But there's an aspect of survivor bias. Probably plenty of games that are novel or stand out in all the wrong ways. It's also not clear that making your own engine causes novelty or you to stand out.

    > It's a lot harder to do new things if what you can think is limited by your infrastructure.

    Again, not convinced that's the way people go. Maybe they try to implement it and it's clunky, or doesn't scale, or trashes performance. So they scale it back, rework it, or write some custom code. An engine isn't magic, any amount of code you have to write to implement a feature is less than a whole new engine. Would Balatro have been a better game if it had a completely bespoke rendering pipeline? I'd say probably not.

  • I'm reminded of the story of Randy, that I watched unfold over quite a few months - he couldn't help himself but to work on new features, rewriting existing features, hacking to make his workflow better, but really struggled to release anything, like a form of bikeshedding where you are actually still productive, except what you produce doesn't seem to meaningfully get you closer to shipping at all.

    The videos that document the journey probably haven't gone anywhere:

    https://www.youtube.com/@randyprime/videos

    https://www.youtube.com/@randyprime2/videos

    If you want to make an engine and learn about making engines - make an engine.

    If you want to ship a game - think long and hard about whether an off-the-shelf engine wouldn't be a better investment of your time (because you wouldn't invest hundreds or thousands of hours making something bespoke and could actually make the features you need within an existing engine).

    I suspect that with the great FOSS and source available engines we have, like Godot, there will be plugins for msot things and folks will be able to make their own without having to start from scratch (unless they really want to), like the most competent terrain implementation for Godot so far is a plugin - https://tokisan.com/terrain3d/

    Hell, maybe also contribute to lesser known engines if you feel like it: like jMonkeyEngine, Flax (it's great, like a lightweight and 3D oriented Unity / Unreal with a footprint closer to Godot and a nice C# integration), Stride and others.

  • For many people sure. There is also the path of “just build a game” with no distinction between the game and the engine. Super Mario 64 doesn’t have a game engine. For the first few months it was just “catch the bunny”.
  • A few months ago he posted a video where he realized his motivation behind the curse of the Eternal Enginedev: "I thought if I could just make a really good engine, making a game would be the easy part."

    Edit: Found it!

    https://www.youtube.com/watch?v=3kzNiMMnT4U

    ---

    I had a related realization recently... I realized I had taken my "prototyping mindset" into a production project, and that was a very bad idea. (Wasted an enormous amount of time, could have finished way sooner.)

    So, first of all, I need an outlet for creative and experimental stuff (R&D Division), to get it out of my system! And second, the production project isn't the right place for that. (At least, not on the level of tech and infra.)

    I think that's basically what John Cleese was getting at with the Open/Closed Mode thing:

    https://www.youtube.com/watch?v=Pb5oIIPO62g

  • I’ve been working in the games industry as a programmer for 21 years and I’ve seen this so many times. I also used to see it on gamedev.net and flipcode.com. Very technical people, engine programmers, think they can make a game and seem to think that all it takes is an engine and don’t even think about the game part. They tinker endlessly with file formats, memory allocators, vector math libraries, pooled string classes, etc and never finish anything when they could have just used json and png files and actually shipped something. On PC for the scale of game most indie developers will make all of that stuff isn’t really necessary. And if you find it is necessary then you can refactor later.