Why Don’t You Make Your OWN Game Engine?



I’ve been asking around, trying to find out why people avoid game engine development. There are a lot of misconceptions and concerns that can be easily addressed. So why don’t you give it a go?

Content
0:00 Introduction
1:30 Getting Into The Right Mindset
2:53 Time It Takes To Develop
4:12 Technical Knowhow Needed
5:43 Comparisons Against Pre-established Engines

source

Related posts

PlayStation Plus Extra & Premium – September 2024 (PS+)

I found a Prototype Xbox Controller

Warhammer 40,000: Space Marine 2 Review – ONE OF THE BEST ACTION GAMES IN RECENT YEARS

20 comments

@Cydeamon September 18, 2024 - 9:15 am
The right mindset to develop your own engine is that you're not developing an ENGINE, you're developing a GAME. Your codebase grows every time you code, you have full control over it, you make the data available the way you like (for me this is the number 1 reason), you can fix something in the moment instead of waiting for someone else to do it. You can develop your own tools, such as a level editor, etc., of course, and that will benefit you, but it's not necessary from the start. You don't have to try to create a set of tools for everything. It's a gradual process until you realize what exactly do you need from the tools.

BTW if no one will try to develop an engine, who will maintain existing ones?
@DanyloSyrotynskyy September 18, 2024 - 9:15 am
If you make own engine it would be harder to hire people to work with
@daylightwastaken September 18, 2024 - 9:15 am
I ain’t doing allat
@roberttalada5196 September 18, 2024 - 9:15 am
If you’re just making a simple game, it can be worth the time to make your own engine because you’re developing a codebase that is YOURS that you can reuse on ANY project. That’s very valuable to you and those that hire you. (Just make sure you protect rights to code you bring with you and don’t let those people try to take ownership of said code.
@paulshelkov7956 September 18, 2024 - 9:15 am
Because the programming aspect of game dev is the least fun, and I already get more of it than I want while using an engine.
@honaleri September 18, 2024 - 9:15 am
Ok, if your passion is "making game engines" then do so.

But, for the most part game devs should spend their limited time making games.

Like, do you think a painter makes any kind of gain from making their own paint and paint brushes? Or a chief farming their own food? Or what if a Youtuber had to first invent a camera?

Its meaningless unfortunately, because with limited time, one shouldn't reinvent the wheel unless doing so is necessary for a specific game concept unachievable otherwise. A unique camera for a special shot. A rare ingredient. Or some special paint or way to apply it.

Spend the time making those to get the game you need. But lotd of people just...training themselves to make the same features that already exist elsewhere but optimized doesn't serve most peoples time.

1- Make a game engine if engines are your main passion

2- Make exactly what you need for the game you can't make otherwise.

Those are the only reasons to do this as a game dev. Otherwise game devs should...dev games instead.


The biggest reasons beyond time and skill that people shouldn't do this, is necessity. People do not need to do this 99% of the time. Rare edge cases like Dwarf Fortress or Noita, or some other game designed different...require this. But most every other game can just be made in existing tools. So why learn blacksmithing to make a lesser version of the same knife you can buy at the grocery store? Just to cut a tomato?

There isn't a valid reason in almost every case. That's why they keep saying don't do it.

If game engines are just your thing though, this is a good video introducing them.
@BlackJar72 September 18, 2024 - 9:15 am
When I first started trying to make my own games I started making my own engine, partly because I didn't realize other options were available -- I made two drafts of an unoptimized 3D rendering engine that would be terrible for actual games. The I backed up and just made couple arcade style games, and a simple 2D engine almost by accident. Having said that, now I just want to get my games made, with most requiring 3D for the concept. At this point, I'd rather just save time by using Unity and Godot, especially for the for complex 3D ideas that actually do require a lot of things that would take a lot of time to develop and a lot of optimization to be practical.
@hyperoson September 18, 2024 - 9:15 am
Making a game engine is great as an experience, career and overall skill boost in the long run
But if someone really just want to make great games, this is a bad way of going about it.
Saying that you shouldnt compare to games made in other game engines is as stupid as Godot developers saying they dont compete with Unity or Unreal. Total bs lol
There is no need for a custom game engine unless you really want to optimize or need a specific featureset, just like Scrap Mechanic or Noita.
@nathansimons9881 September 18, 2024 - 9:15 am
The same reason I leverage any pre-existing toolkit/framework/library/etc: it's just faster. If I had to write everything from scratch, I'd never get anything done. It's called standing on the shoulders of giants. If we threw re-use out the window, we'd all still be coding in machine code binary (no, not even assembly - that's reuse).

Yeah, sometimes pre-existing codebases suck. It's only when they impede my progress enough that I think "I could do better" do I consider something else. And there's enough options out there, I always look for some other codebase. Necessity is the mother of invention, and I've just not found it necessary to write my own.
@niceEli September 18, 2024 - 9:15 am
“Why don’t you make a game engine” that’s your mistake, I’ve already done that AND USED IT HAHAHA
@ltecheroffical September 18, 2024 - 9:15 am
The best way to develop an engine is make a BIG game from scratch and after the game is finished and polished then just extract the engine from it into it's own project and add the rest of the features
@captheobbyist6434 September 18, 2024 - 9:15 am
because i will spend years making a game engine, and get barely any result. then i should spend another few years actually making a game.
i would rather get some actual results i can play, share, and live of, compared to a open source project, which only a few people know, and which cant be profitted off.
ok, you can create your own linux from scratch, your own cpu from scratch, your own game engine from scratch, but it is really worth it?
if you enjoy spending your time on this, you're welcome.
i personally dont, i prefer getting useful results, which are indeed, worth my time.
@madbanana22 September 18, 2024 - 9:15 am
what a waste of bandwith
@lcppproductions7910 September 18, 2024 - 9:15 am
I feel like something that is easy to miss about using general purpose engines is that you don't need to use every tool that it gives you. One of the benefits of using an existing engine like Unity is that you can be more selective about what you want to focus on because of the core features that work out of box. You don't need to use Unity's physics system if you want to learn more about how to implement physics from scratch. You can make custom camera scripts instead of using Cinemachine. If you're more interested in how rendering works, there are ways to write shaders without using shader graph (although idk about bypassing the render pipelines). I made scripts for navigation/pathfinding using A* once in lieu of Unity's navigation. There are even ways to write custom editor tools if you're into that.

Taken to the extreme, you could just take the game object/transform system, entity-component system, all of the convenient editor tools (hierarchy, inspector, scene/game view, etc.), and maybe the renderer, and write custom scripts for everything else. Handling all the editor tooling and file i/o for scenes from scratch, even if you're using something like ImGUI, is a pain (speaking from experience), so I can see why not everyone would want to invest that time.

Making a game engine, you can choose which features you want to add by scoping games accordingly, but you can likewise choose to be selective and exclude features that you wish to use from an existing engine if your game requires something different. In essence, you're building out your own "subengine" within the more general purpose engine that is tailored to the games that you want to make.
@johnmoser3594 September 18, 2024 - 9:15 am
Your first point doesn't make it any faster to develop an engine, it just spreads the time cost out. It also means you don't have a good engine, you have an engine that has stuff added continuously as you need new features for games, which leads to refactoring (more time) or a maintenance nightmare and lots of bugs (if you just kludge it all up to "save time"). You also skipped over 3D stuff. Ambient occlusion, backface culling, and a whole hell of a lot of rendering optimizations that involve a bunch of stuff done with shaders and compute are all going to take you forever to implement.

2D is pretty trivial. People wrote 2D games in a week with Commodore BASIC. You aren't going to get the most basic 3D features you get with Bevy—things like lighting, collisions, or rendering methods that allow your game to run at more than 3fps—unless you spend several months implementing all the 3D stuff in Bevy.
@xanecosmo5061 September 18, 2024 - 9:15 am
If I want to become a chef, I will only learn about ingredients and recipes for the meals I want to make.
I have no interest in agriculture, farming, harvesting.etc
@haggets_ September 18, 2024 - 9:15 am
I believe for the vast majority of game developers, this is bad advice.

As a beginner, this will misguide game developers into thinking they have to do everything themselves, and instead of taking a week learning the basics of an existing engine, they'll spend a month reinventing the wheel and learning unrelated knowledge without getting any progress done on the game they want to make.

And as an experienced developer, they can just tweak the engines they already know to work their way.

A game engine is not only about its capabilities, its about its community. If you get stuck on an existing engine, there is a community you can rely on to help you get back on track.

If you want to make a game engine, by all means do so, but if you want to make a game, just use an existing engine, the feature overhead is really not that big of a deal, and even if some features look useless now, they may become really handy in the future as you learn more about the engine.
@Dial8Transmition September 18, 2024 - 9:15 am
Because I don't know how to code
@anon_y_mousse September 18, 2024 - 9:15 am
My recommendation is usually something like, if you know how to program and you're mathematically inclined and have some spare time, then go for it, create your own engine. If you're not mathematically inclined, then you may still be capable of doing it depending on what level of complexity you're aiming for. If it's 2D then do it, it's simple enough that you don't need complex math to pull it off. If you want something 3D, then consider one of the numerous open source engines. Start simple with one of the Doom's or Quake's as they've been ported everywhere and are more than good enough for most games. If you're lazy or not at all mathematically or programmatically inclined, then Unreal, Unity and Godot are all quite capable, and Godot is one of those open source engines. You don't need any great skills to make a game, especially these days, so just go for it regardless of what you choose to do.
@EscPointDev September 18, 2024 - 9:15 am
I've made 2D and 3D game engines and I'm publicly trying to make another one. I couldn't agree more, with everything you said. Nothing will kill your game engine faster than trying to add complicated features you think you need before you have a real problem and you need to solve it. Don't just make something like an entity component system because it's the "correct" thing to do before you have a single entity in your game engine. Think before you type. (I'm talking to myself here too.)

Comments are closed.

Add Comment