Hi! I’m Nick Varchavsky, co-founder and lead developer at Indelve Studios. Though we are currently working on a tight schedule on Initiative, a huge MMORTS game made with Unity, lately I’ve been wanting take the Unreal Engine for a spin.
I have very little time but I want to share my experience as I learn this engine.
Keep in mind I’m a seasoned Unity developer, so I’ll make often remarks about how something is done in Unity and how it’s done in Unreal.
I’ll start with the why. If I’ve been working with Unity successfully for so many years, why am I looking for a change?
The answer is part personal and part technical:
- A true game engine: Epic Games use the Unreal Engine to actually create games, whereas the Unity team only makes Unity (and demos). This is a paramount advantage as is very likely the game engine team and the game development team work head to head to create a tool with real practical use in the industry.
- Unity is full of quirks that need to be worked around or through plugins, even for the most basic stuff. Now, I don’t know that much of Unreal at this point and I’m sure it has quirks of its own. Unity’s are starting to get on my nerves, such as inability to nest prefabs, issues with UI text, and many, many more.
- C++ vs C#: I really like C#, but I’m an old school dev and I believe C++ is superior in performance and I just love it (in what language you think most of C#’s CLR code and Unity is written on?
- Source code: This is major. Unreal comes with the full source for you to compile it. In Unity, you have to buy its license to get it. Now, having the source code may seem unnecessary for most game developers, and most likely it is, but when you want to go pro on game development, you simply can’t wait for the company (Unity or Epic Games) to do a hot-fix for you alone. You submit a bug and go through the process. Having the source code allows you to quickly delve into it, fix or change whatever you want, and keep your production and schedule flowing.
- Blueprints: Though I’m a programmer and I love code, just a quick look at blueprints allow you very quickly mock up a lot of a game’s behavior without coding. This is not only great for me, but also when you start assembling a team, having the ability to work with blueprints takes the edge of the learning curve of the C++ language on top of learning the Unreal Engine specifics.
- Modeling and mocking levels: Unreal allows you to quickly mock up levels using booleans and editing primitives on the fly. I’m a Maya hobbyist but having the ability to mock a level straight in the editor is a great advantage
- Source control: Unreal has source control embedded into its engine, it comes naturally. In Unity you need to do a few things and setup everything outside of it to work correctly with Perforce or Git (I wrote an article about using Git with Unity in case you are interested).
- AAA Tool: Unreal is a true AAA tool with years of experience and AAA titles out there. Granted, Unity is picking up the pace, but it’s still not the tool of choice for most AAA development companies that don’t build their own engine. You get the experience of using what they use on the big leagues.
I’m not saying one is better than the other. I’ve been using Unity for years and success, but these are the things that drove me to test drive the engine and, if possible, to use it for our next game, whatever that may be 🙂
Ok, enough said. Follow me on twitter @NickVarcha to stay tuned for the first article about my experience with Unreal.