A member of the Video Game Development Club group on Facebook made the following post a few days ago:
“Okay so can someone help me understand what are the major differences between UDK, Unreal Engine, and Unity? And also which one is the best?”
I do my best to share my experiences to our club members and was in the process of responding when I started noticing that Facebook not appear to allow paragraphs in the comments. Since this question is also one that is asked by many newer aspiring developers I decided to post my response here where I can direct people to it.
Here’s it is:
First thing first; there is no such thing as a definitively “best” game engine. The best engine for any particular game is the engine which best simplifies and accelerates it’s development. The goal of being a games developer is to have an idea and turn it into a polished and playable game that people want to play. To do that we use these engines as “tools” to greatly simplify what is otherwise a highly technical and exceptionally time consuming process. Thus, any engine that can simplify and accelerate your game’s development is beneficial, and the engine that simplifies and accelerates the process the most could be considered the “best” engine for that game.
Ultimately this means that the best engine for a game is one that was written specifically for that game, and this is actually what people have done for years. Recently however, years of video game creation tools have been shared with a larger audience of developers. These tools — while probably not the best engine for your specific game — have been made over years to be able to create different types of games, and now they’re readily available to yourself (the aspiring developer.)
So here’s the rundown of two of the most commonly used development tools to answer the question posed above:
Unity 5 v. Unreal Engine 4 v. UDK
UDK is good, it was a widely available, slightly restrictive version of Epic Game’s Unreal Engine 3, but is no longer officially supported by Epic Games. UE4 is built off of a similar (if not the same) engine core as the UDK, so I would recommend using UE4 over UDK for a variety of different factors including features, support and licensing.
With that said, UE4 v. Unity is a totally different debate — if we’re going to compare the two we need to ensure we treat each fairly, which means comparing value and use, not just overall features.
UE4 is completely free for any project. If a finished product is created in UE4 and receives a gross income of $3,000.00 in a financial quarter, a royalty of 5% of a product’s gross income must be paid to Epic Games. (UE4 EULA)
Unity 5 is subscription based and comes in two flavors, the free personal and the $75/month professional version. While both of these versions have all of the Unity’s core functionality, a good host of additional features are only included in the paid professional version. So long as you are using a valid license, anything you create in Unity is your own (excluding the underlying Unity source) and no royalties are owed to the engine developer. (Get Unity)(Unity FAQ)
For the aspiring developer, I will assume that what you’re wanting to do is hone skills and make projects — maybe even publish small ones for some spare cash. For this I’ll assume that you have an upfront budget of close to nothing. Going off of this assumption we will compare the highlights of the Unity 5 Personal Edition with the offerings of Unreal Engine 4.
Keep in mind that both engines are multiplatform (though Unity does present more in the way of build platform offerings) and use a mix of Direct3D and OpenGL for their graphics rendering. Also note that there is plenty of regularly updated documentation and there are many communities and support groups for both engines.
Unity 5 Personal Edition (5.0.0.1)
Unity has a specific workflow that can allow you to create many different types of games fast; developers create a series of GameObjects to populate a scene and then attach Components to them that perform certain functionality. Inside Unity you will find a large selection of components that can be used out of the box to perform common game functionality. In addition to the premade components, you can also write scripts — MonoBehavior Components– to attach to your GameObjects. Unfortunately, Unity Developers are not given access to the source (without a special licensing deal) and are limited to writing scripted components and scripted objects, which can be a bit restricting for a more experienced games programmer. Unity Version Control integration is only available to Professional Edition Users, which means the Personal Edition has no Integrated Version Control, though you can still use version control externally.
Unity is quick to pickup and create with and in my opinion is an excellent tool for beginners who are learning the basics of subjects such as Object Hierarchies, Event Driven OOP and 3D scene manipulation. That’s not to say you can’t do amazing things with Unity, or even that it’s difficult to do so. Several independent game developers (including some of the old Rare folks that are now at PlaytonicGames) have used Unity to create great games and experiences, there are simply less options (in terms of the Personal Edition) and less extensive tools when compared to something like Unreal Engine 4.
Unreal Engine 4 (4.7.6)
Unreal Engine 4 is a AAA professional grade toolkit for creating games. There is a wide array of different tools all crammed into the Unreal Engine toolbox and the sheer volume of functionality can be incredibly intimidating for new developers. Blueprint visual scripting provides designers, artists and animators with minimal programming experience to script and modify gameplay behavior as well as define their own custom (but slightly limited) classes right inside the Unreal Editor. Code development in Visual Studio is one of only two required Integrated Development Environments (the other being Apple XCode) supported by Unreal Engine 4. Despite this slight drawback, the Engine can work with the Unreal Build Tool to turn raw C++ core classes into game classes that can be recognized and modified by the Unreal Editor. In addition to writing classes, Unreal Engine 4 has added the capability to use Blueprint Components with other Blueprint Classes to allow developers to take a similar approach to the Unity 5 workflow outlined above. Unlike Unity’s Personal Edition Unreal Engine 4 supports Integrated Version Control with support for Perforce, SVN and Git Fusion (Git through Perforce.)
While both engines can accept a slew of different import file types, Unreal Engine 4 sticks to the tried and true FBX pipeline that it has used in its previous iterations, this means that UE4 prefers all 3D assets to be imported in Autodesk’s .fbx format, though there are a few other 3D formats available.
Unreal Engine 4 is a very powerful toolset, but that comes at the cost of having a moderate learning curve for newcomers. With so many tools and features it will tend to take a little while for new users to get onboard, but with very good documentation and a thriving community of veteran Unreal Engine developers and developers switching from thier old go-to tools Unreal Engine 4 is definitely worth taking a look at, especially for those looking to get involved in AAA or larger scale/ high fidelity independent development.
My $0.02
I really appreciate the fact that so many great game making tools are available for aspiring developers to use to make their own games. Ultimately these tools are tailored to designers; however, this should not mean that developers should stop improving their knowledge of how video games work. While video games are art, they are also software, and like any software development, success of a video game project depends on those who understand how the software works.
For those who lack knowledge for manipulating source code, the potential for creating cookie-cutter games increases. As a result of this, there is an ever increasing need for game tool developers with the skill and passion to keep anything possible within the world of game development. If you have any sliver of technical aptitude I would advise you to always dig deeper when learning — it will give you helpful insight into the foundation of your normal work.
If anything in this article is inaccurate or incomplete, please feel free to message me with a reliable source and I’ll fix it right away. This is mostly an opinion piece based on my own experience and I do not officially endorse Unreal Engine, Unity or either of thier respective companies.