The Architecture of Gaming: Nintendovember Afterword
When I posted my analysis of the first three Legend of Zelda games, fellow Gaming Symmetry writer David “BGH” Kempe left a comment with a link to this installment of Iwata Asks, in which Nintendo president Satoru Iwata discusses the development of The Legend of Zelda: Link’s Awakening with Toshihiko Nakago, Takashi Tezuka, and Eiji Aonuma. More relevant however was the “bonus” material, where they rediscover some of Shigeru Miyamoto’s early sketches from 1985 and reminisce about the development of The Legend of Zelda and Super Mario Bros. Not only was it a fascinating read, but it also opened my eyes to how large an influence that the NES’s (or rather, the Famicom’s) limited memory capabilities had on the level design of several classic games. So this week, I’d like to take some time to analyze the constraints that the NES hardware placed on three of the games I’ve discussed recently, as well as some of the ways that the developers worked around these limitations.
Super Mario Bros.
In my article about the origins of the Super Mario Bros. series, I mentioned that level 2-3 of the original game (aka the “Cheep-Cheep bridge” level) was repeated as level 7-3 with more enemies. But it turns out that 2-3 isn’t the only level that got recycled. The first water level in the game, 2-2, got copy-pasted to create 7-2. Level 1-3, with its distinctive T-shaped platforms was cloned for level 5-3. Not even the Bowser castles were safe from this treatment: 5-4 is just 2-4 with some extra firebars.
From top to bottom: 1-3, 5-3, 2-2, 7-2, 2-3, 7-3, 2-4, 5-4
This was actually a time-saving maneuver as much as a memory-saving one. The story is that Shigeru Miyamoto approached Toshihiro Nakago, the personnel lead, with diagrams for five worlds of four levels each. After Nakago confirmed that the design would be plausible, Miyamoto, ever the ambitious one, revealed his plans for three extra worlds. However, the twelve additional levels all used the same geographic layout as previous levels, albeit with more enemies. Since that wouldn’t be very time-consuming to program, and the additional memory requirement would be negligible, Nakago and his team had little problem making an eight-world game instead of a five-world one.
I only notice one world’s worth of carbon copy levels in the finished game, so presumably Miyamoto et al found time to design some more completely original levels, but the levels pictured above are a great example of the way Nintendo was able to use ingenuity to make the most out of third-generation technology.
The Legend of Zelda
Among the development sketches that were revealed during that installment of Ask Iwata were designs for the original Legend of Zelda game. In particular, a map of the dungeons made something very obvious to me that I’m surprised I hadn’t noticed before: all of the dungeons fit together like pieces of a jigsaw puzzle. Again, this makes the most of the small amount of memory in an NES cartridge (although, as LoZ is a flip-screen game, screen warps and tile warps arguably could allow them to arrange the dungeons however they wished). I could show you a picture of the sketch showing the interlocking dungeons, but I can do you one better. Here are the actual dungeons from the game pieced together.
As always, you can click to see the full-sized image.
In fact, Takashi Tezuka was perhaps too good at making the most of the available resources. Once the game was finished, Toshihiro Nakago realized that Tezuka had mistakenly used only half of the allotted memory. Not wanting to let the rest of the memory go to waste, but not wanting to add to the main game that Miyamoto had said felt “just right,” Tezuka designed the now-famous Second Quest, essentially an entirely new game with the same controls and items, but a more difficult layout. Again, all of the dungeons fit together like a complicated Tangram set.
I had to darken some of the dungeons that would otherwise be adjacent to dungeons of an identical color.
In my Metroid article, I briefly touched on why so many areas of the original Metroid game look the same, but it really deserves a more thorough explanation. The game uses a grid to determine your position on the map. Each space on the grid is assigned a two-digit hexadecimal value, and the game uses these values to determine what room to load. For example, if there was a section of grid that looked like this…
…and the map data looked like this…
…the final map would look like this.
This is actually part of Kraid’s Hideout.
This method of loading the map means that each unique screen only needs to exist in the game code once. This is the same way that file compression programs work – redundant bits of data are each assigned a value and replaced with their respective values to make the code shorter. Of course, as much as I dislike the original Metroid’s cut-and-paste environments, it’s only fair to point out that this is most likely not due to laziness on the part of the creators. When the same team had access to the SNES’s superior technology, the result, Super Metroid only featured a small handful of repeated rooms, and each was included deliberately as an artistic decision.
It’s also worth pointing out that this “numbered grid” system goes down several levels, kind of like the dreams in Inception. The biggest grid determines which screen to load next, but each individual screen is itself a grid built with various structures. Each of those structures is built with 2×2 byte blocks, and each byte consists of an 8×8 pixel square. For an even more thorough explanation on how Metroid loads level data, feel free to check out this link.
Heinz-Otto Peitgen would be proud.
Hopefully this brief revisiting of games I’ve already covered didn’t seem superfluous. But now, it’s about time I took a vacation of sorts from Nintendo games.