Paragon and Unreal Engine: AAA Development that benefits all.

Daniel Rose
GameTextures
Published in
13 min readDec 20, 2017

I’ve never been a fan of Multiplayer Online Battle Arena (MOBA) games. Most MOBA’s feature a visual style that I am not drawn to, are played from a top down perspective, and rely on absurdly fast mouse clicking. When I was living with my friend Vic in 2012, I occasionally would watch him play League of Legends when I’d get back from work at Turbine. His mouse clicks per a minute, nay, a SECOND, were unbelievable. He would get so involved in the match that occasionally he’d look like he was having a seizure.

Because of my reasons above, I never thought MOBA’s were for me. In late 2015, I had the opportunity to sign up for Epic’s new game called Paragon. It was in an early Alpha state and they were looking to test some servers. I didn’t know much about the game at the time, but as a heavy user of Unreal, I wanted to try it out and see what Epic was doing with their new engine.

Paragon Circa 2016

Skipping over the gameplay elements that would take me a VERY long time to understand, I was mildly curious. Paragon didn’t have its claws in me right away. I found the alpha slow and the game hard to grasp, but it had enough fun, even for someone who didn’t understand the genre, to be interested in when I would get another chance to play. The main draw for me, even in an early alpha state, was definitely game’s visuals. Paragon featured a hyper-realistic art style, similar to what you might see in Uncharted or Gears of War. It was an example of the power some of the earlier versions of the Unreal Engine had, and it was enough to keep me engaged. Today, I play Paragon regularly and even keep up with a streamer or two regarding the goings on of the game.

Paragon The Game

Paragon has evolved since I started playing the Alpha in late 2015. It went into Early Access March 18th of 2016 and open Beta in February 4th of 2017. One of the goals Epic has with Paragon is to work on the game while the public can play and be a part of the development process, which is what Early Access is intended for. Unlike a number of Steam games, Paragon was fully functional as a game when it was made widely available to play for free on PC and PS4. Epic has tried to be as transparent with the community as possible regarding changes, and Paragon has gone under numerous changes from its Early Access release to where it is today. A recent “State of the Game” blog post from the team states that Paragon is planned for a worldwide official launch in 2018. From when I started playing in late 2015 to today, there has been a numerous list of changes made to the game. Not all of them are met with universal praise (in fact, the swap from Legacy to Monolith is very controversial to this day) but you can’t argue that Epic is sitting around raking in money while not actively working on the game.

A Sweeping View of the “Legacy” Map
A screenshot of the much smaller “Monolith” Map

· The biggest change was the shift from the Legacy map to the Monolith map that occurred at the end of 2016. Monolith is the current map. You can read more here: https://www.gamespot.com/articles/big-paragon-update-coming-next-month-replaces-the-/1100-6445339/

  • This change also re-worked how damage was calculated and applied. Previously, gameplay focused on dealing as much damage through critical chance as possible. After Monolith was rolled out, damage was reduced and a DPS, or damage per second model was introduced. Critical chance was significantly lessened and in place of pure damage, it became about damage over time through status effects or attack speed.

· The card system first underwent a small change, then it was completely overhauled in 2017. It’s now unrecognizable from what I first played.

· Hero move speed has always been a challenge and is tweaked constantly.

· Monolith’s Jungle has been reworked at least twice to improve player engagement. This is one of the sticking points that has not been addressed overly well since Legacy’s harvesters were removed.

· The way lanes work have been tweaked numerous times since launch. Initially you have a 1v1 lane, a mid lane, and a carry and support lane. It was eventually shifted to two 2v1 lanes and the mid lane with Monolith, and now it’s back to a 1v1 lane, a mid lane, and a carry and support lane.

· Letting players play any character in any lane as any role (support, carry, tank) vs. keeping certain characters locked to specific lanes and roles.

· Numerous store and monetization updates

Epic likes to say that Paragon is the truest form of a Beta and I agree. In fact, I would argue that the game only recently went “true Beta” after the large Card System overhaul. Paragon has been a moving target of a game since I started playing and it’s been fascinating (and frustrating at times) to see and be a part of.

To Give a better idea of the evolution of Paragon, I’ve included two videos from my favorite streamer, RGSACE.

Early Alpha gameplay from an event in London
A guide on how the old jungle worked before Monolith
The current version of Paragon. It’s winter-fest, so the map is all snowy!

The one thing that hasn’t changed about Paragon since I’ve been playing it is the visual quality of the game and the technology powering it.

Legacy had grander structures…
…and a gorgeous jungle.
Monolith is smaller in scale…
…but it plays faster and has a lightly more stylized look to it. Both are phenomenally sexy.

A Showcase for Epic and Unreal

Paragon has slowly become the test bed and full on development platform for many of the more recent improvements to the Unreal Engine as they relate to games. Part of this is because of the performance targets the team are striving for; 60fps on a base PS4. They are NOT hitting 1080p, instead the base PS4 runs at 900p. Regardless, you can tell that a lot of optimization work that went into the engine for games has come out of Paragon. According to a 2016 GDC talk (which goes into this in significantly greater detail) more than a dozen CPU performance and threading enhancements were rolled into Unreal 4.11 as a direct result of work done on Paragon.

Starting with the release notes of Unreal 4.11, you can start to see screenshots of Paragon present when new features that get added to the public version of the engine are showed and explained. Prior to this, a lot of development was driven by Fortnite and Epic’s smaller games, like the Showdown VR demo that would evolve to become Robo Recall. A number of mobile rendering and open world features were incorporated as well. Unreal 4.11 dives right into Paragon inspired changes with features the game drove. I would almost go so far as to say that Unreal 4.11 is the Paragon Release.

The following major features were released in Unreal 4.11. I’ve included descriptions of how they are used in Paragon as well:

· Performance and Multithreading Enhancements: Because of the previously mentioned performance targets on Base PS4, Epic needed to make a lot of optimizations to the entire engine. There were far too many to cover, so I suggest taking a look at both the release notes for 4.11 as well as the GDC 2016 Talk about building Paragon for PS4 and PC.

Paragon features dominate this highlight with Hair, Eyes, skin, and cloth shading just to name a few

· Realistic Shading for Hair, Skin, Eyes, and Cloth: Although Unreal Engine could do physically based shading out of the box, hair especially was illusive for the team. If you watch the Tech and Techniques for Building Heroes video (above), two members of the Paragon team will admit that Epic did all they could to avoid showcasing hair in their engine videos. That changed with 4.11. Regarding the cloth shading, Epic referenced one of our favorite technical showpiece games on the current generation of hardware, The Order: 1886 by Ready at Dawn, for the inspiration on how to accurately create a cloth shading model.

· Significant Updates to HLOD: HLOD, or Hierarchical Level of Detail, was introduced in Unreal 4.8. It automatically creates LOD’s for mesh groups which will reduce triangle counts AND draw calls by merging and baking down materials in the engine. A similar system with different implementation was used by Naughty Dog on Uncharted: A Thief’s End. Paragon makes heavy usage of HLOD to hit its performance targets. In the Unreal 4.11 documentation, Epic states that the Legacy Map (then called Agora) had a 35% drop in triangles and a 19% drop in draw calls.

· Anim Dynamics and other Animation Improvements: Paragon can have upwards of 130 animated skeletal meshes on screen at once. This many animations can cause a pretty heavy slowdown. Part of the direction of Paragon included ‘flappy bits’ or dangling hair or chains off of characters. To help with this, Anim Dynamics was created, which allows for significantly cheaper flappy bits than a full on physics simulation.

Capsule Shadows used to ground characters where there is no indirect lighting (Image used from Epic Games)

· Capsule Shadows: Paragon uses baked lighting in most areas of the game. In order to have better contact shadow casting in areas that are mostly lit by indirect baked lighting while maintaining performance, the use of capsule approximations of skeletal meshes to cast soft shadows is used. The usage reasons are very similar to how Sony Bend tried using SSAO in Golden Abyss in 2011, but the implementation works significantly better. I mean, the PS4 is an order of magnitude more powerful than the PSVita.

Sequencer was released in 4.12, and in 4.13 Paragon was again used as a showcase of how you can use Sequencer, Unreal Engine’s Cinematic Tool, to capture live gameplay. Unreal is currently up to version 4.18, and Paragon being used as an example for many new features are all over the place.

Contact vs No Contact Shadows (Image belongs to Epic Games)

· Contact Shadows (4.14): Subtle feature that helps fill in missing shadows on dynamically lit areas

· Cooking Blueprints to C++ (4.15): The Paragon team (watch the GDC 2016 talk) had been cooking Blueprints to C++ prior to the release 4.15, as Paragon needed every ounce of performance improvements that Epic could find. Part of the reason that Unreal 4 had a reputation for being performance intensive is because of the Virtual Machine needed to run Blueprints as C++ code. By cooking Blueprints to C++, at least some of that overhead in a cooked game will be reduced.

Mist covers the ground in the jungle now thanks to Volumetric Fog

· Volumetric Light Maps (4.18): This replaces the Indirect Lighting Cache with a more efficient and higher quality method of sampling precomputed lighting in a given space. The benefit is that anything that’s dynamic has a better lighting result.

This is where the “Orb Prime” spawns. This location is showcased in their Unreal Documentation for Volumetric Fog.

· Volumetric Fog (4.16) and Precomputed lighting on Volumetric Fog (4.18): Volumetric fog adds so much to the atmosphere of a scene. The Volumetric Light Map feature from 4.18 ties into baking precomputed lights on fog.

As a player, I can spot most these features being used as well. When I play, in addition to focusing on winning the match, I can also focus on how Epic uses these features in the game and how I can use these features in my own ways.

Iteration Time

During the Unreal Dev Days this year, one of the presentations done by Epic was on the Character Workflow in Paragon, specifically the material workflow. The entire video is excellent and packed full of useful information. Because Paragon is a free to play MOBA, the primary way Epic makes its money is by selling skins, emotes, banners, and other non-gameplay affecting items. Each character needs to be set up in a way that skins can be generated relatively quickly. Additionally, prior to November of 2017, characters were released every three weeks. In order to meet the quality bar Epic is known for in the time frame required by their schedule, the developers needed to focus on working smart. This led to the team using a shared Material Library that lives in the engine, a centralized ‘master file’ where all external inputs (models, externally created masks, baked maps, and so on) are stored and easily edited and exported, and a workflow that allowed for maximum flexibility.

Enter the world of Material Libraries and Substance Painter.

Material Libraries

Paragon uses a calibrated Material Library of over 400 materials to define to look of both characters and most environmental assets in the game. These materials are simple tiling material functions that are color neutral; they have a set of inputs that can be tweaked for each new usage. Each material has tint, scratch, grime, and tiling inputs; and additional inputs like Fresnel intensity and opacity might be options as well depending on the material in question.

Why are materials set up in this way?

This setup has a number of advantages that work specifically for Paragon. First, this setup allows for a lot of flexibility when creating characters. Let’s assume we have two characters who have nylon scarves. When not using a library, the scarves in question would need completely separate texture map sets. This could end up causing variation in how the nylon looks if it’s done by two different artists. That inconsistency might be a big problem down the road. With this setup, Nylon is already defined with a set of variables that are locked. All the artists can do is change the tint of the nylon their character is wearing and adjust how much tiling is being done. Everything else remains consistent. In the context of this example, we also save on texture memory by significantly reducing the number of textures required!

The consistency question also extends beyond the visuals of the art. Paragon has a budget of 350 shader instructions per a character. If each character is using 3 different versions of nylon shaders, each made in slightly different ways by 3 different artists, you end up with an unpredictable shader instruction count. Killari’s nylon might be 34 instructions, Sparrow’s might be 42, and Gideon might have 64 instructions. If another artist reuses various versions of these nylon shaders all throughout the game, it’s going to be VERY ANNOYING to optimize shader instructions. Consistency and predictability is key.

Sound familiar?

While the setup and execution is different, the theory behind the large material library with no or limited inputs mirrors some of what Ready at Dawn did with The Order: 1886. Bluepoint also used a similar approach on the upcoming Shadow of The Colossus remake.

Substance Painter

Characters in Paragon use masking sets to define material placement and the variation in those materials. Characters use two sets, a Scratch and Grime Mask (Scratch in the Red Channel, Grime in Green, and a Flex slot for character specific needs in Blue) and a Material ID mask that defines the breakout for material function usage in the engine.

A flattened version of a Scratch/Grime Mask Map
A breakout of what is in each channel from the Scratch/Grime Map. AO is my example of what the Flex Slot can be used for.
An example of a simple Material ID map. Each color corresponds with a specific material that the artist will choose.

Substance Painter serves as the ‘master file’ where the masks, patterns, and baked textures are stored. Artists are free to use whatever program they are most comfortable with to create their masks and patterns as they all end up in Painter anyway. Once in Painter, a single simple material with a flat color is assigned per a final material that will be on the character at the end of the process. Epic’s use of Substance Painter differs from what a lot of artists and studios, myself included, use it for. Epic’s material library all lives inside of Unreal Engine, so it’s pointless for them to spend any time tweaking the look of the materials in Painter. In general, flat colors are enough to get an idea of what the final character is going to look like.

I’m about to get owned by an AI…

When I work in Painter, I’m typically working on a model that has all of its material information baked to its final texture maps. That is what is send to the engine or my client. I may use the Painter material library or I may use my library of Gametextures materials, but I’m using a library that is external of whatever game engine is being used. This has the benefit of flexibility when I will be using different engines or different rendering setups. Epic’s Paragon workflow works perfectly when you have a set tool with calibrated materials already set up for use within that tool.

An example of my normal Painter Workflow. If you see the “Yellow”, I’m painting down materials from the “Purple” area which is my library. In addition, the UV layout and final result in “Blue” is optimized for non tiling 0–1 UVs. This is more traditional and lets me move my work easily between engines, but it lacks flexibility of changing quickly once it’s imported.

Once everything is set up properly on the character, every layer that is on the character is assigned to a user channel. This lets the artist set up an export preset and assign their user channels to a channel in a texture and send that information directly to the engine. Once in the engine, artists use those packed textures from Painter in conjunction with the large material library in the engine to create the final look for a character.

I cannot stress watching the video above enough. It’s packed full with information and examples that really showcase how Epic go about making materials in Paragon.

It’s going to be EPIC

Epic’s catch phrase is one way to describe Paragon and the impact it’s had on the Unreal Engine and the countless developers, like myself, who use it. As a game, Paragon has gone through and will continue to go through growing pains as it matures into a fully-fledged release product. The game constantly receives balance tweaks, bug fixes, and even relatively large re-works as it grows. As a technical showpiece and driver of new features, Paragon has been a critical part of the growth of Unreal Engine. The addition of new features, performance improvements, and other quality of life enhancements means that Paragon’s impact on the engine will be felt until Epic eventually releases the next generation of The Unreal Engine.

References, most of these videos are embedded above.

--

--