Developer Diary #1

Modular Level Kit and Smart Asset Library in Unreal Engine (Part 1 of 2)
Every artist uses a set of tools to express their vision to the world. Engineers can design and build tools for any purpose. Seems like a match made in heaven, but the reality of making games is such that there is often a large disconnect between those parties, that’s where the Tech Artist comes in, to bridge the gap between engineering and art.
When we set off on our journey to make Every Day We Fight, one thing was clear: we needed to make large environments that offered tactically interesting gameplay. For our game, that meant a mix of exterior and interior environments that weren’t limited to a grid system. The nature of the game is such that sight lines are everything and this posed a number of challenges when considering how to make levels which had the geometry we desired and the gameplay data the game needs for its various systems.
One of the main benefits of Unreal Engine is how it enables small teams to deliver big experiences. Our solution leverages the functionality enabled in Blueprints to make Smart Assets, Unreal Engine Actors made entirely in Blueprint with a set of Child Actor Components containing required gameplay data. By doing so we can create a modular level kit which can be used by our level designers. This makes the transition from level blocking, to gameplay ready, to art much more seamless.
[h2]Case Study: Cover[/h2]
In Every Day We Fight, cover is a crucial gameplay system. Since we are making a turn-based tactics game with physically accurate bullet behaviour, the characters must be able to take the correct position when in full or half cover. They then must lean out of cover to take a shot. The class default data contains the settings used by the animation system to step out and/or lean out and aim at their target, but this can be edited on a per instance basis to allow for a flexible level design. This is also the case for other data types like navigation links. Configuring which covers can be vaulted over and setting the data representing where characters take off, land, and place their hands, is all easily editable by level designers.
Smart Assets are powerful, but it’s not just about having an easy way to package and access data between actors and systems. It also allows for the validation so that when level designers edit their work, they can be safe in knowing they won’t allow a player to vault through a wall or some other bug caused by faulty data. Data Visualizations can be rendered in real time as the assets are being moved in the world so designers can be safe in knowing they aren’t breaking gameplay.

[h2]Case Study: Wall Modules[/h2]
By building Smart Assets using the Entity - Component design pattern, functionality can be added to new asset types by simply adding a component to an Actor. Furthermore, they can easily be expanded upon by technical designers/artists in Blueprint using the Event Graph to have additional functionality. For example a cover component can be expanded to be applied to a wall module. This is the first step in having a smart level kit library, enabling level designers to quickly create buildings with functional gameplay. Now our door frame can be expanded into a door which requires a key to open.

The beauty of developing in Unreal Engine is how it enables small teams to build big things. We have shown how by writing very few lines of C++, we can build the foundation for our level kit library. In Part 2 we will be expanding upon these concepts to show how we can create simple but powerful layout tools to increase iteration time when building urban spaces.
