Game development always presents unique technical challenges. Bringing a new interactive experience to life often means building new tools and features that not only push the boundaries of what Unreal can do in real-time, but often with strict hardware constraints. This is especially true for indie studios, which, in addition to building these solutions, also have to deal with the realities of smaller budgets and team sizes.
To help pass on their learnings to our community during Indies Week 2021, we asked developers from Europe and Latin America to share some of their experiences solving unique technical challenges they faced with their most recent titles.
ACE Team
ACE Team was founded by three brothers: Andrés, Carlos, and Edmundo Bordeu. They live in Santiago de Chile and, over the past decade, have become one of the most recognized game studios in Latin America. ACE Team is internationally acclaimed for its unique titles, which have achieved several industry awards around the world. Its games include the Rock of Ages series, The Deadly Tower of Monsters, and more.
Carlos and Andrés shared some of the technical innovations behind Eternal Cylinder, their upcoming open-world survival game that features a unique twist: players must always be on the move, trying to outrace the aforementioned giant cylinder crushing everything in its path.
To bring their vision to life, their team had to figure out a way to construct an endless, procedurally-generated open world that feels varied and unique on each playthrough. They then had to populate it with numerous destructible objects for the cylinder to crush.
To solve the first problem, they broke down the game world into smaller modules, which get loaded in and out as the player and cylinder advance. They ended up building a unique system based on World Origin Shifting, a UE4 feature that allows you to displace normally fixed actors by an arbitrary positional offset while otherwise retaining their behavior.
The second challenge they faced was to provide enough variety in the way objects get crushed by the cylinder while staying within the framerate budget.
Andrés tells us this needed a different approach for each object type; rocks tend to break down and crumble, while trees and other organic elements bend, fall down, and get flattened. For the first case, they relied on a combination of dynamic simulations using the APEX Destruction system (Chaos wasn’t available at the time) and baked-in crumble animations imported from an external animation software.
To increase simulation performance, they had to find a way to compress the per-vertex simulation data efficiently. This turned out to be encoding the animation data into a large texture and exporting it directly from 3DS Max. It’s fast enough at runtime but comes at the expense of increased memory usage.
For trees and similar objects, they instead went for a skeletal-mesh approach, synchronizing the crushed animation’s playback speed to the cylinder’s rate of movement, and blending between up to four directional animations to produce the end result. Because of these techniques, Eternal Cylinder tends to be more CPU than GPU bound, which is a bit unusual for contemporary games.
Critical Failure Studio is a Chilean team currently working on Lost Forest, a 2D platforming game. Players must use their wits and world-shifting abilities to evade dark creatures and recover the memories lost to an ancient curse. The game employs an Art Nouveau visual style and uses HD illustrations, a watercolor palette, and detailed animations to bring its world to life.
Due to its detailed 2D art style, the developers built PaperZD, a custom plugin that adapts many of Unreal’s 3D Animation tools and workflows to 2D sprite-based animation. PaperZD is currently available through the Unreal Marketplace and is being used by multiple games, including The Siege and the Sandfox and Backbone.
Image courtesy of Critical Failure Studio
In addition, they identified multiple sprite-rendering optimization issues that complicated porting to less powerful platforms, especially mobile. Their solutions were eventually merged into the main engine code within Unreal Engine 4.25 and can lead up to 10x faster sprite rendering in certain scenes.
Critical Failure Studio also built a separate node-based pathfinding system, called CFNav, which provides AI navigation for 2D platforming and even flying agents.
Finally, they extended Behavior Tree functionality with custom action nodes, which enabled them to craft more complex AI behaviors that account for previously executed actions to avoid repeating or exploitable patterns.
By investing time to build these custom plugins, Critical Failure Studios not only empowered their small team to build a polished game with minimal resources, but also created an entirely new revenue stream by offering these tools to other developers through the Unreal Engine Marketplace.
KeokeN Interactive
KeokeN Interactive is a young game development studio from the Netherlands, founded by brothers Koen and Paul Deetman. The team put their technical expertise to the test in crafting a satisfyingly tense spacewalk sequence (see GIF below) in their sci-fi title Deliver Us The Moon, relying on existing engine functionality to both contribute to the scene’s level of engagement while ensuring smooth performance.
Image courtesy of KeokeN Interactive
Level Designer Kevin van Schajik and Lead Programmer Remco Dazelaar explained how, by starting simple and layering features and tension elements one at a time, they managed to tackle one of their most ambitious and technically demanding scenes to date, where a sequence hurls players out of the relative safety of the Pearson Space Station into the cold darkness of space.
They began by establishing the player’s trajectory as they’re ejected from the space station, using splines to tweak their path. Once mapped, artists could add debris and other elements and drive them through physics forces while ensuring their trajectories mapped the player with minimal effort.
Image courtesy of KeokeN Interactive
The camera played a major role in conveying the confusion and terror players would experience, but its spinning also meant that large chunks of the level would come in and out of frame, causing performance drops. To solve this, they relied on level streaming functionality to seamlessly unload the unnecessarily complex elements and replaced them with lighter counterparts during the sequence.
The trajectory spline also proved narratively useful to urge players to get back to safety by providing a convenient percentage measure of player progress which could then be used to drive other elements of the experience dynamically, such as music intensity. By blending between multiple parallel music tracks based on player progress and oxygen level, the team managed to keep players at the edge of their seats regardless of their skill level.
If you’re seeking more hands-on help, make sure to reach out to our growing team of global evangelists who are eager to help. Find the evangelist closest to you now!
Get Unreal Engine today!
Get the world’s most open and advanced creation tool.
With every feature and full source code access included, Unreal Engine comes fully loaded out of the box.