First of all, let me start by saying I’m a complete amateur when it comes to game development. I’ve been in IT my whole life as an application/BI developer for 20 odd years, so I no longer have any real delusions of grandeur about churning out my own AAA game. But still… I would like to prototype my ‘grand idea’ enough to get momentum with other amateurs to build something cool. And I know there are many others out there that want to do the same thing - just because now it’s possible.
Basically I want to fly fleets of Star Destroyers, Venators etc and pewpew the ■■■■ out of other fleets (as in actually fly the capital ships) in what equates to a large 4x sandbox Star Wars universe. The closest I’ve come to this is ultra crappy X-Rebirth or semi-crappy EVE which got really boring after 5 years. For some reason, in 2018, I still can’t build and fly capital ships in real fleet engagements in my one-and-only-ultra-favorite-best-all-time-genre STAR WARS!!!
So I’ve played around with Unity and have been able to prototype all the functionality I need. Granted it currently looks like complete ■■■■ but I’m no artist. There are also a huge number of things I’m either waiting for jobs system drool or will have to pay for - which I’m ok with. I’d prefer it all be integrated but at least it doesn’t keep me from making progress.
And obviously Unreal Engine 4 has been used to produce stuff that’s truly awesome. I came here because it has a lot of positives in its favor. But after the following experience it won’t be by me.
1.) I’m initially impressed by the overall professional appearance of the launcher and editor. Unity seems old and clunky like Blender or Informatica. So pluses. ++
2.) So as I’m trying to resolve issues, it initially takes me FOREVER to bring up the documentation. But the forums come up instantly. But the actual question/answer section didn’t come at all with a ‘cannot connect to service’. So one minus. -
3.) What really gets me is the folder structure and ability to reorganize as you get deeper into the project. Unity can do this with absolutely no problem. Unreal has a LOT of forum posts on how incredibly painful this is and resolving the missing folder references meh… What this means to me is that all the real underlying work being done under this great facade is very fragile and prone to breaking. As a developer this scares the bejezus out of me. Being able to refactor large projects is absolutely crucial for anything beyond hello world. So pretty daunting minuses. —
4.) I know everyone will disagree with this, but the asset store/marketplace for Unreal compared to Unity is a negative. Unity’s lack of integration for key components has caused the user base to come up with some incredibly helpful and performant tools. And I can see a path to completion with Unity because all the extras I need are on the store. And for the most part, I only have to pay about $2-300 to really get what I need - although I want more. I spend more than that on lunches in a month and maybe sometimes in a week. I can’t find equivalents in UE4 which scares me. So minuses. —
5.) C++ vs C#. I will call this one a draw because ultimately C++ should perform better in the hands of a proficient developer. But many developers are not proficient which is what led to Java/C# in the first place. Either way, my main game structures are all in C# and that’s a lot to convert to C++. Unreal gets marks for using the right language for performance. Unity gets marks for using the easy one I can actually get stuff done with. If all other things were equal I would convert everything to C++.
Note: Ironically, Unity’s jobs system is reverting C# back to C++ concepts in a number of ways. They use struct based custom-built collections with no garbage collection to get threads to perform infinitely better essentially undoing several of the key things that made C# what it is. LOL What a topsy-turvy world we live in.
6.) Blueprints. Again - probably should be a draw, but for me, a negative. I just have an easier time getting basic things to work with relatively small snippets of C# code in Unity. I love the blueprint concept but you have to know what all the underlying things are to start connecting things and make them really work. And there are A LOT of underlying mysterious not-easily-understood things. The problem with putting a methodology on a code base is you still have to understand the underlying code base to effectively use the methodology.
If I could take the best parts of both, I’d be a happy boy. I’m glad they’re competing though. They keep each other honest.