I fall into the category of a true beginner who’s been messing around with both engines, so perhaps my experiences may apply. I do have some prior general programming experience from some college courses and my own tinkering, but I’d probably describe my programming skills as “advanced beginner” at best. So far I’ve just been tinkering with both, making some very small projects and seeing how things go. As of yet, I can’t say I’ve really come to a solid decision as to which I want to focus on.
Unity left the better first impression for a true noobie. It’s hard to nail down exactly why, but I think it’s their beginner tutorials. Both engines offer these, but I felt the pacing on the Unity ones were better. The presenter seemed more rehearsed and I felt like I was understanding what was going on more. The UE ones just felt more disjointed to me, I actually ended up trying out a book instead to learn from.
The Unity documentation seems to be way better than UE, which has also been very helpful to me. I like to understand what I’m doing as opposed to just copying code, so I’ll usually stop during a tutorial and research something if I don’t get what it’s doing. A small example that sticks out in my mind, the project I was following was using the “Get World Delta Seconds” blueprint. I wasn’t quite following the purpose of it, but it seemed important. In fact, I remembered a Unity tutorial using “Time.deltaTime” and that had somewhat confused me too, so obviously this must be an important concept, having seen it twice now. The tooltip didn’t help me, so I went to the documentation. Ugh. The documentation is exactly the same as the in engine tooltip: “Returns the frame delta time in seconds adjusted by e.g. time dilation. Target is Gameplay Statics”. I’m sure this means something to a real game dev, but not me. Ultimately, the UE answers section had some user explanations on what it was doing, which was nice, but I’d much rather hear it straight from the source.
I decided I’d check out the Unity API docs for “Time.deltaTime” to see their explanation: “The time in seconds it took to complete the last frame (Read Only). Use this function to make your game frame rate independent. If you add or subtract to a value every frame chances are you should multiply with Time.deltaTime. When you multiply with Time.deltaTime you essentially express: I want to move this object 10 meters per second instead of 10 meters per frame.” Beautiful. I understand that. It even had a code snippet to show a simple use case. And this seems to be the case for most of the things I encounter in each engine. UE has a small, highly technical tooltip I don’t understand which is duplicated in the docs. Unity has a technical explanation, a layman’s term explanation for why you might use the function, and sample code for its use. Because of this, learning in Unity feels more independent. I’m able to do a lot of my own research without having to hope the community has an answer. UE documentation seems to assume you understand game development concepts already and you’re only consulting the manual to figure out how to do something the Unreal way, while the Unity documentation seems more focused on explaining things assuming you know very little.
Another thing Unity really has going for it is the asset store. Both engines have these, but there’s just way more stuff on the Unity store, given it’s been around longer. As somebody who’s just doing this for “funsies” I don’t see myself spending a ton of time on the artsie side and would just rather buy these when necessary.
Going back to the actual engines, I think I like UE better. It feels like it has more built into it. Blueprints are awesome. While I love what the Unity asset store is offering in models, sounds, art, etc…I hate that they seem to be purposely leaving out core engine components so they can be sold on the asset store. I think you’d need to spend $300 on the asset store to get Unity up to the same level of features as UE. I’m not super keen on relying on an additional outside party to keep my game engine fully functional.
So having said all that, I honestly still don’t know which one to focus on just yet. UE feels like a more complete experience that will serve me better as I gain knowledge, but getting that far seems like it will be far more frustrating. The official documentation is lacking and the community made tutorials are far less numerous than Unity ones. The UE doesn’t seem any harder or easier to use than Unity, it just has far less documentation and examples to learn from. It’s like if somebody dropped two equally complicated board games in front of you, but one of them only had half the instruction manual. The game itself isn’t actually harder than the other one, but learning to play it sure will be because there’s not as much information to go on.
Of course, my experiences may not reflect yours!