Dreamscaper, a roguelite ARPG planned for release on August 14, shows the difference a versatile engine like Unreal 4 can make for a small team wanting to craft a game with complex and innovative mechanics.
Afterburner Studios consists only of three people: engineer Robert Taylor, artist Paul Svobada, and designer Ian Cofino. Founded in 2018, the company had in mind a melding of ARPG combat with the "endless replayability" of a roguelite, and they envisioned this concoction taking place in the protagonist's unconscious.
Yes, this game is about dreams – but also about waking life. You play as Cassidy, who battles her way through dreams and nightmares, these being manifestations of the troubles she encounters in her waking life, which you'll also have to navigate in the real world when she wakes up. What you achieve in the dream world can affect your waking mood, and what you achieve in the waking world can give you different dream powers.
One level of complexity arises from this interplay between the waking and dream worlds. But there's complexity to the combat mechanics, too, not to mention the fact that procedurally generated roguelike worlds present their own technical obstacles. And to overcome these obstacles, UE4 was the clear choice for the team.
"Ultimately, we knew choosing UE4 was critical to our success," says Robert, "because it would allow us, a three-person team, to hit a quality bar that was previously reserved for large teams." The studio was already familiar and comfortable with UE4, but familiarity isn't all that guided the decision – specific Unreal tools would come in useful, they knew.
The procedural generation of a roguelite, a "core technical pillar of Dreamscaper's development", when combined with "a very large variety of different environments, characters, and items with full 3D assets", made for technical challenges in the form of memory management and load times.
But UE4 has "several incredible solutions to these challenges", two of which are "soft class/object references" and "asynchronous level streaming". Leveraging the former allows the game to "exclusively load only the subset of assets a player is going to encounter". To procedurally generate a world, an algorithm scans and queries data tables to "define how the Dreamscape instance will be populated".
For those budding programmers out there, you can think of soft class referencing as a means of pointing to a class, rather than a specific instance of that class, which allows you to load only those classes that are needed at any given moment – great for memory management in procedurally generated game worlds.
The latter Unreal tool, asynchronous level streaming, can "load levels in the background, but with the added complexity of handling the many various states a sublevel can be in, as well as handling the complexity of streaming a bunch of actors in and out of the scene. All of our seamless transitions (dream fall, portal transitions between rooms) are possible thanks to a combination of these powerful features."
Another layer of complexity is found in the game's combat. Dreamscaper takes an innovative approach to combat, wherein reaction and timing is crucial, but the abilities themselves are also highly varied and can involve element-bending (such as hurling air and bringing ice up from the ground to freeze your enemies). By using Unreal's animation montages and sequencer, attack animation sequences could be made "with layered VFX, audio, hitboxes, and even camera movements if necessary". Distinct and aggregate attack subclasses can also be instanced with custom parameters to allow mixing and matching for a "virtually unlimited variety of attacks".
"For more elaborate attacks and abilities", Robert tells us, "we introduced a unique notification that spawns level sequences, which are essentially self-contained scenes with their own animated timeline. We've extended native level sequences into a system called 'attack sequences' where the sequence gets handed off an attack payload from the original attack. The payload contains all of the information needed to resolve hits."
Is it all worth it? Do we need such complex and varied combat mechanics? The folks at Afterburner Studios think so. "With a traditional ARPG," they say, "the experience can be more varied and unique throughout, as the linear progression a player makes is predictable. With Dreamscaper, players must repeat these dreamscapes over and over, mastering their own skills and conquering Cassidy's nightmares. So from a mechanical and format perspective, retaining core gameplay, while somewhat fictionally incongruous, will allow for a much better player experience."
Perhaps what's more important than using these UE4 tools for tackling combat, however, is that many of these workflow tools found in UE4 allowed the small team to produce something of a quality that was "previously reserved for large teams".
A big reason why this quality is possible is thanks to the ability that UE4 affords the team to allow for more independent and autonomous work from each member. For instance, the animation montage system and level sequencer previously mentioned allowed the designer, Ian, to work independently: "By spawning level sequences via character animations, Ian was able to take ideas much further, and very often to completion, without engineering assistance."
So this distinctive blend of ARPG with roguelike elements and mechanics in Dreamscaper, and the split between waking and dreaming worlds, is made that much easier to manage by Unreal's workflow toolset. And, for a small team working on a complex game, this can be the thing that allows the dream of a novel game to manifest itself as one you can hack and slash your way through while you're awake. Whether it's utilities like soft class references that help optimise mechanics and world-building, or those that help team work more autonomously like the animation montage system, Unreal Engine 4 can make a three-person team seem like a 20-person team.
Related: Check out the best indie games on PC
Dreamscaper actually has a prologue called Dreamscaper: Prologue which you can try out on Steam. The full game "is quite close to being feature-complete, and Early Access will be about refining and iterating on core systems. We plan to add a lot of content during Early Access, improving the replayability and depth of Dreamscaper."
Dreamscaper is planned to release in Early Access on August 14 – learn more Unreal Engine 5 is due to release next year.
In this sponsored series, we're looking at how game developers are taking advantage of Unreal Engine 4 to create a new generation of PC games, with thanks to Epic Games and Afterburner Studios.