Nice to meet you, I’m Tetsuro Noda, Lead Programmer for Metal Gear Rising: Revengeance.
When making a game, game designers (particularly the director) bring ideas to artists, who turn these ideas into materials for the game. The programmer’s role in development is to take these materials and, following the game designers’ plans, structure them into the game.
At a glance, the seeming complexity of stringing together a lot of operations and formulas may have a few of you thinking, “Wow! Programmers are pretty neat!” The real work we do, however, isn’t really as complex as you’d make it out to be. Some of the stuff that we do does require some critical thinking, but it’s not like every programmer does nothing but intense coding all the time. I’m not good at any of that complicated stuff myself, so I just toss it to other programmers on the team.
Then there might be some of you who think we all just pound away at our keyboards all day in complete silence, but feel free to remove that thought from your head. In reality, that would slow things down more than it would be helpful.
So we don’t do a lot of complex of work and we don’t live in front of our keyboards. “Then what do you do?!” would be the next logical question. Like I mentioned above, our job is to take what the artists give us and put it into the game, following the game designers’ guidelines, but we only follow these guidelines closely, not exactly. It wouldn’t be as interesting if we just worked in everything as we’re told, without adding our own touch. (But I don’t want you to make the mistake that all we do is protest everything the director asks of us… The director’s ideas form the base; we simply rework some of the details.) Still, as we are changing things on our own, we have to explain ourselves to the game designers and artists pretty often. Sometimes we even have to try and stand our ground against game designers and artists that pull a lot more weight than we do. Every now and then you can see droopy-headed programmers returning to their seats after losing a dispute.
But I digress… The alpha and omega of Metal Gear Rising, the ability to cut through enemies at any point and angle, was also responsible for giving a few programmers a heap of trouble. I’ve asked two of them to speak about that here, so let’s see what they have to say.
Our first guest is Takashi Wagatsuma, who programmed Blade Mode:
Takashi Wagatsuma and Programming Blade Mode
The guidelines I received for Blade Mode were touched upon in the director’s blog entry, but to go over them again, they were as follows:
Have a heavy focus on response, allowing the player to shred the enemy to pieces with their katana.
Let the player be able to carefully adjust the positioning and angle at which they want to cut.
Give enemies a weak point that, when cut by the player, gives the player a chance steal energy from the area they cut (a.k.a. “Zandatsu).
Actualizing these requests involved some heated discussion among the team and a lot of trial and error. For example:
-How the left and right sticks should be used to control character movement, camera movement, and the angle and positioning of your katana.
-Should strikes in Blade Mode follow after the player’s motions, or should they be focused on camera direction?
-When entering Blade Mode, should the camera angle shift to where the player is facing, or to focus on the enemy? Or should it not shift at all?
-When the player uses Blade Mode to cut several things successively, in order to not overstrain the game’s system, what minimum amount of time do we need to allow between strikes?
Etc., etc.
The controls we settled on were as follows:
The right stick in Blade Mode is used to rotate the angle at which Raiden will cut, while the left stick is used to adjust where Raiden is facing and the cut’s elevation. Using both sticks allows the player complete control over where to slice their sword.
Bringing the stick from the outside to the center (by releasing your hold) will cause Raiden to slice across the line appearing on the screen. Moving the stick in a direct line will cause Raiden to slice after a certain distance has been input; the □ and △ (X and Y for 360) will cause horizontal and vertical strikes, respectively.
When the player enters Blade Mode, we wanted our priorities to be on letting the player swiftly cut where they aim. To do this, we made sure the first strike in Blade Mode always follows the path displayed by the line on the player’s screen.
Furthermore, pushing down on the left stick while in Blade Mode will cause the camera to stay fixed in position and enable the player to move Raiden.
Multiple strikes don’t require line direction input to pass through the center of the stick; moving the stick in directions slightly off center will still cause Raiden to slice.
Decisions such as where the camera should go when the player enters Blade Mode caused arguments that continued on into the final stages of development. Several different views existed on how Blade Mode should work, and determining what to adopt into the system proved to be a tremendous task.
Well? I think you can surmise from his tone that he’s lost his share of disputes. What he wrote, though, is what really goes on, and by having these disagreements over and over, eventually we end up with something a lot more interesting than we had before.
I feel sorry for the battle scars he had to endure along the way, but I believe you’ll be able to see the results of his efforts when you play the game and experience how thoroughly developed Blade Mode really is.
Our second guest is a system programmer, Tsuyoshi Odera. Odera-san is behind Rising’s concept of being able to cut any part of an enemy. His involvement is a little different from Wagatsuma-san’s; while Wagatsuma-san stays out in the open, Odera-san works more behind the scenes. Odera-san might be close to everyone’s idea of what a programmer is.
A Programmer/Dismembering Specialist: Tsuyoshi Odera.
Metal Gear Rising: Revengeance uses PlatinumGames’ own game engine. At first, our engine wasn’t capable of doing something like cutting through an opponent anywhere, so I had to make it so that it could. I looked at official trailers and other game data from Metal Gear Solid: Rising and tried to make our engine fit with what I saw.
I assumed it wouldn’t be so difficult implementing this concept into the system, and in actuality it only took around three months until we were able to make objects that could be cut. Just implementing the concept, however, doesn’t make it a game. This freedom to cut anywhere turned out to use an amount of memory far greater than any other processes in the system. In order to implement the concept into the game smoothly, we adjusted the process so it would be distributed over multiple frames. We calculated the speed at which Raiden swings his sword and made sure the process would be finished before the end of the swing, and it would feel right to the player. This, along with a few other techniques, helped us to create a kind of cutting freedom that players haven’t often been able to experience in other action games until now.
The way he writes just screams “programmer!” Don’t you think? It’s probably that cool, stoic tone he has. Contradictory to the cool guy he’s trying to play off here, however, he clashed opinions with other members of the team quite frequently. I can still remember him yelling “You can’t cut that much!”and “You can’t cut that off!” and “You’re cutting too much!!” The memories.
Thank you for your time, you two!
If we were to introduce any other programmers in here, I’m sure they’d sound more or less the same: plenty of stories about the all out warfare disagreements that happen around the office. I’ve heard enough cries of “What…?!” and “You can’t actually expect me to do that…!” for two lifetimes.
Sorry! Think I wrote a little too much. Thanks for reading everything. When Rising is released, be sure to take a moment of silence for everyone on our team who died so that you could play it (aside: no one actually died).