Taming the Unreal Engine
The prolific game engine boasts a grand set of features, but are they worth overcoming a steep learning curve for?
Among the titans of AAA game development, one tool is notoriously known above the rest; Epic Games’ Unreal Engine. Partly because of the engine’s flagship IP Fortnite, it’s ubiquity within the industry is an enticing offer for big studios and indie teams alike to adopt the behemoth as their engine of choice. But for those of us that are hobbyists, or even just casual teams, how enticing does the offer become? As it turns out, it's still a pretty good deal. Off of the top of my head, here's three great reasons to start learning Unreal Engine:
There is a wealth of knowledge on every feature or tool within the Unreal Engine. While most of it is focused on Unreal Engine 4, most features are exactly the same in Unreal Engine 5. I listened to an hour-long lecture on engine structure only to realize that it was for UE4. Fortunately I found the UE5 version and discovered that it was practically the same content, just looking slightly prettier and with the added features and improvements.
Unreal Engine is moving beyond games. While still being a top tier choice for game development, Unreal Engine is moving into multiple other industries, including film production, architectural visualization, motion graphics, simulation, medical imaging, etc. If you go deep enough into the engine, you aren’t limited to game development.
They don't even want your money (yet). Typically, I’m not one to focus on the economics, but in light of Unity's debacle back in September I feel it needs to be addressed. As of the writing of this article, Unreal Engine has no upfront costs for (almost) anyone. The only cost comes once you release a game that makes more than $1 million; then you owe Epic a 5% royalty on everything after that first million. Recently, Epic Games did announce licensing changes for non-game development uses of the Unreal Engine, but since we're primarily concerned with game dev we'll look past that for now.
However, I can't sit here and tell people to ditch their engine/platform of choice. I'm not a "true" game developer, I just sit here and play with the same tools and techniques as the big kids do. Instead, I'm going to do my best to breakdown an introduction to the Unreal Engine, and the complexities and pitfalls that I've encountered in my first couple of weeks.
Is Learning the Unreal Engine Worth It?
Let's revisit this question and define what I mean by "worth it." For context, I have a background in 3D modeling and animation; so while I am better equipped than the average person to try and navigate a beast like the Unreal Engine, I am by no means accustomed to the intricacies of a game engine. As of now, I'm looking at the Unreal Engine as an extension of my creative abilities, another tool in the toolbox if you will.
Artists will be relieved to learn that the process doesn't change too much if you're looking to established a mixed pipeline. Unreal Engine supports traditional file formats like FBX and Obj (and is even helping pioneer the fledgling USD format), so if you want you can simply export from your DCC of choice and throw it all together in Unreal.
If you're willing to experiment though, then Unreal offers a lot of flexibility.
In it's most advanced (and perhaps most technical) forms, Unreal Engine can be thought of a pot of stew for assets. And I mean that literally. With tools and platforms like Quixel and the Unreal Marketplace, you don't necessarily need to create everything yourself. If you don't feel like animating a specific sequence, or have an older rig with the animations you want, simply retarget the movements from your source to your target with an IK rig. Can't be bothered to spend any time in Substance Painter/Designer? Browse Quixel for the textures you want and literally drag and drop them into your open Unreal project. If you don't want to spend the time to create or learn a new feature, there's a good chance someone else has done it for you. You might have to pay the people who put in the work, and thank Epic for creating a mostly seamless set of tools.
Issues do begin to arise when you start to look at other components of the project. Adapting to Unreal's actor system can be daunting, but once you realize that everything in a scene is either a static mesh (something that doesn't move/change at all) or an actor, things begin to simplify. It's only when you begin to look more into the game dev side of things that your eyes might glaze over once more, but for simple renderings and scene setups we don't need to concern ourselves with it.
But if we are diving into game development...
Then there's a lot we can talk about.
To put it plainly: I am impressed and intimidated by the shear scope of what the Unreal Engine presents. If you take a program like Blender for example, you can usually find one set of features to stick firmly within the bounds of. With Unreal Engine? Not a chance.
The vast array of features that the engine contains is the number one obstacle when anyone tries to approach it. There’s simply so much you can do that it can feel completely overwhelming. Yet, when you look a little closer and begin to figure out how the features link together, there are a handful of similarities you’ll find. Key among them being the infamous Blueprint framework.
Blueprints work as a visual scripting language that can be found all over the engine. Most commonly it’s used to replace a surface level functionality of C++ coding, but you’ll find the nodes and connections in almost every feature from animation, modeling, landscape creation, vfx, and even audio functionality. As it turns out, you can adapt a flow chart style of logic to a lot of different systems. The ability to plop down nodes and eventually figure out the correct way to implement what you want is an extremely powerful tool, one that lowers the barrier for entry tenfold. Even Epic encourages their use, advising that anything you want to iterate on or quickly implement should be achieved with Blueprints.
But it isn’t all sunshine and rainbows with the visual scripting tool.
While some may come to see Blueprints as a completely code-free solution to game development, the reality is often disappointing. It's true that you can accomplish a lot in a relatively short amount of time, iteration is one of Blueprints' strengths. If a feature doesn't execute as expected, then simply disconnect the nodes you suspect and plug in a different solution.
When you go to playtest though, that's when issues inevitably arise. At it's core, Blueprints is a set of preprogrammed nodes that compile down into C++ before then being sent to the computer as actual instructions. Meaning that the more complex you make your Blueprints, the bigger impact on performance you'll run in to. Epic Games admits this themselves, as their advice is to iterate with Blueprints, then implement in C++ code.
And in today's environment of buggy game releases, the more care you put into ensuring a stable experience means the more passive good will you build with players.
Last But Certainly Not Least
If we're going to wet our toes by discussing Blueprints, we might as well touch on the gritty realities of C++. This is also going to be a shorter section since this is the one area that I am no where near confident enough to try and explain. Instead I'm going to bring you right up to where I'm at with my journey in the Unreal Engine.
Apart from three years spent working with Java in a high school programming class, I do not have any programming experience. For those reading that do, whether it's a degree or a hobby, I think I'm pretty safe in saying that learning C++ as (basically) a first language is a tall order.
Yet, for some odd reason I am not intimidated. It's likely a false sense of optimism, but between a propensity for pseudo-code and Blueprints, I think that C++ won't be as daunting as I expected it to. At least I don’t expect it to be too daunting with the way I plan on using it. Right now I’m looking at working in C++ as a two step process:
Design whatever functionality I need in Blueprints (wherever possible).
Bring that functionality down into C++ when I need to optimize or if I’m looking to dabble in C++.
Like I mentioned above, it’s the workflow that Epic themselves push as the way to bridge the gap between designers and programmers. While they tout the interwoven nature that the two can achieve, for a solo dev learning the ropes it’s a wonderful process for understanding what you actually need to code. Although I will mention that this methodology begins to breakdown once you start to look beyond the scope of what Blueprints can be used for, notably networking and replication for multiplayer functionality and incorporating external libraries you might find useful.
Whether I'm right or wrong in my approach, only time will tell, but I think that artists looking at the programming side of game development should adopt a similar attitude. Otherwise climbing the mountain that is learning to code might scare you off before you even begin.
So where do we sit with Unreal Engine 5 after all of that?
Epic has seemingly done the impossible with Unreal Engine, creating layers and workflows for all skill levels, while consistently sitting at the top of the industry without anyone to truly rival it's power and capabilities. Now that they've shifted focus to encapsulate not only video games, but other virtual productions and even into niche use cases, the utility that the Unreal Engine provides is only going to grow.
I’m continuing my experiments and making small games here and there. Eventually I’d like to try and integrate the Unreal Engine into virtual film and animation productions I’m planning for the future, but for now I’m going to be keeping it simple. After all, if you don’t keep your wits about you, it’s easy to lose days, weeks, even months to researching features that you’ll wind up never fully utilizing. It’s a slippery slope that anyone approaching the engine can easily fall into.
That being said, even if you aren't a fan of Epic's ever-expanding presence, or don't see the need to incorporate the premier engine into smaller projects, I believe it's still worth taking a couple of hours to simply explore the wide array of features. You never know what you might find, and who knows what Epic is planning for in the future. Maybe like it was for me, the Unreal Engine might end up being the tool that completes a tool set you never knew you wanted.
Thank you for reading this article from Pulsar! If you want to see more articles like this on a variety of topics from throughout the 3D world, make sure to subscribe to Pulsar and stay tuned for the next post.