Image courtesy of PlaySide Studios

Age of Darkness is an RTS that throws thousands of undead monsters at you

Image courtesy of PlaySide Studios
Mat Paget
PlaySide Studios is one of Australia's largest independent video game developers, with titles across a range of categories, including self-published games based on original IP and games developed in conjunction with some of the world’s largest studios such as Disney, Warner Bros, and Nickelodeon. Based out of Melbourne, Australia, PlaySide is home to over 90 talented developers working across a range of different disciplines and platforms always looking to push the limits of what's possible within the game's industry. 
Tens of thousands of monsters crashing down upon a carefully built village is the core that Age of Darkness: Final Stand is built around. The creep of the dark and deadly night is ever-present, keeping players on the edge of their keyboards, while they build their defenses and prepare for the horde. For PlaySide Studios, a dark fantasy RTS was a brand-new challenge, but one the team approached with enthusiasm and confidence. 

Now Age of Darkness is in the middle of an Early Access stint with a "Very Positive" rating after more than 1,500 Steam reviews. On top of that, PlaySide is devoted to working on substantial, worthwhile content that players will appreciate. This includes new hero characters, an all-encompassing campaign, and a multiplayer mode. 

We spoke to lead game designer Sean Gabriel as well as art director Ryan McMahon and lead engineer Richard Au about how the Australian studio created Age of Darkness. We also discussed the team's transition from mobile and VR to a hardcore PC RTS, how it optimized the chaos that its monstrous hordes create, and much more.
 

What inspired Age of Darkness?

Lead Game Designer Sean Gabriel: As a studio, we've always been in love with the RTS genre. Going back to games like Dune, Dark Reign, Battle Realms, and modern games like Warcraft, Age of Empires, They Are Billions, and more. This is a genre that has its roots deep underground with so many amazing past games to draw from.

We felt, especially as an Australian studio, that there was a niche for us to fill with a dark and gritty RTS that paid homage to some of those greats while digging out elements from other genres like roguelites and MOBAs, and adding our own flavor.

Of course, another major inspiration came from the studio’s love for Game of Thrones. The idea of multiple warring factions each with their own deep history wrangling with an unrelenting force of horror was an image the team couldn't resist.

Age of Darkness is the studio's first non-VR and non-mobile game. How has the team transitioned to developing for PC?

Gabriel: The transition, quite frankly, couldn't have gone better. One of the main strengths of PlaySide as a game studio is our high energy and ability to dive right into the deep end of any new project or opportunity. We took our small-team-per-game approach and inserted that right into action-oriented strike teams that all tackled work across Age of Darkness synchronously. Bringing our experience with constant rapid development from mobile into the PC space allowed us to focus on what mattered first: Gameplay mechanics, balancing, a coherent art style, and world-building. 

Of course, it helped that the entire studio was extremely excited to work on a game like this and that passion and momentum allowed the team to slide into this new development style effortlessly, with everyone reading from the same script.
Image courtesy of PlaySide Studios
How many people are working on Age of Darkness, and how long has it been in development?

Gabriel: PlaySide right now has around 90 employees across a whole bunch of different games, and a lot of those people have contributed to Age of Darkness in different ways. The main team, though, is around 20 to 30 people. We've been working on Age of Darkness at full capacity for around a year, and before that was six months of pre-production, prototyping, and tech building. If that sounds like it was fast to get a game out that looks as good as Age of Darkness, then you're right. It is. It's a testament to the strong development fundamentals we have here and the excitement of working on a PC RTS game.

Did you have any unique goals for Age of Darkness coming into the project?

Gabriel: Absolutely. With Age of Darkness, we knew we wanted to build something grounded in dark medieval hardships and struggles, creating a sense of dread with the pacing and payoff of a horror movie. We wanted to wrap that in the chaos and subterfuge of medieval faction warfare and intrigue, with complex characters and motivations all vying for control and battling against an overwhelming horrific force of death. 

Another path we wanted to go down was blending a few of the best things from our favorite games into one package. This is a fairly contemporary approach to game development that most studios take, but our spin on it was we wanted to take from genres far outside our working RTS space. That's why we've added mechanics like Elite Enemies, random Blessings and Malices, and our unique skill tree. 

Fortunately, having to dynamically think about challenges that come your way suits the theme of horror and fear of the unknown—you're never going to be entirely sure what's coming your way next, and that sort of on-your-toes reactivity action is really interesting in the RTS space.

Why was Unreal Engine a good fit for the game? 

Gabriel: Our choices were Unity, Unreal Engine, or developing a new proprietary engine. Rolling our own engine was out of the question given we knew we wanted to get Age of Darkness into Early Access within a year. Unreal Engine was the clear best choice for us as we could easily achieve the level of graphical fidelity we wanted using the tools the engine provides. Unreal Engine has a lot of good visual tools around lighting and creating materials as well as Niagara for making well-optimized epic VFX. Unreal made hitting our gritty medieval art style much smoother, and C++ meant we could also build the large scale game simulation in a performant manner, with better use of memory and rendering scalability.
Image courtesy of PlaySide Studios
Age of Darkness is gorgeous, from the stormy fog and monster hordes to the dawn of day. Can you talk about how its visual style was created?

Art Director Ryan McMahon: The visual style of Age of Darkness all started around the key concept of light versus dark. This then fed into all our visual design choices throughout the project. The nightmare threat represents darkness and despair, while the humans represent light and hope.

When creating our art style, we made decisions that would work best for an RTS-style game, mainly around the camera angle. Our environments focused on terrain details, and textures were stripped of micro-details to reduce noise and ensure gameplay elements weren't obscured. With gameplay elements, such as units, enemies, and structures, the focus is always the silhouette first and foremost. Regardless of colors, they should be identifiable from our camera angle through form alone, with color, material separation, and animation being supporting factors.

On top of all this, lighting supports the gameplay atmosphere and the overall theme of light versus dark. We use warmth to represent safety and human areas, then cooler tones to represent the darkness and danger. As the mood intensifies, we push this further wherever possible, such as when the fog rolls in during a Death Night.

The lighting stands out as a high-point for the visual design. How did the studio create the day-to-night lighting system?

McMahon: The day-to-night system uses Unreal Engine's Sequencer to keyframe lighting between different times of day—those being sunrise to midday to sunset to midnight and repeat. When tweaking sunrise and sunset moments, we ran into various challenges around maintaining unit and structure readability, which required a lot of fine-tuning to get right. 

We had to consider the sun angle and how shadows impacted gameplay during the time-of-day animations. We tweaked the angle and lighting color of the directional light and made a few color grading adjustments in post-process to achieve the results we currently have in the game.

How did you balance the survival gameplay loop of preparing during the day and defending during the night to make Age of Darkness a compelling experience?

Gabriel: As is typical in many of these games, we took the approach of daytime feeling safer and nighttime feeling more foreboding and rewarding. Some of the team felt that there should be a clear delineation between day being the time where players can more freely explore and expand, and night being more threatening where players should take a more defensive posture. We had a lot of playtesting around this, and there are a lot of interesting mechanics still coming that'll make daytime even more interesting. Balancing the penultimate Death Nights was an entirely different endeavor though. There were no easy math wins here and we relied on watching our players struggle again and again. Ultimately, there comes a point where you have to believe you've found the line between fun and challenge and trust that your players will rise to it when they're playing it themselves.

A major aspect we always wanted to keep in mind, though, was the expert players who want to push above the balancing and difficulty curves and get ahead. We gave those players extra goals through Hardships, the scoring system, and one of our favorite mechanics, which is the ability to destroy the Dark Crystals ahead of the scheduled Death Night. What this does is essentially fast-forward the game and reward players with hefty amounts of Dark Essence, giving players the opportunity to sort of control the pace of the game if they're good enough.
Image courtesy of PlaySide Studios
What can you tell us about Age of Darkness' upcoming story campaign?

Gabriel: I can tell you that it's going to be one of the most challenging and exciting things that PlaySide has attempted so far, and we have a team riding off of the positive reception of our Early Access launch making it. Right now, we're fairly early in an ideation and pre-production phase, building the world, the characters, and deciding on all of the moving pieces that will serve as the backbone for the story and scenarios we put our players through.

Everyone in this world has suffered for decades, and by the time the player gets involved, the continent is at its breaking point, and all of the worst aspects of humanity have bubbled to the surface. There are some capable actors still with their wits about them, but everyone has their own version of right and wrong, the factions they like and dislike, and so on. Ultimately, only the strong survive—players just need to make sure that's not the Nightmares.

As designers, our main goals for the campaign are to deliver a set of unique and compelling game scenarios that intertwine with the theme and threat of not only the Nightmares, but of foreign human factions, their histories, and the hero characters that represent them. If you loved the Warcraft III and Starcraft II campaigns as well as Game of Thrones, then you know what we're aiming for. Like any good RTS, each scenario will have unique objectives, side missions, and special victory conditions that put your playstyle to the test. We want to run the player through the gauntlet of every mechanic we have in the game and everything else we can come up with, and by the end of it, you should be deeply familiar with every aspect of Age of Darkness.

What have you learned about the game during its Early Access state thus far?

Gabriel: We've only been in Early Access for a month so far but yeah, everyone's learned a lot. It's entirely something else when you have real life gamers playing your game. The sheer amount of differing opinions and unique perspectives can very quickly avalanche, so you have to be extremely proactive with your players. We've been very lucky to have a fantastic community around the game (around 5,000 Discord users and growing), and they continue to energize the entire team. It's awesome having passionate gamers to work for.

Two important things the designers here have learned: No matter how difficult you make your game, there will always be players who will beat it on the first day. It's the nature of the beast, right? If you've made a game that you yourself can reasonably beat, then obviously there are going to be hardcore players out there that'll crush it immediately. The takeaway here—which is fortunately something we hit the ground running with—is to always add methods for these players to wring as much out of the game as possible, be that through difficulty options, extra modifiers, or in-game extrinsic challenges to overcome. 

Secondly, Early Access games should be very careful and intentional with updates. You might think, "Sure, it's Early Access, everyone knows the game will constantly shift and change as we iterate and add more content." Although that's the case, you're still serving a community, and some of those players will love what you made, especially if your graphics are high fidelity like Age of Darkness. People love new stuff, but nobody really likes change. So my suggestion would be to keep communication clear and open, treat your updates with respect by having great documentation and reasoning, and ensure that what you're doing to the game, ultimately, is making it more fun, rather than just tweaking knobs.

What can players expect from Age of Darkness as it matures throughout its Early Access state?

Gabriel: We're currently working on two major updates that include new buildings, new heroes, and new units. More content and depth is a major priority. In addition to that, we're building new environments, adding new features that give players more decisions and things to contend with during Survival. Now that we've established a great base game, we're letting the dog off the leash as it were and are looking to get more wild and creative with what we put into the game. Beyond that, of course, a lot of our efforts are on the campaign and multiplayer.
Image courtesy of PlaySide Studios
Age of Darkness' minimum system requirements are surprisingly modest for a game that looks as good and has as many units as it does. How did you approach optimizing the game for hardware that is, in some cases, almost a decade old?

Lead Engineer Richard Au: We use Unreal primarily as a rendering engine. Our simulation code is all custom C++ and avoids the Actor system entirely. The simulation code is written using a structure-of-arrays data layout, with our game objects organized by their current behavior instead of their type, in order to reduce branching requirements in tight inner loops across thousands of objects. This gives us more consistent performance as we only need to iterate over data that is actually being used by the behavior being processed. 

For instance, we process all melee attackers at once instead of processing all soldier characters at once (and having to figure out what state each soldier is in). Much like an entity-component-system, all our game objects exist purely as integer identifiers whose behavior is determined by which behavioral groups they currently reside in. Organizing the simulation in this way has allowed us to multithread large portions of the code base using Unreal's threading system (primarily ParallelFor).

We cache as much constant information in tile maps as we can, so that complex queries for thousands of units reduces to simple constant time look-ups. This includes things such as path-finding, lighting, and targeting information.

In order to animate thousands of units simultaneously, we are using a system that stores all animations inside a texture, so that the CPU only needs to provide a single timeline parameter and a transformation matrix to a series of InstanceStaticMesh render components (one for each unit variation). The GPU handles the rest. This imposes some constraints on the art team compared to the traditional animation options that Unreal offers, however the trade off has been worth it in this case. Needless to say, getting so many units on screen working with all the moving parts of the game was a challenge.

Was it challenging to develop an RTS with thousands of units on screen simultaneously? 

Au: The development of Age of Darkness had its challenges, but not in a sense where we were unable to execute on our original vision. There were a few challenging points during the development of the project, which revolved around our planning of making an RTS game.

However, in terms of creating an RTS that could support the many units that we had envisioned, this was one of the fewer challenging aspects of the game. With our data-oriented approach to creating a game like this, we knew we could process the thousands of operations required for all the units that we would have in the game using the multi-core systems of today.

There were definitely a lot of considerations for developing such a game and having a very talented development team that had a strong understanding of how to monitor performance and optimize throughout the development process would allow us to have the many units that we intended to have on screen.

Are there any specific developmental achievements that you're particularly proud of?

Gabriel: When the "They're Coming" cinematic and the Death Night Malice system was finally implemented and everything clicked just like we imagined. Watching players freak out when the game manages to ruin their carefully constructed meta made us feel like we had something special.

Thank you for your time. How can we learn more about Age of Darkness?

Gabriel: Thank you for having me! You can read more about the game at https://www.ageofdarkness.com/ and more about PlaySide at https://www.playsidestudios.com.

    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.