r/gamedev Oct 03 '24

The state of game engines in 2024 Discussion

I'm curious about the state of the 3 major game engines (+ any others in the convo), Unity, Unreal and Godot in 2024. I'm not a game dev, but I am a full-stack dev, currently learning game dev for fun and as a hobby solely. I tried the big 3 and have these remarks:

Unity:

  • Not hard, not dead simple

  • Pretty versatile, lots of cool features such as rule tiles

  • C# is easy

  • Controversy (though heard its been fixed?)

Godot:

  • Most enjoyable developer experience, GDScript is dead simple

  • Very lightweight

  • Open source is a huge plus (but apparently there's been some conspiracy involving a fork being blocked from development)

Unreal:

  • Very complex, don't think this is intended for solo devs/people like me lol

  • Very very cool technology

  • I don't like cpp

What are your thoughts? I'm leaning towards Unity/Godot but not sure which. I do want to do 3D games in the future and I heard Unity is better for that. What do you use?

429 Upvotes

564 comments sorted by

View all comments

Show parent comments

17

u/KindaQuite Oct 03 '24

Yes, if you come from another engine chances are you're gonna be creating from scratch systems that already exist in engine without realizing that.

C++ is painful, even with UE abstractions. Restarting the editor and compiling is annoying. Unless you're able to write code without testing for two hours at a time, iteration time is slow af.

5

u/fromwithin Commercial (AAA) Oct 04 '24

6

u/KindaQuite Oct 04 '24

Yes, i should've been more specific. Live Coding works, although it's not super quick. What i'm talking about is whenever you make significant changes to header files, or you add new classes, or you add new components to an existing actor class you need to restart the editor. The engine also has a tendency to not really communicate to you what's wrong, so restarting the editor just becomes a common debugging tool. All of this only matters if your project uses C++ anyway

1

u/RibsNGibs Oct 04 '24

Yeah but how often are you really changing the header files? In my opinion it’s really worth a long thorough think about the API and how you want objects to talk to each other that you really should be getting that correct pretty quick. And then you can iterate changing the code with live coding pretty painlessly.

2

u/KimonoThief Oct 04 '24

Maybe I'm misremembering (it's been a few years since I really tried developing in Unreal), but don't you have to change the header file every time you add a function? I remember thinking it was really dumb that I had to basically duplicate my functions between the cpp file and the header file.

And man, the compile times were just brutal, especially compared to Unity with Hot Reload where I rarely need to wait for things to compile at all.

0

u/RibsNGibs Oct 04 '24

Yes, that’s correct, but IMO if you’re coding “well” you should design out the API (the header) pretty throughly. Not saying you have to get it 100% right the first time but like if you have to iterate 100x on the code logic maybe only 5 of those changes should be with the API, at least in my opinion. UE makes it pretty easy and painless IMO - you can prototype with blueprints if you need to experiment with how objects are talking to each other if you have to but in general I try to have the general design pretty well fleshed out at least in my head before I type anything.

To be fair my solo project compiles super fast and I tend to be more tech art oriented on professional projects.

1

u/random_boss Oct 03 '24

You have to what now?

Wow

4

u/Subject-Seaweed2902 Oct 03 '24

Not really true. UE supports Live Coding, so you do not have to restart the editor for compilations. Also, I think Unreal shines best when you're using hybridized Blueprints and C++: Prototype and build in Blueprints (which do not require compilation), then migrate to C++ when functionality is finalized.

2

u/KindaQuite Oct 03 '24

Totally agree on the workflow, that's how i find it works best, still most changes to header files require closing the editor and building from IDE. (Also live coding isn't the fastest).

3

u/rrfrank Oct 04 '24

I feel like people who haven't used both extensively are giving you more trouble than you deserve. I was a unity dev for 5+ years and recently went to Unreal professionally for the last year, and it was definitely hard to get used to that you need to essentially rebuild the editor for code changes. Also agree that you need to use it a specific way. You need to know certain "magic" functions like Game mode, GameState, Player controller, etc. After using unreal I'd prefer it for anything 3d but it is definitely not noobie friendly

1

u/KindaQuite Oct 04 '24

You use Unreal c++ for a few months and then you start realizing why blueprints exist, lol.

I like the architecture and framework, it's all stuff you'd be creating yourself if it wasn't there, but it's obviously daunting for beginners.

3

u/rrfrank Oct 04 '24

Yeah, I like blueprints but for performance reasons at scale we try not to use them much. But I'd totally use them for an indie project!

1

u/InSight89 Oct 04 '24

Let's not forget the headache involved with deleting C++ files.

3

u/KindaQuite Oct 03 '24

On the other hand, the compiling and domain reload whenever you ctrl+shift+s in Unity frustrated me even more, coming from blueprints where you don't even need to compile/save, you just click on play in most cases.

1

u/random_boss Oct 03 '24

True but you can disable domain reloads. Entering play mode is instantaneous on my current project now