Kazunobu Uehara
                    main programmer


key:
White = Uehara
Red = Interviewer


Could you briefly introduce yourself, please?
I entered in 1993 and took charge of the 3D programming for the PlayStation and Saturn version of Policenauts. I joined Konami Japan at the start of the Metal Gear Solid project and at the moment I am senior programmer in charge of the programming section.

Do the programmers all have individual responsibilities or do they all work together?
Overall, their tasks are divided up. I'm in charge of the overall system. Another is in charge of just Snake. Another deals just with enemy soldiers. One more supervises all the demos. The remaining two are in charge of effects, etc. With regards to the bosses, everyone except for me is in charge of one boss. As system supervisor, I basically deal with maintenance of the subroutines that everyone uses, and also the file system as well.

During the development, what input did the programmers have on the design of MGS?
First of all, Mr. Kojima told us what kind of game he wanted to create. From there we actually experimented with the program to find out how much we could actually achieve. We then all discussed the results and once we'd decided what we could actually do, the designers started. It's the same for the motion as well. If we told them that we couldn't do it, they would get angry and order us to it [laughs]. Obviously there were some things that we really couldn't do. However, occasionally there were things that, even though at first we thought we couldn't do, eventually we manged to end up doing somehow. On the other hand, there were times when we could actually do more than they asked us for, so we would suggest extra features to them.

How much memory were you working with for the program?
We had a lot of trouble with the memory. There's only one megabyte, and there were many times when we couldn't get everything in. About twice, everything just exploded [laugh]. The first time we coulnd't get everything in we had to do some research on the motion data to make it smaller. Then six months later it happened again, so we had to try a different approach. The program size is different for each stage, but in total it's about 700k, the data is about 400k, textures are around 200-300k, the sound is 120k, the speech is 100k.

Did you have to develop any special compression techniques?
Yes, we did. In particular there is a lot of motion in the game. Snake's motion alone takes up about 150k. On top of that we also have the enemy motion and the motion of the special events in each stage. In the beginning, the motion for only Snake managed to completely fill the memory, so we had to research some compression algorithms to get it all into the PlayStation's memory.

Did you use the standard PlayStation software libraries?
We have to use Sony's software libraries because they don't like programmers accessing the hardware directly. However, there are different levels within the libraries themselves. The low-level libraries access the hardware directly, while the high-level libraries are more developer friendly and do a lot of the work for you. We are only using the lowest level libraries possible. We created all the libraries above them ourselves.

Did you plan to use two CD's from the start?
At first it was Mr. Kojima's plan to use just one CD, and right up to the end we thought that we could get it all on, but when we added the voice data as well, it far exceeded the limits of just one. So we had no choice other than to use two. The program data isn't that much, but the stage data is around 100 megabytes and the demo data is about 500 megabytes.

Did you use different 3D models to represent each of the viewing modes?
To tell the truth, no we didn't. It's exactly the same model. all we do is change the camera angle. In other games like Tomb Raider they fade the view to black so that distant objects can't be seen, but in MGS we don't do this, we calculate everything. This means that it slows down a little in the behind view, but because you never run around in this mode you wouldn't notice it.

How hard are you pushing the CPU?
It depends on each stage and the characters present, but on average the CPU is running at around 70 to 80% of its maximum performance. OF course, most of the CPU management is used to handle the graphics, that's about 95% of the CPU's time. Enemy AI calculation only takes up about 1 to 2%. The most processor intensive activity is checking Snake's visibility. We have to see whether Snake can be seen or heard by any of the guards and cameras, so we have to check Snake's position in relationship to all the walls, etc., to see whether there's a clear line of sight or not. That takes up about 2 to 3% of the CPU.

What parts of the game would you say you are most proud of?
I'm especially pleased with the speed of the rendering engine, the fast response of the game and the ease with which you can operate the game. We've been able to create a great game that you can play without getting all stressed.