Real Stories of Simulation Development Page 2

Back to Page 1


Fleet Defender

Fleet Defender box

Well after a few more games Coin-Op was closed. Mike McDonald and I were picked up by Andy Hollis and the guys working on Fleet Defender. It was a little quiet when we first started since most of them went on a field trip to crawl around on a carrier. Since we were the new guys we understood not being able to go but it would have been cool. Soon after that Andy left to work for Origin and set up the Austin Skunkworks part of Jane’s/EA. Mike and I joked with each other that if it had only happened a little earlier one of us might have gotten to go on the carrier instead. Of course Andy hiring us later on for the Jane’s thing more than made up for that. 😉

Part of the plan with Fleet Defender was to really improve the dogfighting AI since that hadn’t changed much over the last few games. This was really a dream shot for me because I had wanted to make various improvements to the AI since playing F-19 in college. I bumped the maximum number of planes that could be active from 8 (with only 4 of those being enemy) to 70 and all planes would be active in the game from the beginning unless the spawning made sense, like planes taking off from a runway after the game had been running for a bit. (Note:  I think I’ve mentioned 80 planes in the past but looking at screen shots in the strategy guide of the mission builder I can see a limit of 70 planes, 60 ground target, 40 paths, 85 waypoints and 130 actions.)

This was a pretty drastic change which caused some concerns eventually leading to another programmer stopping by to tell me all the AI stuff going on was hurting the framerate. I told him I had been trying to be really careful about that but we could take a look at it. Luckily I had set up a key to pause just the AI activity so I could test things. Bring up a mission with a bunch of AIs I showed him what the rate was and then hit the key and the number didn’t change. He agreed it wasn’t me and after that people weren’t as worried.

The graphics engine was another area where there were some great improvements. Between F-15 III and FD, Scott Spanburg added texture mapping and tiled textured terrain. Also he and John Paquin, who was working on the Pacific Air War graphics engine, were trading information back in forth. John had come up with a really cool system where planes could fly apart when destroyed. I remember hearing some questions about trying to bring it over to FD but people pointed out that since FD was coming out first and the PAW group got it working it wouldn’t be right to steal their thunder. I thought that was a proper decision.

During development Mike had been working with the artists for things like the cockpit, cockpit functionality and also the sunrises and sunsets (which would get lots of compliments). Along the way there were a few hiccups. One of which dealt with color cycling. We were limited to a palette of 256 colors. For effects like the afterburner, fires, the sunrises/set and other things that needed shifting colors over time a part of the palette was reserved for color cycling. Using these colors for things that needed a steady color, like the cockpit, was a “bad idea”. Still, one of the artists would keep forgetting about this restriction and use those colors. The way Mike got around this was when he’d get a new cockpit he’d change all the color cycling colors to hot pink. If anything showed up hot pink he’d go find the guy who had used the colors and have them change it.

Another time Ned was trying to get the analog clock in the cockpit to match the digital readout. At first he thought it was some issue with the trig for the hands but then realized that the clock had the wrong number of hours. When I first heard about it from Mike I remember it being something like 13 and a half hours though I’ve forgotten how the half came about. So Ned grabbed the art director and went over and asked the artist how many hours are there in a day. Without looking up he answered, “On what planet?”. Ned’s eyebrows shot up, he looked at the art director and after a moment said, “Well – I guess that explains it!” and left. Eventually he got a clock for our planet.

Another little oops took place in a newsletter. It might have been just an in-house one so it wasn’t much of an issue. Still, the term, “super destroyer Nimitz” did have us shaking our heads.

One thing that Mike remembers happened after one of the times we merged code. He was working on the meatball and as he’s coming around the final turn of the pattern he’s noticing a puff of smoke from the deck of the carrier. Then he realizes there are tracers coming at him from the carrier and they completely shred him on his approach. We were sharing an office next to Sid’s at the time and he looks over to me and asks, “You just added the carrier defense AI?”…. “Yep“…. “Thanks.”

Speaking of merging code this was a time before automated merge tools or if they existed we didn’t have them. Mike and I had a ritual every time we merged code. We’d put a copy of both versions of a file on one of our computers, open them up and toggle between each one. We went back and forth looking for differences. Toggle, toggle…  Toggle, toggle…. Page down. Toggle, toggle… oops, there’s a difference. When we’d spot differences we’d figure out what needed to be copied over and then we’d line up the code again after the changes so we could get back to comparing things. Not the most efficient method and sometimes we missed things. Generally we tried to avoid working on the same files but even though we were working on different systems this was legacy code so things had evolved over time and sometimes working on the same file couldn’t be avoided.

Here’s something I had put out of my mind. FD, like every other game I worked on during my first 10 years, had its share of overtime. I can’t remember exactly how bad it was, it’s been overshadowed by a couple of games since then, but I definitely worked my fair share. Actually I might have done a bit more than that since when we finished Scott kicked me out of the building and told me in no uncertain terms that he didn’t want to see me for a week. This caught me off guard and it took me a moment to catch up and realize he wasn’t joking but I finally clued in and wasn’t going to argue.

So I went home and tried to relax… and couldn’t. My brain kept trying to tell me I should be working on something, anything, and it just couldn’t figure out what. I think I paced around my apartment for a while. It was a really weird sensation. I had been working at full throttle and focused for so long that I couldn’t remember how to let go. Actually it was more than that. It had been momentum which had allowed me to keep going for so long. During that crunch I couldn’t let go, I couldn’t relax, because if I did it would be like stumbling during a marathon where you might never get your pace back causing you to lose the race and others were counting on me to finish that race. This sort of pause would actually be a problem during JF/A-18. It was a horrible feeling, which I’m sure others have had as well, and one I’ve tried to avoid since then. Still, we did get the game out and I was proud of what we accomplished so that helped.

Below is a picture of the team from the ship party followed by a picture of one of the awards we got and my plane.

Part of the FD development team from ship party. Back row L to R- Max Remington, Scott Spanburg, Ned Way, Vaughn Thomas, David Ginsburg, Michael McDonald, Jim McConkey, Christopher Clark. Front row L to R- Carl Knoch, Scott Elson, Terrence Hodge, Lawrence Russell

Part of the FD development team from ship party.
Back row L to R: Max Remington, Scott Spanburg, Ned Way, Vaughn Thomas, David Ginsburg, Michael McDonald, Jim McConkey, Christopher Clark. Front row L to R: Carl Knoch, Scott Elson, Terrence Hodge, Lawrence Russell

One of the awards Fleet Defender won and my plane from the ship party.

One of the awards Fleet Defender won and my plane from the ship party.

With the game out reviews and stories started showing up on the net. Quentin, who was in charge of our BBS, would pass along stuff he thought we might find interesting. I remember two stories in particular. The first one dealt with someone closing in on one of the Soviet bombers. I think it was a TU-95 Bear but we also had Badgers so I’m not 100% on this. He was coming up from behind for a guns kill when suddenly he’s taking damage and realizes that bullets are coming from the back of the bomber. I can’t remember if he got shot down, I just remember that afterwards he went and checked if the bomber had a rear turret. It did and we modeled it which he thought was really cool.

The other story had a pilot heading back to his carrier. For some reason, probably being damaged, Winchester (out of ammo) or both, he couldn’t go offensive and had some bandits closing from behind. At any moment he was expecting the TEWS to go off letting him know that he had missiles coming after him. Suddenly something goes flying past his cockpit heading back the direction he just came. From the trail he realizes it was a missile and soon after it was followed by the F-14 that had fired it. One of the CAPs protecting the carrier had been vectored to intercept the incoming bandits and had saved his tail. It definitely wasn’t just you against the world any longer.

Another thing we found out from the web was what problems people were having. We’d try to test things as best we could but there were only so many combinations of systems we could try. We’d also run into people having systems a lot more powerful than we had. Around the time of this release the first Pentium chips started coming out. These caused an unexpected issue for us. Before the Pentium chips float point operations were a lot more expensive to perform unless you had a math coprocessor. Excluding graphics and the Player’s flight model everything else in the game used integer math. If we needed more precision, like the AI flight model needing a heading with more than 360 segments, then other methods needed to be employed. In the heading case we used the full 0xFFFF so North was 0x0000, East 0x4000, South 0x8000 and West 0xC000. We also did a lot with bit shifting and masking when possible. The problem with the Pentiums was that they ran a lot faster than we thought possible. We were happy with framerates around 12 fps. In the takeoff code some value was increased by 30 “somethings” a second. I forget what the exact thing was. Well the framerate was getting above 30 fps which 30 divided by some number greater than 30 is less than 1 which in integer math is 0. This meant the planes would never finish taking off and just flying along at a level altitude away from the carrier. To get around this we capped the framerate to something around 15 and added a key sequence so it could go up to 30. While we thought had fixed all the problems with framerates up to 30, we didn’t want to put out a patch that still didn’t work if we missed something.

Now while we were working on Fleet Defender another very important thing happened at MicroProse. Bill had a vision of making MicroProse a hundred million dollar a year company. We heard of this desire a number of times and were all excited by it. I think there might have been in a little too much of a rush to get there though with the company becoming involved in a number of new genres and systems. The diversification was probably a wise thing to do but a bunch of these started out around the same time. Actually, thinking about it more, the influx of cash when the company went public probably influenced this. Well when some of these projects shipped I guess their numbers didn’t match the projections. There might have been other factors as well, I wasn’t on the business side of things so wasn’t privy to a lot of stuff, but for whatever reason MicroProse found itself hurting for money.

One clue we had was when we’d start running low on supplies. This was particularly noticeable in the bathrooms. These came out of petty cash and that had the lowest priority. I forget what other clues there were but one Friday Mike and I were discussing if we should start taking our personal books, posters, toys, etc. home that night so we didn’t lose our stuff if the company shut down.

This turned out to be the day that the merger with Spectrum Holobyte went through. We later heard that if it hadn’t there were people by the front doors ready to chain them up. When I mention this to Max though he said he thinks we still had a couple more options and that there were a few different opinions on how close we had gotten.

So the merger goes through and Steve Race becomes the new head of the company and he comes out to Hunt Valley to talk with us. Now, as I had mentioned before, there had been a vision of MicroProse becoming a hundred million dollar a year company. Well after all we had been through that had become a bit of a sore point and supposedly people had told Steve to not say it. I’ll give him this much, he didn’t. Nope, he said he saw MicroProse becoming a two hundred million a year company. We were stunned. I think a lot of people didn’t feel that boded well for the future. The funny thing is that a for a time after that is when some of our bigger selling titles for that period came out while a number of Spectrum’s titles slipped.

As you may know, there had been a bit of a rivalry between our two companies before this and some habits die hard. Now I’m not sure if it’s still the case but there had been a sort of gentlemen’s agreement about not badmouthing another company’s product in public. There were exceptions though and one of the guys from Spectrum started taking shots atFleet Defender on the forums. Well this got noticed pretty quickly with people wondering what the heck was going on. Eventually apologies and a big box of candy was set from Spectrum and we joked and put it behind us. Until it happened again. Some jokes were made about what would they send us this time but instead Gilman sent out an email reminding people that we’re all one company and to knock it off or there would be consequences. That put an end to such problems.

While a bunch of the team went to work on another project I was slated for the scenario disk. This included adding a graphical mission builder and new theaters and campaigns. There was another group that was working on the “Gold” version which was a bunch of multimedia stuff and a Windows front end, as well as the original game and the scenario disk. I think I was the only person on the scenario disk full time though one of the artists might have been also.

Ned was another programmer that worked on the project. He was a great help but he added one complication to the schedule. His wife was expecting their first child and she was due about the time he was supposed to finish up his part of the game. Fortunately the baby decided not to come early so it all worked out though I think Ned snuck in a few times to fix some bugs. I definitely felt a lot of gratitude for baby not being in a rush.

One of the things I had to do for the scenario disk was create all the missions. George Wargo, our consultant who was an F-15 pilot, gave me a great head start by creating the mission tree with the basic mission description. He had consulted on F-15 III and so was familiar with game development and working with the team which was a big advantage and while his background was with the Air Force a lot of stuff was the same. He had also done some exchange time with the Navy so had direct insights as well. I remember him telling me that the first time he was standing with the LSOs on a carrier watching planes land he had a very strong urge to throw himself into the safety net/escape area they have because he was sure the plane was heading right for them. I really enjoyed working with George. He taught me a lot and caught a bunch of stuff the rest of us would have missed.

Anyway, back to the missions. Since we were going to include a mission builder with the scenario disk I got that working first. In the original game the missions were created with a text file which made things much harder since it was difficult get a feel for the overall picture and easy to miss when you mistyped something. In both cases though we’d come up with a template that would have air defenses and possibly some default CAPs that we could use as a basis for each mission. Remember this trick; we’ll come back to it later.

One week I set myself a goal of trying to do all the Korean campaigns in 5 days (might have been just one campaign but I’m pretty sure the goal was all). Not in a finished/ship it state but good enough that hopefully QA would just want some tweaks. I remember thinking this was a bit nuts but something like the pending baby arrival probably encouraged it. Each campaign had about 14-15 missions with different ways you could get to them. This meant about 45 missions. Doing 15+ hour days this meant I could average about 1½ to 2 hours per mission if I wanted to be done by Friday. This included flying the missions to see if they were fun which a lot worked on the first try but there were definitely a few I had to do multiple passes on.

So Friday afternoon has hit. It’s late enough most people have left. I’ve been cranking hard but my goal is in sight. Just a little bit more and I can call it a night and go home. Then my phone rings. I pick it up and I don’t recognize the voice on the other side. It turns out that someone from Thrustmaster had given a customer my phone number for tech support to get their joystick to work with Fleet Defender. This wasn’t the first time this had happened and I wasn’t overly happy about it. Still, as far as I knew, there wasn’t anyone around that I could transfer them to.

Trying to do the right thing I do what I can to help him. I think he was trying to get the key mapping for the joystick to load. The Thrustmaster guys should have been able to help him with this but whatever. I also knew there was a typo in the first line of one of the profiles if you didn’t have the patch so I figured it couldn’t hurt to fix that until he could get a copy of the patch. This turned out to be a bad idea. Now remember that I’m rather fried at the moment and really want to be finishing what I was doing so I could go home. Having a conversation along these lines was not putting me in a happy place:

OK, I want you to go to your Fleet Defender directory and open up the profile file….”

No, that’s OK. I understand this isn’t something you’re used to doing. I want you to type cd <space>…”

No, not the word ‘space’, I meant put a space using the space bar after you type ‘cd’….”

You can guess how the rest of the conversation went but I was able to get him up and running and was even able to finish up the campaign. The next week though I made sure to request that Thrustmaster never gave out my number again and this time I think it stuck.

Now one of the benefits of doing Fleet Defender was that it introduced us to Chris “CJ” Martin who would eventually become part of the Jane’s team. At the time he was working at the Patuxent River Naval Air Station. He was able to get some of our guys in to fly on the flight simulators they had there. I wasn’t part of the first group but did get to go the second time. Before I went down Mike said he had something he wanted me to do. In their sim there’s a bridge and nobody in the first group had been able to fly under it without crashing. Scott had actually done it but pulled back too hard and broke the plane. Mike not only wanted me fly under the bridge but he wanted me in full burner and inverted. I told him I’d try.

There were three simulators that I remember. The first was a big full motion area where they could roll in different cockpits depending on the aircraft being simulated. The second was projected on a Mylar dome. The dome was kept up by static electricity so you had to be careful not to touch it otherwise it could cause it to pull away from the wall and it was a pain to fix. The third just had 3 big screens, one in the front and on each side. This is the one we flew during the second trip.

It was really cool sitting in a cockpit and the joystick had force feedback. I couldn’t remember how to trim the plane; our buttons were mapped differently ;-), so that made things interesting. I also had to get used to shifting the joystick a bit to go from full mil to afterburner. After flying around for a while I saw the bridge and I figured, “What the heck“. Tilting the nose down and hoping the techs didn’t think I was an idiot I pushed the throttle into zone 5 making sure that the dive was shallow as the water got closer. A few seconds from the bridge I rolled the aircraft over. It really wasn’t trimmed for this speed so I propped my elbow against my chest so I could apply enough constant pressure.

I made it under the bridge without crashing and rolled the plane out and banked to the right going out of burner. Once I was sure everything was OK I banked to the left to look back at the bridge and noticed I was almost lined up for another run so I pushed back into full burner and did it again. I’ve always wondered if I had the same settings as the previous group but I could tell Mike that I did it and there were people that saw it.

Actually John was another of the people who went down when I did. When I gave him an early draft of this to read he said that he remembers me flying under the bridge. He also remembers that at first that the instructor was trying to tell me how to gently fly the plane but after I went under the bridge he stopped giving me instructions.

Besides the simulators these trips also had the advantage of going by a go kart place and so every once in a while a group would go down there just for fun. This eventually led to Virtual Karts. While that was already underway when I finished up with the Scenario Disk I was moved over to the Battletech game that was also in development.

A few months later though I, and a little later Mike, were moved over to help with Virtual Karts. Initially the idea had been a “beer and pretzel” type of game that was just fun but not too deep. Someone higher up the food chain changed the direction though and so they eventually pulled most of the people off of Battletech to work on getting VK finished. This will soon become very important.

After 6+ months we finished the game and went back to working on Battletech. We had been told that if anything was going to cause a game to miss its ship date to let them know as soon as possible. Marketing efforts and setting up for duplication had to be done well in advance so it caused problems if you weren’t going to meet your deadline. With this in mind Mike went to talk with one of the main people who was in town to check on things. He explained that since most of the people involved with the Battletech project had been moved onto Virtual Karts for a number of months we obviously weren’t going to be able to keep to the original schedule. The response was like if the manager had his fingers in his ears going, “La la la la la”. Once Mike was done the manager starting talking about how great it was going to be when the Battletech game shipped on time and this other game shipped soon afterwards. This did not give the team a warm fuzzy when we found out about it.

Also about this time a new policy was handed down from above. Before this time when a project shipped you were paid royalties based off of 50% of the expected sales. After 6 months you’d be paid for any royalties generated, minus the original amount, and after a year a final payment for additional royalties generated. Well in the previous few months between some bad decisions, including pushing some games out before they were ready, the company was having a lot more games returned than usual. To help offset this someone had the bright idea to assess a 15% return penalty against all games, regardless of whether they had that amount of returns or not. What this effectively did was to kill the last royalty payments for such games as Fleet DefenderPacific Air War and Colonization. These were three games that had done rather well for the company and were created by some of the best people in the company, including Sid. Having something that had been promised in writing retroactively messed with did not go over well. It wasn’t that anyone was expecting much of anything. It was that management was screwing with us.

You can probably guess where this is leading. Andy down in Austin starts hearing about what’s going on and realizes he has a great opportunity. He contacts six of us to see if we’d be interested in starting an Origin’s studio in Baltimore doing flight sims for the Jane’s brand. To keep things legal, while he could tell who he was talking with, we weren’t allowed to talk with each other. This made things interesting since you weren’t sure if you jumped if anyone else would be going with you. In the end 5 of the 6, Mike McDonald, Max Remington, John Paquin, Greg Kreafle and myself, chose to take the offer. It was soon after that Sid, Jeff Briggs, Brian Reynolds and a bunch of others left to form Firaxis and a few other key people went to work for other companies.

This was happening at the end of 1995. Initially my plan had been to wait until after the Christmas Holiday before putting in my notice so that I didn’t put a damper on people’s holidays but when others started putting theirs in it seemed better to do it at the same time. It was a bit weird. For one thing I had never planned to leave MicroProse and I still really liked the people there. For another as I was saying goodbye to people I could see in some of their eyes that they wished they were going with me. This didn’t make me feel particularly good but I knew it was the right decision.

So it was time to move my stuff out of my office. Fortunately local management was being really cool about things. I didn’t have to leave the building and have my stuff brought to me or any of that sort of stuff I’ve heard, and sometimes experienced along those lines. Still, we were encouraged to do it quickly since seeing us packing up was putting a damper on morale. Particularly during these years I had a lot of research material and gaming related books that I had to move out so I knew it would take a while. Unfortunately on that day we had an ice storm hit and I started sliding on the parking lot while taking stuff to my car. I finally went to Pat who was in charge of the keys and told her I wouldn’t be able to finish that day due to the weather but I’d finish up the next morning, which I did. Years later, after I had returned to MicroProse, when Atari finally shut down that studio Pat was still there and she let me keep my card since they wouldn’t need them anymore.

I just remembered one thing about the first card I had. It was keyed closely to the security markers they used at a nearby Software Etc. so there were a lot of times I’d set their alarms off when entering and exiting the store. Fortunately they got used to it quickly and it became a bit of a running joke.

Go to Page 3

Vintage Gables P.A. Amplifier G-947 picture

Vintage Gables P.A. Amplifier G-947


Honeywell Slaving Amplifier p/n 2585703 Jet  aircraft Boeing 737 Aviation picture

Honeywell Slaving Amplifier p/n 2585703 Jet aircraft Boeing 737 Aviation


BENDIX KING KMA 24 PN 066-1055-03 Receiver & Isolation Amplifier picture

BENDIX KING KMA 24 PN 066-1055-03 Receiver & Isolation Amplifier


Gyro Slaving Amplifier P/N 1C714 Yellow Tagged picture

Gyro Slaving Amplifier P/N 1C714 Yellow Tagged


FLUXGATE AMPLIFIER Bendix Aviation 16527-3-B (SAE SPEC AS399, CAA-TS0-C6b) 115V picture

FLUXGATE AMPLIFIER Bendix Aviation 16527-3-B (SAE SPEC AS399, CAA-TS0-C6b) 115V


Century IIB autopilot controller amplifier guaranteed 30 days picture

Century IIB autopilot controller amplifier guaranteed 30 days


Bendix King KA 25A Isolation Amplifier picture

Bendix King KA 25A Isolation Amplifier


Western Electric 227D Amplifier picture

Western Electric 227D Amplifier


393026-052  Fuel Quantity Transistorized Amplifier-Bridge Ind, ‘New Surplus’ picture

393026-052 Fuel Quantity Transistorized Amplifier-Bridge Ind, ‘New Surplus’


Acme Electric Group SWS 252-28-0000-302499-01 G Power Supply 28Volt 9 Amp picture

Acme Electric Group SWS 252-28-0000-302499-01 G Power Supply 28Volt 9 Amp


Powered by WordPress. Designed by WooThemes