🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Anybody else have aversion towards Unreal, Unity and other ready-made engines?

Started by
8 comments, last by Vilem Otte 7 hours, 11 minutes ago

I was wondering if I'm the only one having this feelings, or is there any other people like me out there?


I strongly dislike the vector that game development acquired some years ago, and according to which it continues to move steadily at present. The overuse of mainstream, generic game engines. Yes.

I think that the “core” or “soul” of the game is its Engine. And by reusing the same generic engines in all the games, this essentially creates unoriginal clones “at the core”. Another issue lies in the fact that game designers in many cases need to adjust their design to fit concrete engine. And when you have only 1 or 2 engines, this forces same designs to manifest over and over again.

I wish gamedev industry would ditch this engines one day, and begin to foster original ideas on all the level of development.

This is hard and expensive, I get it. But I think it would be better to have less games, less often, but more unique and optimised ones.

I tried it myself, you know. Some years ago I tried to implement some primitive 2D engine, but it turned out to be TOO primitive. This year I tried to challenge myself to create DX12 engine from complete scratch. The ultimate goal was an FPS game. I managed to setup the pipeline, write some simple shaders, generate some primitives and even add some controls but I got cut down by the super complex math of collision detection system, and because of this had to freeze the project for the indeterminate time…

None

Advertisement

For whatever personal reasons, for me it's inevitable. I don't like it personally, I like it professionally, but again, it's inevitable.

In my opinion, The future is already predicted since the old Flash days because of its ease of use, and game engines like Unity + mobile devices are the ones that finally let them mesh into mainstream, as Flash couldn't. From what I know, Unity's big venture was its web player, so the Unity's transition mainly comes from web game developers, which at that time was mostly Flash before HTML5 existed. This “Flash developers" won, so the engines are here to stay for the same reason this group of developers exists (and now lead to the next generation).

I'm not saying this from imagination, but based on how game developers in my generation and region were mostly started from Flash until they get to Unity when mobile devices are here, and then followed with Steam indie phenomenon.

I got to pre-face this by saying, I personally hate Unity, for a variety of reasons (the workflows are pretty bad, and you have too little control over the foundation of the engine to optimize them). That being said, I do not belive that the engine actually limits the gameplay in any meaningful way.

For my own free-time project, a 2d action-rpg with ~30h playtime (as of now, which is~50% done), I use my own engine, that I've been developing for the last 12 years. The workflows are much better, so I can create content faster. But I do have to spend weeks, if not months at a time, sometimes, just for improving the engine. So the overall time would be faster with Unity, even though I'm very sensitive to suboptimal workflows, so I'd rather spend +50% time on developing an engine and then using the best possible workflow, then use a premade engine and have to spend extra time on the content creation.

Still though - I could absolutely do the same game in Unity, no question. I could do a 1:1 port of the gameplay, so no, I don't belive premade engines restrict you in that matter. Even at work, where we use eigther Unity or Unreal, our concepts are rarely limited by engines, but more the time we have due to budget. So having to spend extra time on developing the engine would rather limit us, that way.

So yeah, that's my takeaway. Custom engines can offer better workflows, but they are not really worth investing the time for most use-cases. My own engines main highlights are things like deterministic, lightweight replays (that I can use to both auto-test the whole game, as well as record user sessions to reproduce bugs), and a blueprint-inspired scripting language with heavy focus on coroutine-style programming (but with close to native performance and more programmer-focused) that makes creating both gameplay-systems and cutscenes very easy and fun. But if I had the discipline to just use a worse workflow, I could have probably finished the game already if using Unity/Unreal (with the same gameplay, 1:1), because I spent multiple 10s of thousands of hours on the engine already, and I'm primarily focused on 2d… I will continue doing my engine, because it gives me a lot of joy; even when starting to do 3d projects… but for the general case, one of the U-engines will be the way better choice.

ScienceDiscoverer said:
I strongly dislike the vector that game development acquired some years ago, and according to which it continues to move steadily at present. The overuse of mainstream, generic game engines. Yes.

But this trend isn't restricted to just engines. It also affects anything else - gameplay, setting, story, characters.
With that impression in mind, choice of engine seems to have the least impact on the often disappointing outcome.

ScienceDiscoverer said:
I think that the “core” or “soul” of the game is its Engine.

That's only true if your game requires certain technology which generic game engines can not do.
But if your generic game can be implemented without issues on any generic game engine, nothing wrong with using a generic engine.

Ofc. some innovative game with new mechanics, or another game not doing anything revolutionary but being just good, can also mostly be implemented using generic game engines without restrictions. In this case - again nothing wrong about using them.

ScienceDiscoverer said:
Another issue lies in the fact that game designers in many cases need to adjust their design to fit concrete engine.

Do they? I would guess engine limitations are rarely an issue. I mean, they try to make a game which is similar to their last game usually, just bigger. And for being bigger the limit is usually content creation, so budgets, not so much engine limitations. But idk.

ScienceDiscoverer said:
I wish gamedev industry would ditch this engines one day, and begin to foster original ideas on all the level of development.

Every time some studio proudly announces to ditch their custom engine in favor of Unreal it's sad news, and it feels like a slow death of game development in favor of just content creation.

ScienceDiscoverer said:
This is hard and expensive, I get it.

I don't. I expect paying 10 programmers is nothing compared to paying 300 artists.
Idk what's the problem. Maybe it's Epic and NVidia sucking up all talented people, and studios having a hard time to find experienced expertise replacing their seniors.

ScienceDiscoverer said:
I tried it myself, you know. Some years ago I tried to implement some primitive 2D engine, but it turned out to be TOO primitive. This year I tried to challenge myself to create DX12 engine from complete scratch. The ultimate goal was an FPS game.

You could be already done with that game if you had decided to use Unreal, and it might look better and run faster.

Eventually. But maybe i'm wrong. Yep - i'm pretty sure i'm wrong. Otherwise i would not try to do the same thing myself. ; )

ScienceDiscoverer said:
but I got cut down by the super complex math of collision detection system

Personally i do a compromise. I use libraries, e.g. a physics engine.
I worked on physics sim decades ago. I could get it to work, somehow.
But likely i could not reach the robustness and performance of the open source physics engine.
So i better spend my time elsewhere. It's finite, and i can't do everything on my own.

I'm definitely not a fan of Unity at least, which is the main engine that I use at work. It's excruciating to use on larger projects and very slow overall. Just editing 1 line of script code takes 30+ seconds for unity to even become responsive again since it has to completely recompile the project every time. Heck, even launching unity hub (much less opening a project) takes 30 seconds. I'd never choose to use Unity for anything non-trivial. I spend way too much time waiting for Unity to “Hold On….”

For my personal game project there are technical reasons why Unity/Unreal could never work. I'm creating a realistic-scale space/planet simulator, and those engines are not setup at all to handle those sorts of scales. I had to integrate a multiple coordinate system architecture deeply into all engine systems (graphics, physics, etc.), so that massive scale works in single precision without any glitches or faking it. This simply wouldn't be possible in Unity, and would take ages to rewrite Unreal. Particularly physics is a problem - the physics engine needs to handle collisions between objects that are in different (neighboring) coordinate systems. An off-the-shelf solution would be impossible for what I'm doing. However, the pain is that everything must be built from scratch which takes a long time.

For the commercial world, time is money.

Unreal has about a 30 years of work and around 150B in direct technology investment, billions more through mergers and acquisitions over the decades. Unity is a decade younger and around 40B across the decades.

Sure it is still possible to build from scratch, or more typically, from libraries and SDKs that include parts of the functionality you need. But by doing so, you are also leaving behind a multi-billion-dollar technology suite that many players expect to see in games.

Doing it yourself can mean many years, and many hundred thousand dollars or more, developing the tools you get included in the major engines.

JoeJ said:
But likely i could not reach the robustness and performance of the open source physics engine.
So i better spend my time elsewhere. It's finite, and i can't do everything on my own.

Yea, this is actually the saddest part of this this reality for me. If only we could have infinite time… Then, even if it would take 100 years, we still could create the game of our dreams alone and with minimal budget!

None

ScienceDiscoverer said:
I think that the “core” or “soul” of the game is its Engine.

If the soul of your game is the engine, and not the story, or characters, or gameplay, your game is doomed. A truly great game idea should transcend the limits of the engine/platform it's build on. A better engine might make the game look or sound nicer, but the choice shouldn't make or break the game idea.

Game engines like Unreal, Unity, Godot, etc. serve a specific purpose. They provide baseline functionality and tools required for individuals and small teams to jump right into to making their game, without having to make all their tools first. Imagine if you were tasked with building your own tiny home: if you were provided a with finished lumber, power tools, and plans, you could probably get it done. Consider this statement in Juliean's post above:

Juliean said:
I use my own engine, that I've been developing for the last 12 years

12 years. That is the stone axe route, my friend. It can be a rewarding path, but it is definitely not for everyone, and certainly not for someone who wants to make a game for profit rather than their own hobby project. Creating a whole engine and development environment can consume you to the point where you never get to actually making the games. It's all too easy to become like the woodworker who is only ever crafting their own next workbench.

ScienceDiscoverer said:
I was wondering if I'm the only one having this feelings, or is there any other people like me out there?

I wouldn't call my dislike of Unity and UE an aversion, but rather questionable decisions and shady business practices that are my main concern around those.

Generic engines give out a basic toolset you can use to make a game - it is going to be useful for some projects, but useless for others. Before adding any tool into given project, you have to consider its pros and cons … and here comes one problem with the 2 above mentioned.

Epic is well known for questionable business practices (Fradulent purchases without consent in their products, etc.), buying out companies that developed middleware or assets and pushing those “for free” into UE - which means all the bought companies must operate at loss (which may or may not be a problem). Their introduction of many things into engine just to drop them a version after is another thing.

Unity questionable decisions and bad practices are well known - introducing massive changes like ECS/DOTS, UIElements, etc. - having them for years in beta changing interface (rendering those useless). Not to mention their weird business model (we all knew they operate at massive loss, but their decisions were just bad and weird damage control doesn't help it).

Not to mention their weird introduction of “Industry” and other licenses, which increase cost for industrial customers at literally no advantage. Giving you option - either drop your product or start paying N-times more.

These are reasons why NOT to use them - as you can see, most of those are legal/business ones. There are also technical ones (UE control latency feeling off, performance of both, etc.) - but these are project-specific, rather than generic.

Note: There are other engine development companies that offer to an extent comparable generic engines, and each come with their own ups and downs. I do mention above 2 because I do have experience with both. This doesn't mean I won't consider using them for some project, it's just my 50c on what to always consider with these 2 companies. The benefits may outweigh these risks!

ScienceDiscoverer said:
I think that the “core” or “soul” of the game is its Engine. And by reusing the same generic engines in all the games, this essentially creates unoriginal clones “at the core”. Another issue lies in the fact that game designers in many cases need to adjust their design to fit concrete engine. And when you have only 1 or 2 engines, this forces same designs to manifest over and over again.

This is incorrect, engine isn't anything more than a bunch of underlying functions and libraries allowing you to develop products (games) on top of it. Yes, these generic ones have editors (as well as the one we built & use in-house and for commercial products) - but they're not what makes the game.

If designer needs to adjust their design to fit given engine - then the whole studio does it wrong.

Going for your own tech comes at few downsides - it costs resources to develop it, those can be significant (it depends on what kind of tech you need). Our own tech has been developed for 10+ years so far and I doubt you'd call it solo-project. It is also commercially used.

If I were to make a game without that tech available - I'd choose one of ready-made engines (assuming those would be suitable for given game), instead of developing my own from scratch.

ScienceDiscoverer said:
I wish gamedev industry would ditch this engines one day, and begin to foster original ideas on all the level of development.

This is hard and expensive, I get it. But I think it would be better to have less games, less often, but more unique and optimised ones.

Why? They are tools. Much like WinAPI, Direct3D 12, Blender, Photoshop, Krita, etc. What you do with the tools is entirely up to you.

There is no shortage of generic engines, and there is no shortage of games using their own engine.

UE/Unity/… bring in some specifics to the asset pipeline, which might be considered a good thing in some projects (especially with larger art teams where rotation of artists happens often). Visual-wise there isn't that big difference between what you can achieve with either of those generic engines - all can be used for high-fidelity games, all can be used for stylized games, etc. If it's done good, users won't know.

If the decision is solely based on “UE just looks better than Unity” then whoever called that decision and the management are just full of complete idiots (and yes, I know some teams that did this).

Overall - use the tools you consider the best for given kind of job. If Unity can significantly accelerate development of your game and risks aren't that big - go for it. Same foes for UE. Or for Godot. etc. If they won't provide any major benefit (or no benefit at all) for given project - don't use them.

My current blog on programming, linux and stuff - http://gameprogrammerdiary.blogspot.com

Advertisement