Resident Evil 2: GameTextures Overview

Daniel Rose
GameTextures
Published in
15 min readMar 22, 2019
Source: https://heavy.com/games/2019/01/tyrant-mr-x-resident-evil-2-remake/

“It’s the 10 Year Rule. Every 10 years, what’s old is new…Every 10 years, you can take an [old] idea and reintroduce it to a new group of 17 year olds.”

-Cliff Bleszinski (Source: https://venturebeat.com/2013/01/22/life-after-epic-getting-to-know-cliff-bleszinski-exclusive-interview-part-one-his-past/)

Resident Evil (known as Biohazzard in Japan), has a special place in gaming culture dating back to the late 1990’s. There are few games from that era people can recall with ease, but Resident Evil has remained relevant for over twenty years. The original PlayStation games defined the genre, the GameCube remake redefined the experience, and subsequent installments evolved and re-imagined the series into the icon it is today; Resident Evil is here to stay.

One of the most beloved entries into the series is the original Resident Evil 2. Released on the PlayStation in 1998, RE2 kept the formula of the first game and expanded it; with gameplay tweaks, and most notably, a uniformly praised story. Playing as either Claire Redfield or Leon Kennedy, players work their way through a police station and into the bowels of Umbrella’s secret lab, in a bid to escape Racoon City. Along the way, you meet a fun cast of characters, and uncover secrets relevant to the Resident Evil universe.

Resident Evil 2 (1998) received a lot of love from the fanbase, enough that Capcom decided to revisit the series favorite.

Announced in 2018 and released earlier this year, Resident Evil 2 is a remake of the PlayStation classic, and it is phenomenal. Capcom has taken the spirit and story of the original game and masterfully combined them with modern design aesthetics, art, and graphics. The result: one of the best linearly designed games I’ve played in a while.

Don’t get me wrong, I very much enjoyed other linear games, like 2018’s Spider-Man and God of War. Personally, as my life continues to change and speed up, I find that games with a tight focus on narrative have become much easier for me to play. Give me a linear eight-hour game any day of the week. If a B-Side is included, like with RE2, that’s even better.

From a design perspective, SuperBunnyHop made an incredibly informative video that breaks down what makes Resident Evil 2 (2019) so excellent. It’s worth a watch, so I’ve linked it below.

For my part, rather than a focus on gameplay, GameTextures Overviews focus on the art and some of the technical aspects of the game’s performance. I’ll examine textures, art choices, technical terms, and how materials impact the game. Welcome to my Overview of 2019’s Resident Evil 2.

Direction make’th a Game

Resident Evil 2 is a very pretty game on the whole, which is ironic when you consider the setting. Most of the game takes place in a dimly lit, overrun Police Station, with later sections taking place in an orphanage, the sewers below the city, and a laboratory. The urban environments only allow for so much diversity of materials, structure, and color. With dynamic (in an artistic sense) lighting and a constant feeling of insecurity conveyed by the combination of said lighting, volumetric fog, color choice, and fantastic sound design, the player will never feel as if they are in a safe, boring world.

RE2 makes use of light and color to ratchet up the tension while simultaneously keeping the setting feeling fresh and believable. Consider the opening sequence in the police station, where the player squeezes under a door and works their way to what becomes a grizzly scene.

Blood Decals set the mood early on. Decal work in this game is high quality and impactful.
Blood, fog, bodies. What could go wrong?

Volumetric Fog works with your flashlight, the only real light source in this scene, to create an ominous feeling that creeps down the back of your neck. Ever since the Universal Monster Movies of the 30’s, fog has been associated with foreshadowing and is used to create a very unsettled feeling. RE2 uses it here to the same effect, giving players a sense of unrest. This technique is used liberally throughout the game and it remains effective until the game slowly changes the genre on its players and the fog effects are dialed back (be sure to watch SuperBunnyHop’s video for more detail on this).

Next we can look at a new scene where the moon shines through a window to showcase a different feeling through the use of silhouette.

This grizzly scene continues to convey to the player the horror that’s in store.
While Dark and ominous, the light on the broken window creates a cross, a symbol of hope in Christianity.

Note the staging of the different areas. In the opener, the player is navigating a dark and eventually over-run hallway with little in the way of navigational markers thanks to the fog and disorienting nature of walking in the dark. It’s meant to scare and confuse the player, forcing them to run, or to get lost and subsequently eaten. Once you get through the opening scene and move past the waiting room and down the hallway, the window and the moon create a shadow that looks like a cross, mentally giving the picture of safety while also making sure that players know that, “Yes, this is the way to go. For now.”

(Pro Tip: Board up that hallway.)

Color as a highlight or warning is used to great effect. Blood is placed in strategic locations throughout the game. If you check the STARS office, waiting rooms, the main hall, or a surprising number of additional rooms, you’ll see that blood is either rare or nowhere to be found. When the player runs across blood, especially large pools of it, it keys your eyes in on it immediately. Besides breaking up the greens and browns of the station, blood serves a dual purpose. It signifies that something bad has happened here and that you should be on your toes, as well as being a pretty clear marker of the main path through a room. It never feels good to walk towards danger, and RE2 makes the player do that. A lot.

When you enter the first waiting area, it’s pretty clear of blood…
…but not for long. Same room, completely different feel.

The Police Station is perhaps the most diverse of the locales. Most of the station looks and feels as you expect it would, with concrete, wood, and a mix of tile and brick making up much of the environment. Part of the reason it works so well is the main hall of the station. An ornate reception area that’s been made into an emergency care spot, the main hall serves as a “wow” moment when you enter in from the street. Large and decorative, you get the immediate sense that this is no ordinary police station. This is also where, depending on your gaming setup and graphics sensibilities, you encounter a re-occurring issue with the game: reflection noise and accuracy.

This is a pretty effective intro into the main playable area. It is beautiful.

Before diving into Resident Evil 2’s only real visual issue (which, to be clear, does not detract from the game) we need to have an overview of PBR reflections.

Micro-surface Details and Reflections 101

As you have likely heard by now, most modern games (and all modern raytraced pre-rendered solutions) use what is called Physically Accurate, or Physically Plausible Materials. In the realm of gaming, this has been referred to as PBR, or Physically Based Rendering. There are some technical differences between different solutions, and games do have some additional math to account for how lights are calculated, but in general the core of what makes up a simple physically plausible material is the same throughout the entire CG Industry:

· Albedo (or Base Color)

· Microsurface Detail (Glossiness or Roughness)

· Specular Reflection Color (using a Specular Map or Metalness Workflow)

Normal, Height, and Sub Surface information, while common, is actually optional when it comes to the base level of a material. A polished, smooth surface has an albedo value, microfacet/surface information (Gloss/Rough), and a specular reflection color.

I will be referring to Microsurface details as ‘Roughness’ for the remainder of the article. The difference between roughness and glossiness at its most simple is an inversion of the values. A rough surface starts at a mirror like surface (pure black, or 0) and ends at a completely rough surface (1, or white). Glossiness ramps in the opposite direction. There is an academic difference or two, but those don’t serve purpose in this article. Additionally, with Unity having adopted a ‘Metalness/Roughness’ standard shader (although Spec/Gloss is still an option), I expect more readers are familiar with Roughness at this point.

Roughness starts at 0 (No Roughness) and ramps to 1 (fully rough). Taken from the fantastic PBR Guide 2018: https://academy.allegorithmic.com/courses/the-pbr-guide-part-1

Roughness works by using a texture map’s greyscale values to “perturb” the direction of how light is reflected. A mirror like reflection will reflect light directly back to the viewer. A rough surface, like concrete, features many pores, grooves, and other minute details that change how light is reflected. With concrete, it’s bounced around so many times that the light that’s reflected to the viewer has barely any intensity left. Thus, concrete has almost no specular sheen to it.

This is the theory of micro-surface details. Up close, there are small details that disturb light. Taken from the fantastic PBR Guide 2018: https://academy.allegorithmic.com/courses/the-pbr-guide-part-1
This is the theory of micro-surface details. Up close, there are small details that disturb light. Taken from the fantastic PBR Guide 2018: https://academy.allegorithmic.com/courses/the-pbr-guide-part-1

Reflective surfaces work by having a combination of a low degree of roughness (they’re generally very smooth) with an albedo value (lower values often give stronger reflections), and a high reflected color value. Reflective metals for instance appear to our eyes as a color. Steel often appears to have a sort of a slightly blue hue to it. That color is how reflections look based on the properties of steel. Steel itself has no albedo, or innate color value. Reflective tile is another example, where there is obviously an albedo value based on the colors of the tile. Dark tile can often appear to show reflections stronger than white tile because black is considered a low albedo value.

A quick side note: Don’t make any Albedo Map completely black unless it is a reflective metal, or perfectly white.

At this point, you might be asking what Metalness is since I mentioned it earlier. It’s a cheat that makes it easier to save on texture memory using the core of what I’m describing above. Look for an article on that in the future.

Now that we know how to get a reflective material, we need something to reflect. In raytraced engines like Vray, rays are bounced around the scene and then sent back to the camera with all of the relevant information. Because rays are constantly being bounced around the scene (usually with an eventual “termination value”) before being evaluated by the camera, reflections look significantly more realistic. While Nvidia’s RTX series of Graphics cards are starting to bring a degree of raytraced accuracy into real time graphics, all games today will still be making use of different, more traditional real time techniques to approximate reflections that are used by materials.

A look at how a traditional renderer evaluates and renders scenes. (Drexel University)
A look at how a traditional renderer evaluates and renders scenes. (Drexel University)
A look at how a traditional renderer evaluates and renders scenes. (Drexel University)

Screen Space Reflections, Cube Maps, and Mirroring: Real Time Reflections

Games handle reflections using a combination of rendering trickery, images, and simple geometric fakery. Because games need to hit specific frame rates in order to be playable, different games aiming for different frame rates will employ all, some, or none of these techniques.

Geometric Mirroring is the simplest method of reflection, and it usually works best for pure mirror-like surfaces. It has been used since the old days of Unreal and Quake, and probably even before that. It is as simple as you would expect too; take the geometry you want to be reflected, duplicate it, and mirror it over an axis.

Mirroring isn’t used very frequently anymore outside of mobile despite being pretty performance friendly at lower polycounts. The speed at which cube maps can be created in some tools, as well as the near ubiquity of Screen Space Reflections, makes geometric mirroring not always the best for an entire production. If, however, you are in need of specific elements being reflected and none of the other techniques are getting the job done, sometimes the old ways do it best.

An older cube map asset from Unity (https://docs.unity3d.com/Manual/class-Cubemap.html). Cube Map reflections are generally (but not always) handled by ‘reflection probes’ that basically do this, but with less setup..

Cube Map Reflections have been around for quite some time as well. A cube map is a texture that is made by capturing the game environment to the six faces of a cube. They are mapped to a pre-determined ‘lat-long’ UV Layout on said cube. When used properly, this layout creates the illusion of the environment being seen or reflected. Cube Maps can fit many different resolutions to improve their quality in real time rendering but are often rendered at low resolutions. This is due to a mix of reasons including memory limitations (hypothetically; 32 cube maps * 12MB per a cube map = 384MB, or more than the entire graphics memory of the PS3), and visual quality required (mirror surfaces require detailed reflections while rough surfaces need simple, blurred reflections).

Prior to the start of the 8th generation of consoles, cube maps were generated specifically for reflective surfaces like mirrors, reflective metals, and the occasional water puddle. With limited memory and rendering technology that handled light interaction with materials in a non-physically accurate way, cube maps were really only needed for truly visible reflections. Some games (Uncharted: Golden Abyss among them) used ambient cube maps. This map was a small (really small) global cube map for an entire level that had information stored in the texture that told the engine how to display our faked specular highlights, as well as giving the levels an additional cheap light source. You can find maps like this still used in some mobile titles or in games that run with 100% Dynamic Lighting

In late 2012 and 2013, right around the time the PS4 and Xbox One were being released, Physically Based Rendering was slowly becoming common in video games. Remember Me and Grand Theft Auto 5 both made use of a somewhat approximated PBR system. In Remember Me, they generated numerous cube maps for their levels and blended between them based on player distance and cube map influence. This is how cube maps are typically used today. Games will have a number of reflection probes (artist placed ‘cube map generators’) per a level that are all blended based on a mix of influence radii, player distance, and visual importance. Thanks to the large increase in available memory in the PS4 and Xbox One, artists can place many more cube maps than in the past, making reflections in everything look more realistic than before, even if the resolution of the cube map is rather low.

While cube maps are really cheap on the graphics side, too many cube maps will reduce the amount of memory that is used elsewhere. Additionally, they aren’t always visually appealing. Because cube maps are sampled from static locations, reflections don’t update with the player. They might look realistic one moment and look completely off the next.

There are options for cube map reflections in some engines to be rendered in real time. This solves the issue of not showing dynamic elements like the player character, visual fx, and destruction, but it comes at a large cost. Real Time Reflections take a camera and render the scene twice projecting it live to a cube map (or other elements like a plane). This can look very good, but when you’re rendering an entire scene twice (even with at a significantly reduced resolution), you’re going to eventually hit a performance bottleneck.

Screen Space Reflections have been used frequently in games during this console generation. Unreal Engine added them into their Post Process Volumes in one of the early 4.x releases and Unity followed suit in an early 5.x release. If you watch any Digital Foundry Video, you’ll hear the team comment on Screen Space Reflections frequently. So, what are they?

Screen Space Reflections (SSR) is a technique where a number of the different render buffers used in deferred rendering (usually the depth, normal, specular, and albedo/base color passes) are used to calculate reflections. This step is usually done as a post process effect since it requires these buffers to have already been written before being used. Each game engine will have different permutations on how this is exactly done, but the general idea is the same.

A visual of the different render buffers used in my Unreal Scene: The Park Bench

SSR has a few benefits, including a relatively cheap performance cost compared to something like real time mapped reflections (planar, cube, or otherwise), and it usually give pretty solid results. Because it’s using the actual scene buffers to generate the reflections, they are fairly accurate as well.

SSR comes with downsides too, since nothing in life is ever 100% free. SSR is absolutely more expensive than using cube map reflections, making it less than desirable on low-end platforms or games that want to hit that 60 fps sweet spot on mid-range hardware. Visually, SSR can create some artifacts based on visual blockers, buffer resolutions (not all buffers necessarily render at the same resolution) and final output resolution. It’s biggest weakness however comes from the ‘disappearing reflection’ issue. SSR relies on information that’s being displayed to the player to generate reflections. If you have an object that should be seen in reflections that is offscreen or blocked by a larger object, SSR doesn’t know it’s there. This means that reflections at the edges of the viewing space are often inaccurate. Sometimes, this can cause what appears to be a slight gradient that tracks (follows the player camera) at the edges of the screen. There *should be a reflection there, but SSR doesn’t have information to fill that missing data in, so it just sort of falls off.

All of the reflection techniques described above can be used in conjunction with one another if the game engine supports it, or you can choose to rely on one specific method to increase performance or to reduce potential image quality issues.

Back to Resident Evil 2

RE2 (2019) makes heavy use of Screen Space Reflections. Many of the environments of the game feature reflective tiles, wet surfaces, water, and shiny metals. To really sell the grandeur of key areas of the game, and to have marble, water, and metal read clearly in an otherwise dark environment, the team appears to have leaned on cranking up the intensity of SSR.

SSR can look pretty convincing. In RE2, it looks a bit noisy and it can even detract slightly from the visual quality of the game, until you adjust.

It’s hard to notice at first glance, but look by the pillar and the dolly. See the almost straight lines?
Now that straight line, or box look, is by the chair. There isn’t enough information for SSR to resolve proper reflections in those areas.
SSR works very well in confined areas with highly reflective surfaces, like standing water.
If you look at the light, you can see artifacts. Likely and issue of resolution of the buffers used in RE2’s SSR implementation.
Here we see the ladder reflecting pretty accurately. Cube Maps likely would not reflect so sharply or accurately.

RE2 probably has limitations in it’s methodology of generating SSR. It could be that certain required buffers (depth, specular, or normal) are being rendered at half or quarter resolutions to maintain frame rate (the game runs at a roughly 40 fps or more on PS4). Perhaps there is an issue with how post-processing resolves the various AA methods in the game on PC with the current SSR implementation. Maybe it’s as simple as it not being the best implementation of the technique.

Either way, it’s still better than nothing but cube maps.

Not easy to tell here, but those light reflections on the door are cube maps. They track with the player, a sign of cube mapped reflections.
It’s just the demo, but reflection comparisons abound in this video.

Cube Maps can only hold so much data, and with a high number of maps needed at high resolutions to get accurate reflections, it’s not surprising to find Cube Map reflections that don’t look as good as those with added SSR.

Resident Evil 2 is a nearly perfect game

Reflections aside, RE2 is nearly flawless. Artistically, it’s a solid game. The design of the police station is true to the original while being updated to fit with modern game design philosophies and AAA quality expectations. Everything fits, it’s all (generally) logical, and something as simple as approaching the levels from alternative angles makes it feel fresh. Characters look great and they all animate smoothly, faces included (although the mods that let you crank them up to 1000 are hilarious). Texture work is uniformly great, with only a few resolution issues being noticeable upon closer inspection. Finally, the gore is outstanding. From the outset you can tell that this game is a feast for those who really enjoy gory horror films, and it doesn’t let up until the end.

Screen Space Reflections be damned (because they really aren’t important), Resident Evil 2 is a must play.

GUTS!

By taking the story-line of a classic and making subtle adjustments, combining it with modern 3rd-person action game design, and a focus on building tension for the player (hello, bullet-sponge enemies that never stop), Capcom has truly reinvented Resident Evil 2 as an experience for old and new players alike. Resident Evil is here to stay, indeed.

Mondays.

--

--