Making it in Unreal: how Irrational vets built the City of Brass with six pairs of hands

City of Brass Unreal Engine 4

In the announcement trailer for City of Brass, the titular metropolis literally emerged from the sands – minarets pushing thousands of grains aside to pierce the clouds, domes dominating the horizon where a moment before the inky desert night sky had reigned.

Read more: the best indie games on PC.

It was a fanciful and memorable way to introduce an Arabian Nights-style adventure, and an accurate representation of the way Uppercut Games have erected the game in Unreal Engine 4. In order to summon a satisfying first-person city filled with winding alleys and surprising traps, the studio’s six developers have become genies of procedural generation.

“It almost killed us.”

City of Brass procedural generation

Uppercut was founded by three veterans of a triple-A studio which, while often renamed, is best remembered as Irrational Australia. There they worked on BioShock, and the ill-fated XCOM game that would eventually become The Bureau, before setting out together to work on indie projects. Their earliest releases as Uppercut were on mobile, and in 2015 they brought the combat-free adventure Submerged to Steam. Like City of Brass, Submerged was about exploring a place reclaimed by the elements – but its drowned streets and high-rises were all crafted by hand.

“It almost killed us to ship that,” Uppercut co-founder Andrew James tells us. “Because it was very inflexible and hard to make changes or incorporate feedback we got from testers. It was just a giant, monolithic thing.”

In Submerged, every building the player could climb was a unique static mesh. For City of Brass, the team decided to make every mesh and art asset work harder, repeating then in a variety of combinations across a world that would appear differently every time players booted up the game.

They began with Dungeon Architect, a plug-in available on the Unreal Engine 4 Marketplace. Dungeon Architect functions as an extension for the engine’s editor, giving developers a headstart in generating random levels.

“It’s a pretty solid bit of tech for creating procedural spaces,” James says. “But it didn’t really have any rules for creating architecture or a space that made any sense.”

Uppercut’s Ryan Lancaster spent about a year writing code to replace parts of that initial generation system, so that the City of Brass made sense as a world. With each new rule they created, they built the art to match – an archway here, a doorway there. And as new architectural features were added, the place became more real.

“They created more of a unique vista when you looked at a level,” James says. “Instead of just seeing a bunch of straight edges, they started breaking the space up.”

Within those rules, the team followed the principles of good level design. The exit to a map is called out by specific lighting not seen elsewhere in the game, for instance, and forms part of a larger structure you can see from a distance – a North Star to aim for.

Uppercut also discovered some architectural laws they were previously unaware of – simply through gut feeling about what didn’t look right.

“There’s a lot of intuitive logic about where a set of stairs shouldn’t go,” James laughs. “We spent a lot of time writing rules for that.”

The weight of a world

City of Brass procedural generation

Uppercut’s founders have spent their careers building dense environments, filled with detail. It’s exactly this quality that won Irrational their reputation for worldbuilding. But with density comes a cost to performance.

“Because the game is procedural, we had thousands of objects,” James says. “It’s not like the game ever really chugged, but every little thing counted.”

Any extra material the studio layered on the city’s walls was then repeated 100 times. Deciding that lights would be dynamic, rather than baked into the world, had a huge effect as 30 or 40 were spawned at once.

“No one magic bullet fixed that,” James recalls. “It was just a lot of small tweaks to the art, and trying to match the higher level system.”

City of Brass quote

By that, James means that Uppercut had to build the City of Brass to suit their limitations. The size of each level was defined by both the draw distance the studio needed and the amount of objects they could have visible at any one time. All in all, performance proved to be the studio’s biggest challenge.

“There was just a lot of balancing,” James says. “It took a lot of time and painful iteration.”

As City of Brass emerges from the sands of early access, looking every bit the desert oasis it was intended to be, it’s worth remembering that just two artists worked on it, with the help of some contractors.

“I keep calling it the best game we’ve made, and I think it’s true,” fellow Uppercut founder and Irrational vet Ed Orman says. “We had a solid idea of what we wanted to build, we executed on it early on, and then iterated – it’s the way to make games these days.”

City of Brass is out now of Steam. Unreal Engine 4 is now free.

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 Uppercut Games.