Advertisement
Advertisement
⚡ Community Insights
Discussion Sentiment
84% Positive
Analyzed from 2509 words in the discussion.
Trending Topics
#engine#game#games#own#engines#probably#custom#making#something#successful
Discussion Sentiment
Analyzed from 2509 words in the discussion.
Trending Topics
Discussion (47 Comments)Read Original on HackerNews
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.
The idea that the layer above your own is trivial to build (e.g. biology is just chemistry, or chemistry is just applied physics)
At some point I built a little 2d game engine, but the same amount of time would have been better served actually building a game in Unity. Eventually I solo developed a full 3d VR app for the MetaQuest.
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
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.
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.
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.
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.
A really, really well designed engine is just going to be a library of highly modular components with a nice editor or two thrown in.
As the old adage goes "Build libraries not frameworks"
"Other" in that document means custom game engines.
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.
But then things like Fez as you mentioned, back in 2012 when it came out, it would have been a real struggle to put together with off the shelf engines. I could see it being much easier now but still a product of its time.
One studio I am endlessly impressed with is Enhance games. Tetris Effect (UE4),Rez Infinite (UE4), Humanity (Unity) and Lumines Arise (Unity). When you fire them up, you would be really hard pressed to know what engine they are running as they have made the end results so unique that the base engines traits are almost completely gone. That is a real talent.
But if you have some unique tech that just needs to see the light of day or a work p=flow that just doesn't fit what everyone else is providing, go with your own engine. There will never be a one size fits all.
I'm not necessarily making any judgement about what someone should do. Rolling your own engine for a story based game is probably a bad use of time. But the idea that few successful indies have rolled their own is false.
I agree - if you're just doing something that needs some assets placed, some interactions, rendering, some physics, use an off the shelf engine. But the idea that it's impossible or not worthwhile to roll your own is repeated too much.
But most indie games do not roll their own engine. Even this widely shared post aiming to show off games with custom engines, ends up listing a ton of games with notes like "OGRE-based" or "MonoGame-based." I'm sorry, but that's not a custom engine. That's an atypical engine choice (OGRE or MonoGame) with tweaks. Maybe I'm being a pedant, but I think the difference matters.
https://gist.github.com/raysan5/909dc6cf33ed40223eb0dfe625c0...
Unfortunately I don't think there are good numbers on how many truly original / custom / no-engine games are out there, in absolute or market terms. 13% is the ceiling, but I wouldn't be surprised if it was much smaller (e.g. <5%).
You compared a full-on 3D renderer to something that's basically the same as SDL or Raylib. Ogre could be considered a game engine but XNA/Monogame definitely isn't (nor is SDL or Raylib).
> But most indie games do not roll their own engine.
Most indie games are slop that are barely more than a template with pre-purchased assets and sell zero copies. There's no point talking about most of something when 99% gets thrown straight into the garbage.
> The most successful indie games often have their own unique aesthetic, and rolling their own game engine, while not strictly necessary, does make that uniqueness the default outcome rather than something you have to strive hard to achieve.
Yup and that's the point. Code is art as much as art is art. Sure, you can get a basic game made in a couple hours with Godot, but what's the value or uniqueness when anyone can do the same?
Regarding Source, Unreal, etc, that was back in the day when making an engine was much easier than today, due to lower player and graphics demands, which they then iterated on.
I don't know specifically about how creating game engines was back in the day with lower level languages, but I can hardly imagine it was easier than today. I don't know of many things that are harder today than ~30 years ago when I first touched a computer, everything seemingly is getting easier and easier. Especially creating games, and for sure creating game engines. I'm not complaining, I'm loving the Cambrian explosion of games and especially indie games, but I do think we're seeing more and more games and game engines being made because it is easier today, not harder.
Yeah there's successful games that used an off the shelf engine but saying very few roll there own is plainly wrong when a bunch have. And that's without mentioning the whole flash era...
If you want to do something no one has done artistically, it helps if you're also doing something no one has done technically.
And novel designs stand out. It's no coincidence how many of those wildly successful games introduce totally new game designs, only made possible through their totally new game engines.
True. A lot of successful indie games are built in a custom engine. But that doesn't imply that all successful indie games need to be built on a custom engine or that someone is going to have more success by going the custom engine route.
The best of all time is a bar quite high. Success is already a few rungs down the ladder.
I reject this theme, I gained but I also lost.
Things like that don't happen because of merely technical problems, "buggy launches" happen because of organizational issues, and those happen regardless of what engine you base your game on.
Probably is doing heavy lifting here
Also upthread Source was mentioned which has id's Quakeworld/Q2 engine as an ancestor, via HL1 GoldSrc.
This also applies to everything else in life.