We take an in-depth look at the technology powering Asobo Studio’s A Plague Tale: Innocence.
AAA development has fallen into something of a rut these past few years. As we await Assassin’s Creed 10 and Call of Duty 16(!), there’s the uncomfortable realization that bigger developers are becoming more and more risk averse, much more interested in extracting their return on investment than actually crafting meaningful gaming experiences. Narrative has been left at the wayside in favour of “shared experiences.” Anthem, Bioware’s latest, plays like an MMO with half a Bioware RPG careless slapped on.
The whole discussion about lootboxes and microtransactions has left the community and, has even become the subject of legislation in some jurisdictions. The post-Witcher 3 era is a sad, sad time to be in if you’re interested in deep narrative experiences with characters you actually care about. But while AAA mainstream studios are going through something of a narrative dry spell, midsize “AA” production houses have taken the lead. Starting with 2016’s Hellblade: Senua’s Sacrifice, we’ve seen a small but sizeable number of mid-scale games with better-than-indie production values, that’ve placed a greater emphasis on narrative, setting, and atmosphere. A Plague Tale: Innocence, with its 10-hour completion time, heavy emphasis on character development, and its constrained, yet lavish visual presentation is a perfect example. We’re fans of the game’s semi-historical coming-of-age tale and of its rich environmental storytelling. But we’re equally impressed with Asobo Studio’s technical finesse—A Plague Tale is powered by an in-house engine that, among other things, allows for over 5000 rats to be rendered onscreen at once. It’s received almost universal praise for the narrative and of the world Asobo has crafted. The tech behind A Plague Tale is a big part of the story of how it looks and feels so distinctive. Without further ado, here’s our technical deep dive into what makes A Plague Tale tick.
Engine: Building on Asobo’s Earlier Work?
Since they’re a relatively small studio, we were surprised to hear that Asobo would be using a custom, in-house engine to develop A Plague Tale. Considering the scope and linear approach of the game, Unreal 4 seemed like the ideal fit. As a matter of fact, Asobo’s current publisher, Focus Home Interactive, actually released quite a few midscale, narrative-focused titles built on Unreal 4 over the past few years, from Cyanide’s Call of Cthulhu to Vampyr. We suspect that Asobo’s decision stems from its need to incorporate unique functionality—particularly for rat rendering. But what are the underlying roots of Asobo’s tech? Here, it helps to have a look at some of the studio’s earlier work. Going by their development history, Asobo wouldn’t be the first studio you’d associate with Last of Us-style narrative experiences.
They’re best known for a.) Pixar adaptations from the early 2000s, and b.) FUEL, a poorly-received open world racer with a 6000 square-kilometre map. Asobo’s work for Pixar is by now well over a decade old, and was released on 6th-gen platforms. And while FUEL was also built on a bespoke engine, it’s such a fundamentally different game from A Plague Tale that repurposing that engine would’ve been more trouble than its worth. As we’d mentioned earlier, the most likely reason behind Asobo’s decision to build an engine from the ground up for A Plague Tale is to have the flexibility to implement bespoke systems like the rat rendering system. While there isn’t much documentation out in the open, from what we can in the game, it appears to be a fairly standard DX 11 engine that utilizes deferred rendering. There isn’t much to be said about the engine itself, but what Asobo’s managed to do with it is very impressive.
A Plague Tale makes use of what is either a forward-plus or a deferred renderer for lighting. While the setting—much of it at night in medieval environs—naturally doesn’t feature a lot of individual lights, each light—including individual torch fires—is a dynamic, light-casting source, including the sun and moon. A Plague Tale doesn’t resort to pre-baked shadowmaps and this plays a major role in elevating the atmosphere, especially in night scenes: shadows cast by static objects, like walls, flicker convincingly with the uneven torchlight. Dynamic lighting isn’t just used to create atmosphere, here. Light and fire play a critical role in moment-to-moment gameplay. Rats in the game are terrified of light, making it the only way to effectively draw them away from Amicia and Hugo and access otherwise dangerous areas. Conversely, extinguishing light sources can draw rats toward a location, opening up a number of rather gruesome stealth kill opportunities. In terms of indirect lighting, A Plague Tale appears to implement global illumination. Light bounce and colour bleed can be observed easily in night scenes when standing at odd angles to light sources—torchlight cast in one direction diffuses a subtle, ruddy illumination even in areas perpendicular to the light’s direction.
SSAO also features prominently. A rather basic implementation appears to be in place. Coverage is thick, but haloing artefacts can be seen at times around objects receiving AO. It’s nowhere near as bad as the cel-shaded effect of early AO solutions—in Far Cry 3, for instance—but it’s noticeable. To an extent, though, the heavy AO coverage works to A Plague Tale’s benefit. In an environment like A Plague Tale’s, where the contrast between areas of light and dark plays a big role in setting the tone for the environment, the thick AO coverage emphasises the moody environ—there are menacing shadows everywhere you look: between walls, under carts, on the seats of chairs.
Animation and Character Modelling
While the story is well told in and of itself, much of what makes A Plague Tale so compelling is the careful attention to detail lavished on the character models: character visuals and animation are so done so well that cutscenes generate a real sense of empathy in the player. The despair in Amicia’s eyes when she tells Hugo that “Mummy is dead,” is heart-rending and this is down to Asobo’s excellent work on character modelling. While non-essential NPCs are understandably cruder, Hugo’s and Amicia’s characters are rendered at very high polygon counts—in the upper five-figure range. This rounds everything out—noses, ears, and cheekbones. A high-quality skin shader is in use here, with subsurface scattering deployed. This is particularly evident in outdoor scenes, where light transport through skin is handled realistically. As the game progresses, blood, dirt, and filth accumulate on the skin. While this isn’t dynamic, the material is convincing, responding to light differently from the skin itself. Hair rendering is good, not great. Most models have static hair meshes, though these are uniformly of a high fidelity. This actually makes the lack of hair physics more apparent, however. It’s very jarring to see just Amicia’s ponytail animate while other parts of the hair mesh remain completely still. Likewise, even though Hugo hair mesh is very detailed, his bangs remain completely still while he’s in motion. An opensource solution like TressFX would have come in handy here—the lack of hair physics is a genuine missed opportunity. Skin textures are of a very high quality, in the 2K to 4K range for cutscene models. There’s effective use of normal mapping here to add perceived depth—for instance in the wrinkles on an elderly person’s face. Beards, where they’re present, are in the same boat as hair: The meshes themselves are of a very high quality, but they’re completely static.
In-game animation is, sadly, an area where A Plague Tale’s AA roots are particularly evident. A key aspect of immersion in slower, stealth-based titles is smooth, organic character animation. A key takeaway from the Last of Us 2 trailers is that the way Ellie moves—how her hands respond to incidental objects in the environment, and the desperate, irregular motions during combat—tell a story all their own. Early on, the Assassin’s Creed games suffered from a sense that your character model wasn’t really connected to the game environment. Ubisoft attempted to rectify this in Assassin’s Creed 3 by overhauling the system such that Connor’s hands reached out to grasp incidental objects during parkour. While this may seem like a subtle detail, it had a huge impact in how the game felt on a moment-to-moment basis. Cutscenes are another matter entirely—they’re very well animated. However, in-game animations are notably ropey by AAA standards. Amicia does the “crouch float,” with her model not actually grasping onto surfaces like walls during stealth. Transitions—for instance, from using the slingshot to crouching—are rough. Amicia just doesn’t feel that connected to the gameplay environment. NPCs are also quite roughly animated during gameplay. This actually works in A Plague Tale’s favour when it comes to heavily armored guards—their movements are as janky as you’d expect from someone wearing a full suit of steel plate. In other cases, though, it just serves to remind you that Asobo’s budget isn’t quite as large as, say, Naughty Dog’s.
That limited budget has been spent wisely, however. In a game like A Plague Tale where narrative takes centre stage, cutscene animations can make or break everything. Thanks to the exceptional quality of character models, faces—the glimmer in eyes, the quirk of an eyebrow—are incredibly emotive during cutscenes. Facial expressions accurately capture the emotions conveyed by the voice acting. While we still haven’t crossed the Uncanny Valley, facial rigging is detailed enough that players can easily empathize with and become invested in the emotional condition of NPCs. Bespoke body animations in the cutscenes are also a clear step up from the in-game situation.
A physically-based material rendering model is in use here. Material quality is excellent throughout. Because such a large part of the environment is made up of masonry and wood, PBR grounds helps to ground these surfaces firmly in the scene. Clothing is also accurately depicted here. Course leather—in Amicia’s outfit, for instance—exudes just the right diffuse sheen you’d expect. The subtle interplay of dynamic light sources with these materials and indirect, diffuse light transport to other surfaces greatly adds to the sense of immersion. PBR also acquits itself well when handling shiny, metallic surfaces. Most of the world is (understandably) grim and in need of a good scrubbing, but highly polished guard armour, for instance, gleams brightly and reflects dynamic light sources.
One aspect of material rendering that we’re disappointed in is the absence of parallax occlusion mapping. Parallax occlusion mapping is a technique that’s used to add perceived depth to textures as a cheap alternative to upping the poly count. Because its effectiveness is dependent on the viewpoint, it’s commonly used on surfaces that are at oblique angles, like the floor or walls. We are rather puzzled as to why Asobo decided not to implement this technique. Parallax occlusion mapping isn’t especially resource intensive, and it adds greatly to perceived detail in scenes with uneven surfaces—such as cobblestone flooring or brick walls—exactly the kind of environments that Amicia and Hugo spend most of their time in. Nevertheless, standard normal and specular maps are in place, offering a reasonable sense of depth when paired with the very high-resolution environmental texture assets. A creative—and somewhat grisly use of specular mapping is seen on the rats. They’re almost unreasonably shiny, giving off an aura of oily, diseased filth.
So far, A Plague Tale is shaping up to be fairly standard AA fare from a technical perspective. A key highlight, though is its rat rendering system. Rats are integral to A Plague Tale—keeping away from them, and strategically luring them are key parts of the gameplay loop. From a narrative perspective, they’re also the main antagonists. A Plague Tale’s fantasy interpretation of the Black Plague has France overtaken by hordes of disease-bearing rats. It’s interesting to note here that A Plague Tale isn’t the first mainstream game to tackle the “rat plague” theme. 2012’s Dishonoured did much the same in its painterly interpretation of Victorian England. There too, quasi-supernatural rats formed an important part of both the narrative and gameplay loop. Even in the real world, rat infestations get out of hand fast.
To stay true to their respective canon, each game takes different approaches to convey the sheer scale of the rat infestation. In Dishonored, random rat-packs of up to several dozen individuals are encountered as a matter of course and are often a part of light environmental puzzles—the gruesome solution is usually to lure the rats away with a corpse (or live human). Dishonored only features a few dozen rats onscreen at a given time. It does, however, lavish a significant amount of rendering resources on them (bear in mind, here, that this is a seventh-gen game we’re talking about). The wonderfully named “Rat Shadows” graphics toggle adjusts just that: individual dynamic shadows for each rat in the pack. In Dishonored, at least, the results are somewhat mixed. While you certainly encounter rats in the environment, you neve really get the sensation that there’s an actual rat plague.
Dishonored didn’t quite nail the sensation of being caught in a rat plague but we’d peg this primarily on technical constraints: If the game rendered full-sized rat hordes on Xbox 360 and PS3, there wouldn’t be resources to spare on the game’s immersive sim aspects. It’d just be a rat horde simulator.
Seven years later, A Plague Tale runs on considerably brawnier hardware and, unlike in Dishonored, the sheer horror of a rat plague is evident to see. Paris doesn’t just have a garbage problem: The streets and houses are flooded with rats. Asobo claims that the engine can render up to 5000 rats onscreen at once. This is a remarkable achievement, but nothing that’s fundamentally impossible on eighth-gen hardware. Optimization, though, is key. Remember AC Unity? Prior to launch, Ubisoft boasted that the game would feature over 5,000 NPCs onscreen at once. Well, this did turn out to be the case, but at the cost of the game running at a terrible framerate on console, with some brutal CPU bottlenecking. 5,000 individually rendered and animated characters is just…a lot. Asobo seems to taken heed to the lesson here: As mentioned in interviews, A Plague Tale’s rat rendering system utilizes aggressive LODs, with only the closest rats actually rendering in at a high poly count. Rats further out use simplified models and those farthest out—the most numerous—aren’t even animated. This is reminiscent of the crowd rendering approach used in sports games like NBA 2K19, where front-seat spectators are rendered at high quality, and aggressive LODing in the stands is masked by depth of field blur and smart camera angles. Asobo has smartly integrated the LOD transitions into the rat’s swarm animation: If you observe rat hordes carefully, as the rats swarm an area, they appear to morph from fully-rendered models to misshapen, untextured potato-shapes, which then shrink out of existence before the process cycles in reverse. While this might sound unappealing, in motion, the effect is that of surge after surge of rats breaking and reforming like ocean waves. It’s unsettling, to say the least.
Post Process Pipeline
Considering the game’s cinematic aspirations, we’re pleasantly surprised that Asobo didn’t overdo it in the post-process department. Chromatic aberration is in use here, but the effect is subtle and only perceivable in the middle to far distance. A camera-based motion implementation is in use here, but again the effect is subtle and, more than anything else, just enhances perceptual smoothness on consoles with their 30 FPS lock. Depth of field blur is present both in-game and in cutscenes. Cutscenes, naturally, use a shallower, dynamic depth of field. Static DoF is used in-game and, again, it’s more there to mask low-poly LODs in the distance than to add to the game’s visual makeup. In keeping with the theme of inexpensive post-processing, screen-space reflections are used in the game. They’re high-res and add significantly to the atmospherics in areas with water puddles. The only real complaint we have with the A Plague Tale’s post-processing suite is with the overdone SSAO implementation. As we’d mentioned above, there is such a thing as too much AO and this can lead to a haloing effect around objects receiving the AO. Newer techniques like HBAO and SSDO offer good AO coverage without overdoing the “occlusion” part. All in all, though, we’re quite happy with post-processing in A Plague Tale, if only because it doesn’t look like alternating layers of Insta-filters and Vaseline.
Conclusion: Reaching Towards the AA Technical Bar
A Plague Tale: Innocence isn’t the best-looking mainstream title out there. Heck, it isn’t even the best-looking AA game. More focused experiences like Hellblade: Senua’s Sacrifice look objectively better. Nevertheless, Asobo did things right in the areas that matter: Cutscene assets and animation are impeccable, and the bespoke rat rendering system really conveys that rat-pocalypse feeling Dishonoured never managed to capture. The artwork is spot-on as well. Many of From Software’s titles, from the original King’s Landing games to Dark Souls III, borrow heavily from gothic imagery of the apocalypse. Asobo, a French developer, appears to have taken a leaf or two from the Japanese developer’s book when designing the decrepit environs of their own country, 650 years ago. The result is a game that’s frequently stunning, not necessarily because of technical brilliance, but because of the coherency between the themes the narrative explores and the setting.