Living the Code of Honor

Nintendo Power: The Inside Zelda series has touched on aspects of Twilight Princess that you can see, hear, and play. But there’s a force that holds every one of the creative staff’s contributions together – and that’s programming. It’s like air: a game simply couldn’t exist without it. Game designers, graphic designers, and all the others who envision a game work with the programming wizards who put it into beautiful motion. We have Nintendo’s veteran programmer, Kazuaki Morita, to thank for bringing countless titles to life, and he’s been with the Legend of Zelda series since the very beginning. As he explains the art of programming in a way you’ve never heard before, Morita shares stories about some of the Zelda whoppers he’s pulled out of the water over the last 20 years.

Decoding the Programmer

The programming behind Nintendo’s games, and my own approach to it, has changed vastly since the mid 1980s. The first game that I programmed, Ice Climber, was my warm-up on the NES, then I dove into the fascinating task of working on the code for Super Mario Bros. And I had a real scare related to that project, which really taught me the importance of flawless code. Ever hear of the “unlimited Mario” cheat? The exact way to do it is a little complicated, but it involved the player setting up a scenario that allows Mario to bounce up and down on the same Koopa shell again and again and again. Points go up and up, leading to a steady flow of 1-Ups. I remember when we first heard about the cheat. We got a phone call from some kid, and Mr. Miyamoto and I both thought the call was a hoax – that such a thing was impossible! The programming was perfect… wasn’t it? Well, we verified that the cheat worked. Fortunately, very fortunately, the “unlimited Mario” cheat had a ton of PR value as word spread, because I sweated bullets over what might happen!

My humble beginnings in programming go way back before Ice Climber. When I was young, there was no school – at least, that I knew of that – where I could study computer programming. So I taught myself everything. In life, you never know what things from your past will turn out to be highly influential as you mature. I was excellent at basic math, but not good at highly conceptual abstract mathematics. That aptitude for concrete math probably guided my hand towards programming, which is all about making real stuff happen. And I also liked crafting things like action figures and (here’s where an early childhood fascination truly helped make history) fishing lures, since I also loved fishing. Maybe you can guess where I’m going with that, but I’ll get back to the water later.

When Nintendo made it’s shift from Super NES to the Nintendo 64, I needed to forget absolutely everything that I’d learned to make the jump from 2-D to 3-D programming. That’s easier said then done! Star Fox 64 was my first 3-D project. Lucky for me that Star Fox 64 was primarily about non-human objects like space fighters and tanks. It was a great opportunity for me to sink my teeth into 3-D programming, since I could learn a new way of thinking without tackling the far greater challenge of programming human characters, which would come soon enough for me after that!

But maybe I’ve gotten ahead of myself. Many people know that the programmer does [i]programming[/i], but what exactly does that mean? And how does the programmer work with a team of creative people, like the director, character designer, sound designer, and so on? Well, a programmer’s job is to program the ideas and designs created by the game’s designers. In other words, it’s our job to follow the blueprint laid down by the designers and actually build the building. Does that help?

Exactly how we do that has changed over the years at Nintendo. In the NES era, the designer and programmer would sit side by side, constantly discussing what the game design should be, and the programmer would actually try to program the design right there on the spot while the designer watched. Talk about flying by the seat of your pants! But these days, since projects are exponentially larger then they were back then, each creative team is much larger, and each job on a project requires many different people doing many different specialized tasks. Very different. These days, there’s no one way to go about programming. It really depends on the project.

The relationship between designers and programmers, figuratively speaking, is much like that between cooking ingredients and a cook. Designers supply the main ingredients; the programmers combine it into one dish, doing some seasoning along the way and then – voilà! – adding just that perfect final touch to make it all come together! In some cases, ingredients might already have a lot of seasoning before they get sent to the kitchen. In which case, the cook has to work even harder to preserve the special feeling of the ingredient, yet still make sure that it plays nicely with the other ingredients to make a superb dish. But each project involves a different amount of respecting the creative preseasoning and doing program seasoning. For example, when we programmed the Legend of Zelda: The Wind Waker, most elements of the game were already seasoned to an excellent level when they were delivered to us. On the other hand, a few things in Wind Waker – do you remember Puppet Ganon, the marionette creature in Ganon’s Tower? – were seasoned heavily during programming. Since I was heavily focused on enemy programming in the Wind Waker, I found a few ways to bring Puppet Ganon to life with just the right pinch of this and that!

Leaps and Bounds in Programming
Designers and programmers are collaborating heavily on the Twilight Princess project. We had many early discussions, and we continue to evolve our approach. While this title has been called “the realistic Zelda” by some fans, it isn’t only striving for visual realism. Realism is trendy in the industry, but Twilight Princess has far greater ambitions than to simply be known as realistic. Though I can’t discuss new details, from a programmer’s perspective, I can shed light on a few things. As you know, the game does involve a light world and a dark world. Because we are doing so many surprisingly new things, there’s lots of room for us programmers to get into there and preserve the distinct flavor of each world while experimenting a lot with the final seasoning. Oh, it pains me to tell you nothing more specific! But, believe me, what you’ll see will be unlike anything you’ve ever tasted in gaming. Well, here’s something I can say: as I continue to help the most unbelievable images come to life in the game, I keep seeing the data size grow tremendously. It’s one extraordinarily huge game from a programming perspective!

Speaking of other ground-breaking games, I still fondly recall how games like Doki Doki Panic – the foundation for Super Mario Bros. 2 in America – really stimulated my imagination as a game programmer. That game was released for the Famicom Disk System in Japan, which – back in the day – was a truly fascinating system from a programming point of view. Of course, disk systems are common now, but then we were just exploring how the disk worked as an immense memory reservoir, which let me toy with many programming methods that I couldn’t do with a ROM. Working with my design partner, and getting very little guidance from others, we developed Doki Doki Panic in ways that really pushed my skills. I really matured as a programming during that time. Very interesting work.

Fishing For Zelda History
Now here’s something from gaming history you probably don’t know. Right after I finished work on Super Mario Bros for the NES, I dove right into development of the very first Legend of Zelda game. Some of Mr. Miyamoto’s early direction explored some features of the game using a microphone to do things like beating enemies by making sounds into the mic. Though we ultimately didn’t employ mic control into the game, working with the possibility opened my mind. The programming itself wasn’t a huge challenge, since the sound system was already in the hardware specs, but what blew my mind was how Mr. Miyamoto thought up such innovative ideas so effortlessly.

Here’s something else from gaming history you don’t know. Ocarina of Time was an unforgettable project for everyone involved, of course. But one of my biggest memories – oh, I really shouldn’t say anything about this! – was how I developed alopecia aerate near the end of the project. That is, I lost big chunks of my hair! I’ve always been the kind of guy that thinks that work should be fun. I never feel stress, so I thought. My hair told me differently, since the stress condition made more and more hair fall off my head every day. I tried to cover it up by wearing a cap, but that stressed me out even more. After awhile, I simply decided not to worry about my hair falling out. And, just that easy, it stopped happening. How many people have that kind of memory about Ocarina?

Now I promised that I would talk about fishing. Like I said before, I loved fishing as a kid and it remains my favorite hobby today. It’s no coincidence that fishing has become a big part of Zelda games. Recall the fishing zone in Ocarina? That was a programming project that I worked on secretly behind the scenes and surprised the development team with. Fortunately, they really liked it, so the fishing zone made it into the game! Actually, there are several people on our team that like fishing as much as I do, and we get away once each year for a big fishing camp. No surprise, then, that Nintendo has previously said that fishing gameplay will make a return in Twilight Princess. Of course, the first Zelda game that featured fishing was Link’s Awakening on the Game Boy. That happened during a short period of downtime after the massive Link to the Past project ended in the early 90s. I wanted to learn how to program for the Game Boy, and I did a lot of experiments. Once I started, I discovered that Game Boy programming was quite sophisticated, yet very accessible. Far beyond our original expectations, we did so many wonderful things with our experiments that we decided to reconceive it all as part of a Zelda game for the Game Boy.

Looking back, I’m very fortunate to have been one of the main programmers working on almost every Zelda game in the series since it first began, since my programming has helped make Zelda such a part of history. Now it’s interesting to see how things have changed. While I used to do all of the programming for NES games, now I supervise a whole programming team, though I still do code myself, too, since I believe that staying very close to the art of programming is extremely important. Sometimes I feel myself thinking – when I see what some of the newer faces around Nintendo are conceiving – that such-and-such concept isn’t true Zelda! Listen to me! I have 20 years of experience here! But, really, having the fresh thoughts of young talents working on Twilight Princess has opened my eyes, and that makes me remember those first days working with Mr. Miyamoto on the first Zelda. It’s always essential to keep your mind open and learn from new ideas. I’ve known Mr. Miyamoto for many, many years. It’s fascinating to watch him work now. On the surface, he looks like a perfectly pleasant middle-aged guy. But watch him make decisions! His words are extremely precise. His explanations carry a lot of weight. I never fail to be impressed by how he helps people grow and learn about game development. Which brings us back to Twilight Princess. As I prepare to cook in the kitchen, I’m seeing extraordinary ingredients coming my way. If our programmers can bring all of these flavors together, and with our helps also add a touch of light world zest and dark world grit as needed, you can bet that Twilight Princess will be the kind of memorable dish that will live up to the entire history of Zelda.