RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX


Heard on .NET Rocks!: Frank Savage on Programming the Xbox 360

Carl Franklin and Richard Campbell talk with Frank Savage about his work in gaming software in general, and the XNA Game Studio in particular.

arl Franklin: All right Richard, let's bring on Frank Savage. Frank started in the game development business at Origin Systems in 1991. His first game was Strike Commander, then he was the lead on Wing Commander III. He left Origin and went to work for FASA Interactive, or FASA, in Chicago, and did the first MechCommander game. FASA was acquired by Microsoft in 1999, and Frank finished MechCommander 2 at Microsoft in June 2001. At that point he left and went to work for Xbox just before the first Xbox launch. He worked for the Advanced Technology Group which helped game developers get the most out of the Xbox console. While working there, he began the first discussions around XNA and he was the third member of the dedicated XNA team as the development manager. And they've shipped their first release and are currently readying the second release for shipment even as we speak. Will you please welcome Frank Savage, superstar! How are you doing Frank?

Frank Savage: Good, how are you guys?

Carl Franklin: You probably realize how many fans you have, but you probably try to keep a low profile, don't you?

Frank Savage: Yeah, I hear every now and then, in the forums, someone says, "Oh it's that Frank Savage!" and then points out that I worked on Wing Commander III, or Strike Commander or one of the MechCommander games. They remember me from having worked in ATG. I worked with a lot of game development companies. While in the advanced technology group, on Xbox, helping them get their games up to speed, finding performance issues, doing all that kind of work to really help them get the most that they could out of a console and really get the performance that the console was capable of in the last generation. Didn't really do that a lot with the current generation, but I was pretty deeply involved in the hardware design for the current generation, which was fun as well.

Carl Franklin: I got to imagine that being you must be like trying to swat flies all day long. "Hey, Frank, tell me how to get the cheat code in Wing Commander2." "Hey Frank,…" You must be at conferences or whatever and you probably have swarms of geeks that just, want to know. Is that accurate?

Frank Savage: Yeah, that and my parents keep calling me for tech support and all that as well too, which didn't help either.

Richard Campbell: We are all up against that.

Frank Savage: Yeah, everybody.

Carl Franklin: Does your mother play Wing Commander?

Frank Savage: My mom is a huge gamer actually, which is surprising I think, both to her and me. She started out very much on PlayStation 1 and played a lot of games on PlayStation 1, Xbox came out, she got an Xbox, was a very early adopter of that, in fact would, well, even before that when Wing Commander III shipped, my mom would go the CompUSAs and stores like that and say that's my son and show that thing. So, they would give her all of the posters and all of the marketing stuff that we would send them. So, my mom at one point had a shrine to me in the bedroom, with all this Wing Commander III, MechCommander, and Strike Commander stuff that she had accumulated and my Origin Most Valuable Employee plaque was in the shrine, and the whole nine yards. So, it's a little bit harder now. Well it was a little bit harder until the XNA stuff started to really kick in, and because in the events technology group, we were helping a lot of games but I wasn't showing up in the credits for a lot of games and I couldn't tell her what games were coming out that were really cool, [and I] didn't really have that kind of exposure that I used to have.

Carl Franklin: So, have you come to terms with the moral implications of your job, which is that you are reducing the gene pool of geeks everywhere by keeping them glued to their computers, instead of going out to meet girls.

Frank Savage: Yeah, we are pretty active at that. But the cool part of this is that I am actually actively training my kids to be geeks, and they are making a lot of progress. My daughter is three-and-a-half, runs around doing Star Wars quotes and playing with her little Star Wars action figures and my son, who's just turned seven years old, has a couple of level 20 and level 30 characters in World of Warcraft already.

Richard Campbell: Oh, man!

Frank Savage: He's very nearly finished commanding Conquer 3, so he is pretty hardcore for a seven-year-old. He has his own laptop with the high-end video card in it, because he kept playing with mine and I can't get any work done at home. So, they are probably going to be where the Savage line ends because they are never going to get away from the computer.

Carl Franklin: That's what I'm thinking.

Frank Savage: But I have done at least what I could for this generation.

Carl Franklin: Good, good, good. Now, when you think of gaming, you don't usually think right after that, .NET?

Frank Savage: No, in general we found that, that wasn't the case but about two years ago, this started to change a little bit. When I was in the Advanced Technology Group, actually three years ago now, one of the things we found game developers starting to do, was we had just finished a thing called Managed DirectX and Managed DirectX was done by a single developer called Tom Miller, who actually now works on the XNA team.

Richard Campbell: Wow, one guy did Managed DirectX?

Frank Savage: Yes, one guy did Managed DirectX.

Carl Franklin: Now that man has no life.

Frank Savage: We made sure that he had no life for the first release of our product as well, which he is eternally thankful to me for, but the idea was with Managed DirectX, you could actually go and write some really cool, very fast duration Windows Tools, to do your game developments. You couldn't run .NET on Xbox or Xbox 360, but you could run it on Windows and you could build your tools for your game using Managed DirectX and using Windows Forms and things like that. You can get tools up and running very, very quickly. So, we began to evangelize this to game developers, and today, it's hard to find unmanaged tools in game development houses. Very nearly everything that we encounter is very .NET-y in terms of how they built the Windows interfaces and the tools and date editors and level editors and things like that for their game applications. It is very, very C#, .NET-oriented today.

Richard Campbell: Maybe we need to paint a better picture for folks who've never worked in the game industry about how game development has really been done up 'til now.

Frank Savage: Sure.

Richard Campbell: Sort of in-house, build-your-own-tools, everybody-is-a-C++-programmer kind of mentality.

Frank Savage: Exactly, so back in the day, it's hard to believe that I am saying that these days, but it's been 16 years since I started doing this. And 16 years ago, we were DOS with 16-bit Borland compilers. Games were extremely difficult to debug because you had different segments and offsets that are showing the same addresses is very easy to have. Uninitialized pointers that randomly pointed to a different area in memory. Things were harder by a large margin than they are today, and the tools were incredibly primitive. So, at that time, even though we starting to do 3D-based applications like Strike Commander and Wing Commander III, the tools for these were very much at that point CAD-based programs and they were designed to do very high polygon, very detailed, computer-aided design drawings, rather than very, very low polygon, barely textured 3D meshes that could be rendered in the technology at that time, because there were no 3D accelerators at that time. So, just getting those tools out with something that the game could use was nearly impossible and we wrote a lot of those tools ourselves. We had a 3D editor called EOR that we wrote for Strike Commander and for Wing Commander III and that tool required a very different mindset than the 3D modeler has today.

And because it was designed by programmers for programmers to make 3D art and not a 3D artist to make 3D art, it became very difficult to really understand what those guys needed because they themselves were so new to the business. It was hard to even figure out what would help them and what wouldn't. As we moved on the MechCommander style games, the tools got better and better and more and more of the 3D packages began to understand that these people needed low polygon models. Okay, great now, I have got the low polygon model, I still now have to build my terrain, I have to place all the buildings or I have to lay out all the corridors. I have to put the traps in the place. I have to the put the monsters down. I have got put some AI around the monsters. The doors have to open when I push the switch. The race cars all have to stay glued to the track. I have got to get real physics on to the tires. I got to put all the car data in; all the aerodynamic data; the track characteristics; what were the track characteristics when they're wet…

There is an enormous amount of data associated with games and the data entry for that used to be very "crack open Notepad and start typing." As time went on, the tools got more and more sophisticated to the point now where there are games that actively [have] SQL back ends to store all the data.

I have even heard that there are games that have actual SQL embedded in them, in order to be able to just create the database themselves and get the data out, because it's so big and so hard to figure out these days. So, games have gotten quite a bit bigger over time as well, when we started in the business.

Carl Franklin: In that process, in their earliest days, where you not only tech guys, but were you coming up with the stories and all the art work and all that stuff too? Or has it always been a collaboration between the creative people and the developers?

Frank Savage: When I first started in the business it was just starting to differentiate. The programmers used to do everything and in fact games, older games, had what was called—what's still called today—programmer art in them, and you'd look at them and go, wow, a programmer did that, because it was not so good. And the design of the game was very much a programmer-centric thing as well. Again, the programmers tended to be gamers so we knew what we liked to play in a game, but sometimes it was hard to map that to a very large audience. And so a game that had a very strong appeal to the programming staff that worked on it may not necessarily be a game that had a very strong appeal to a wide audience. As time went on, the roles began to differentiate somewhat, and there was a programming staff that was responsible for the implementation of the code. They became a design staff and the design staff was very much in charge of everything from the lowest level data entry, all the way up through the high level game design features like how the AI should behave, what the story was going to be, what did we want the player to feel at this point in the game, what was the flow of the story, does this happen, then this happened, how linear was it, how non-linear was it, where could they go off into the weeds and explore for a bit and then come back to the main plot and stuff like that. So all of that kind of stuff, it took a while for that to evolve into the design side.

And [then the next year there were] a whole bunch of dedicated artists and the dedicated artists started out as very 2D artists because the games were still very two dimensional even for the scripted portions. Like when we were telling the story in Strike Commander, it was all 2D art that was developed by 2D artists but then 3D artists became necessary as the games moved into polygonal models that were texture mapped and 3D hardware began to become more prevalent. The game got more and more art intensive on both the 2D and the 3D side. So, today, a typical game house has a couple of hundred artists working on a game, anywhere from 5 to 25 programmers working on it, and a design staff that is directly proportional to the amount of content that can actually be in the game. That can range anywhere from a dozen to again a couple of hundreds like the artists, so you are talking about something near the scale of like the World of Warcraft.

Carl Franklin: Now wasn't Wing Commander an Electronic Arts game at one time?

Frank Savage: Yes. Origin Systems was originally an independent game publishing company and they were acquired by Electronic Arts in 1992.

Carl Franklin: Okay. So when did FASA come into that?

Frank Savage: So, when I finished Wing Commander III, I was actively looking for something else to do, Chris Roberts's contract with Origin Systems was going to end in about a year with EA and he was going to go off and do his own thing. He wanted me to come with him and I was like, well, I have just finished this Wing Commander thing and kind of want to work on games more and you kind of want to go off and do Hollywood things and I am not sure that I want to do that. So I left Origin and went to FASA Interactive Technologies up in Chicago, and I was the eighth employee there. I was also the first technical employee, so I [had] one leg in the networking and emails and Windows servers and things like that, which was a very different role than making games.

Editor's Note: This article was first published in the September/October 2007 issue of CoDe Magazine, and is reprinted here by permission.

Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date