How Common Is It To Use A Custom Engine?
By - SuperiorCiderCan
As others have said, it used to be a lot more common, but with the proliferation of ready-to-use tools/game engines such as Unity, Unreal, Godot, etc. that you can feasibly use to develop a game from start to finish, many people are happy to use those.
Some indie studios might have their own engine for a specific use case. Engines aren't always built from the ground up, and it's very common for devs to make an engine or tool that's built on top of existing frameworks and libraries. The developers of Celeste used [a lot of different tools](https://celestegame.tumblr.com/tools) to make their game, with a combination of XNA, FNA and Monogame for cross-platform, a Scene/Entity/Component framework called Monocle which was built on top of XNA, and C# for any game code.
2010 Really common, its pretty much the only choice for indies.
2015+ If you see any game, specially indie ones, using a custom engine, you found an unicorn.
Engines are not game makers, so using Unreal or Unity still means writing many thousands of lines of code for anything other than very basic games. I would say almost no indie dev writes their own game engine as that would be a multi year project all on its own and would very likely be far inferior to Unity, Unreal and Godot.
Idk about inferior, as there are pros and cons to making an engine. But the effort required for solo/small teams to do so is not worth it if theyre profit motivated. If you make games as a hobby tho, id say its probably worth it
I can fully understand creating your own game development library, and I've done it myself a few times in both Java and C# for various hobby games over the last decade (particularly for multiplayer networking frameworks). However, your own custom game dev library is a world apart from a game engine - as a game engine typically brings a whole host of complex capabilities like a physics engine, complex lighting, particle effects, an animation engine, fluid dynamics etc. Of course I'm talking about 3D so if you are referring to 2D then a game "engine" is little more than a library of high level functions to give you sprite rendering, collision detection etc so that's very doable and I fully agree there are benefits to doing your own.
In the old days it was the only way to make games, but the practice has faded out a lot.
There is no way to know, the only thing we do know for sure is that it is less than 25% of all new games use custom engines. Even old surveys reported 40% for custom engines as far back as 2010.
There is 3 reasons a game developer would make a custom engine:
1.) The game needs performance over everything.
The easy to use engines will have lots of tools that not every game needs, making a game from scratch will keep things to a minimum.
2.) The game has some special requirement no other engine is made for. Minecraft for example uses voxels, that isn't common in engines.
3.) The game idea is so small that no engine is needed, something like Pac-man.
There are some people who want to make engines, but I do not understand their goals.
Game developers should avoid making engines, because all that time goes into learning technical things that while handy sometimes, isn't necessary for making games at all.
It also takes way too long to make an engine.
> learning technical things that while handy sometimes, isn't necessary for making games at all.
I don't think this is valid. Knowledge of how the (or any) engine works is undoubtedly necessary at some point in your career.
>I don't think this is valid.
But it is a fact. There are many published and successful games made by people who have no idea how a engine works; large amounts of them these days.
>undoubtedly necessary at some point in your career.
Again, no. There are people who make games for a living who have no idea how a game engine works. It is not necessary ever to make games.
The only time it is necessary to learn how a game engine works, is to make a game engine.
The simple fact is a person doesn't need to know how the engine works to use it, or to be successful with it.
While learning how to make a engine can be useful it is not a requirement.
I'd agree with you if I was okay with people making bad games. Not knowing anything about how games actually work will inevitably make your game less functional.
You could argue that you don't need to know programming to make a game because you can just copy code from the internet and buy a bunch of assets. So I'll rephrase what I said earlier:
Knowledge of how the (or any) engine works is undoubtedly necessary at some point in your career _if you want to make good games_.
>I'd agree with you if I was okay with people making bad games.
Hold on there, most of the top indie games in the past few years where made by people who don't know how to make a game engine; for example Undertale.
Tokyo Dark was made by a team that didn't even know how to program, just artist.
>Knowledge of how the (or any) engine works is undoubtedly necessary at some point in your career if you want to make good games.
Again this is just false. Many existing games proof this to be false. A lot of the top 100 games every year are made by people who don't know how engines work but understand game development.
Most importantly a computer isn't even needed to make games. Board games and card games have only increased in popularity as people grow tired of computer game limits.
To be clear, I don't think that learning engines is a complete waste of time. However it is not a requirement for making video games anymore.
Right now there are top range computer games made by people who can't make game engines.
You seem to argue very literally. Like I said, you could argue that you don't need to know programming to make games but being this literal is unproductive. You technically don't need to be concious to make good games because you can accidentally create something amazing. Thinking like this doesn't get anyone anywhere.
I am talking about facts, out of the top 20 indie games of 2020 there was 3 games made by people who don't know engines. That is 15%.
It could even be more, because a lot of developers aren't willing to admit they don't understand how game engines work.
So yes from a literal fact, a person doesn't need to know how game engines work to make good video games.
>you could argue that you don't need to know programming to make games but being this literal is unproductive.
Personally I feel like laying to beginners is unproductive. The more a person knows about what is really going on the more decisive they can be and the more productive.
Note: I consider visual scripting to still be code, just a newer type of language.
The industry is leaning toward making video games without code, it hasn't happened yet (there are some Visual Scripting), but sooner or later as the tools are refined there will be games like that.
How long would it take to make an engine for mid-range indie if you could guess?
That depends, do you need continuous collision detection or just basic collision detection, how accurate does physics need to be?, networking/multiplayer, 3d rendering with shadows, global illumination, deferred rendering, post processing, skeletal animation, the list goes on. Its easier to make an idle clicker than it is angry birds from scratch, and significantly harder to make a multiplayer fps.
There was a great YouTube video of a guy comparing his own game engine (an ongoing project) to Unity. He made many games using his own engine and so decided to make a complete game in Unity to compare the two. His own engine project is going more than 15yrs and he isn't done, and says he will probably never be done. I'll try find the link but it was great. If anyone else finds the one I'm talking about, I'd appreciate it :)
Edit: found it https://youtu.be/Y-oDUT73W8k
I can tell you have your mind set on this, so do it.
Even if you use an engine right now there will be this lingering doubt in your head, you will always wonder if you made a mistake.
You can make this easy on yourself, make a very simple version of the game you want to make.
Something like only the player, and a enemy, build only the part of the engine needed to do that.
Then pick a existing engine, and make the same thing.
This way you will get a feel for it, and will be able to decide for yourself what the path is you want to take.
Current engine we developed at work (2 people assigned to it except for the last month where it was 4) only took 3 months. Main time-sink was the renderer and a few times we got stuck waiting on Havok support to get back to us.
However, nobody was a "*noob-indie*" or even "*skilled-indie.*" Everyone had been around the block several times so we were often done with major things in 2 days. A few features didn't even take an entire day (portal culling, destruction partitioning, etc) and others took maybe an hour at most (variable-rate-shading).
A low-skill indie could easily spend more than a week just fighting with shadows and months fighting with their physics lib.
Indies? Probably most people, waste of time to write your own. AAA probably has way more, since they have the resources, and need it
I think you really need to define "custom engine". Most people who build "indie engines" just simply don't use an engine but also don't build all of the features of a mainstream game engine. They only build the features they need as they need it. This is far less daunting and gives you far more control.
common for chads, it's sometimes not really much harder.
Honestly, with plenty of 2d games learning how to bend unity into what you want is about as hard as defining it completly yourself in cpp.