Ultima Codex: All right, so…we are live. We are fortunate today to have Mr. Bill Randolph, who now works…well, we’ll get to where he works in a little bit. But, back during the development of Ultima 9, he was the lead programmer on the project, at least for a few years of its development…it’s very storied development, which we’ll hear about from him. Hi, Bill!
Bill Randolph: Hey! Good to be here.
UC: We’re glad to have you. So…obvious lead-in question. What brought you into video games in the first place?
BR: That’s a really long story, but I’ll try and keep it short. I was a programmer who had kind of specialized in scientific and engineering software, and I was working for a company that did speech recognition. And we got a contract to help a guy named Jay Patel at Interplay put speech recognition into his Star Trek game, the Star Trek: 25th Anniversary game.
So I flew out to California to help with that, and met Jay, and we hit it off. And I got to thinking: “you know, this guy…he makes games for a living; that seems really cool.” And so I started looking into that, and found out that, hey, you actually can do this. So I talked to a recruiter and ended up getting a job at Westwood Studios in Las Vegas.
UC: Okay. So you would have been working on the Command & Conquer games, most likely.
BR: Yup. Yes, I ended up being a lead on the first Command & Conquer, the DOS version.
UC: Fond memories. Many fond memories. So that’s Westwood…and they were eventually bought by EA, as was Origin. So what led you to join Origin? How did that jump happen?
BR: My time at Westwood…I was there for three and a half years or so, and I had been doing a lot of network programming. And I was kind of tired of that; I wanted to move on to something else, and I also wanted more of a leadership role. And so I shopped around and found out that Origin was looking for a lead programmer, and they were located — conveniently — in my home state of Texas. And I thought: “well, that isn’t too big of a leap”, so I took them up on it and ended up as a lead on Ultima 9.
UC: Were you at all familiar with the Ultima games before joining the team?
BR: Yeah, I had played Ultima 3 and Ultima 4 on my Amiga and loved those games. They were some of the first RPG games that I had ever played, and so I was thrilled to be able to participate in the Ultima franchise.
UC: Nice. So you just…jumped right into the lead programmer role? There was no introductory role predating that?
BR: I was hired directly as a lead. And what had happened was…Ultima 9 had had a long history, before I got there, that I didn’t know about. It had been through a couple of different iterations already. And its current state, right before they talked to me…it was cancelled. They had taken everyone off of Ultima 9 and put them onto Ultima Online. And Ultima Online, of course, being one of those “MMO games” took a giant amount of resource for it to ship.
But Ultima Online was kind of getting stable and closer to being done, and they had some resources. And a guy named Mike McShaffry — who I believe you know — he took the Ultima code and got it running with a 3dfx card, so the game was 3D at that time, but with a software renderer. But he got it working with 3dfx and showed it to some people and kind of…renewed interest in the project.
And so they decided “yeah, we’ll go ahead”, to go and start this up again, and they put together a very small team, and they hired me in to be the lead. And at that time, they decided that Mike McShaffry would not be a part of that team, which was — I’m sure — heartbreaking for him. I don’t know what the story was for that, but they did decide to make a change in leadership.
UC: Okay. Mike and I did talk a little bit about his involvement with Ultima 9, but I can’t recall if he got into too much depth [about the circumstances of his departure from the project]. I do recall him giving me his vision for the story, which I really liked; it was really cool what he had in mind for that.
Okay, so you became lead programmer about…Summer of ’97, which would have been just before Ed Del Castillo made the jump from Westwood. What did you work on, specifically, where Ultima 9 was concerned? A lead programmmer…what would he have done?
BR: Well, initially, my role as lead involved ramping up on all the tech that was already in the game. And just so you know, the engine was still the Crusader/Ultima 8 code. It had just been iteratively worked on to become 3D. And it had kind of been top-down; although it was 3D, the camera angle was top-down. And when I arrived, it was just at the point where they had decided to make the camera like a free-form camera; you could look around, an over-the-shoulder view.
And so you would walk into buildings, and the roof of the building would pop off, even though you were in a 3D view. And that was the state that the code was in at that time. And there was a lot of tech in there, a lot of very old tech. So it took me a while to ramp up on that, and start working on scheduling things, and trying to figure out how to move this forward. That took the majority of my time, and then I went into hiring mode; we started hiring other people, other programmers.
Eventually, I did take on coding responsibilities. I did the lighting system that we eventually shipped with, and I did some of the AI — which was super fun to work on. And I did the world movement, which was quite difficult, and it came out okay. Generally, it worked pretty well. Swimming was always a big problem, oh my gosh. But yeah…I think those are the main systems I worked on.
UC: Just to clarify: when you say world movement, are you talking about…
BR: How creatures moved around the world. For example, how the Avatar would walk, and how he did collision detection, and how you would detect that you have run up against a wall that you can’t go through versus when you’ve just hit a tree stump that you can step up on to. When you would fall, and when you would slide. For swimming creatures, and how they navigated through water; when you were the Avatar and how you navigated through water…or, in most cases, failed to navigate. And for flying creatures, how they flew through the air.
UC: Okay. And yeah, you mentioned the swimming as well, which was always a little bit…it was an interesting system, but it has its quirks.
Okay, so you were right during the transition from that isometric/top-down viewing angle to the over-the-shoulder. And that kind of addresses a couple of questions all at once, in that…because you also mentioned that it had been built on the legacy code from the Crusader engine. And did that translate through all the way to the shipped version of the game? Is what we have as Ultima 9 still, in some way…does it still have bits and pieces of the old Crusader codebase in there?
BR: Yeah, there are bits and pieces of Crusader in there. I can’t really quantify how much. I know that the code definitely made reference to Crusader, and to Ultima 8. Some of the systems in the code that weren’t necessarily related to rendering, or 3D, or movement, or things like that. But yeah, there were definitely elements of that in there, all the way up to when we shipped. And there were — I’ll probably get into this more later — parts of the code that we…the codebase was so big; it was too big for all of us to be able to manage. There were things in there we didn’t even know until we were in QA. There were features in the game we didn’t even know about, that had been put there by programmers generations prior to us.
UC: We’ll have to come back to that; I know I have a question coming up about features in the game. But just before we leave the engine behind — actually, there’s one more question after this, too — do you think it might have been a better idea to start from scratch? To build a new engine from scratch? Or would that have been entirely too time- and cost-prohibitive?
BR: Well…I will say that the short answer is: absolutely yes, we should have started from scratch. Absolutely. There was never a time on the project where we had the political clout to tell the company: “you know what? We’re gonna start clean.” The project had been through multiple iterations, and even though I wasn’t there for those, the company would never have gone for a complete fresh start with the code; that would have been viewed as a complete disaster.
And I expressed this sentiment multiple times on the project — that while we started with this codebase that basically worked and had a lot of features, and at every milestone along the way we added more functionality and swapped out code — there was never a time when we looked at a piece of functionality or a milestone and said: “yes, this is clearly a time when we need to rewrite everything.” If you looked at where we started and where we ended up, clearly the right thing to do would have been to rewrite everything; that was just so clear. And that’s a conundrum with a lot of software development; at what point do you just pull the plug and say: “nope, we’re gonna…this has to be done clean.” Sometimes, you reach that point.
UC: Fair enough. This may actually be related, then, to ask. You mentioned already, the timing…the move to 3dfx had been made, but it was still all software rendered. Of course, another big milestone in Ultima 9’s development was the jump to hardware accelerated 3D, which used Glide rather than…what was the Direct3D version at the time of Ultima 9? Was it 7?
BR: I think we were on 6. When I first started, we might have been using 5.
UC: Okay. Now, obviously, Glide didn’t last; D3D did. Looking back, do you think…it’s easy to say that, from a historical perspective, obviously Glide wasn’t the best choice. But looking back, at the time, do you think that was the right choice?
BR: So, let me tell you that story.
If you look at the time frame of when we were in development with Ultima 9, from ’97 to ’99, and if you look at the hardware advances that were made in that period, a revolution occurred in the entire industry during that time. Early ’97/late ’96 was when 3dfx took off, and I don’t know exactly how they achieved their market penetration. I think they…they had Quake, and they had Tomb Raider, and they achieved a lot of penetration that way. And I think they gave out a lot of cards to developers. And that swung a lot of people over, including Origin, to doing stuff using 3D hardware.
Direct3D was kind of lagging behind at that time. It couldn’t do all the things that 3dfx could do, it was harder to use than Glide. But during Ultima 9’s development, Microsoft had polished it to the point — and had been enough of an evangelist with game developers, to get them to adopt it — where the scales tipped, and Direct3D was the winner…in terms of adoption, not in terms of technical ability. Not in terms of technical ability.
Direct3D worked really well on the higher-end cards, the TNT cards. But there were a whole lot of cards who said: “yeah, we’re a Direct3D card too!” And they were horrible. What they were designed to do is run Quake efficiently, and so Quake was the milestone for all games at that time. The framerate that your card got when you were running Quake was how you were measured as a 3D card. That didn’t mean you were a good card; it just meant that you could run that one game, and that one engine, well. And they would actually put in optimizations specifically for Quake, so that it would run their game faster.
And those cards…it fell to us that we had to support those cards alongside the 3dfx family of cards. So we ended up shipping with Glide, which was kind of our reference implementation, and then we had to attack the Direct3D problem about…I think we really addressed it about halfway through my time on Ultima 9. We spent just over a year really working on that. But…you know how it’s hard to sell the company on rewriting all the code? Well, all of the art was developed for the software renderer, and the art was totally not optimized for Direct3D, especially those lower-end cards that were meant to run Quake well.
The way that Quake art was done, it optimized its use of textures very heavily, and it swapped textures very infrequently. Our game was the opposite: there were so many textures involved. For example, you’ve probably seen breakouts of the Avatar himself. I don’t know how many textures there were to render the Avatar…maybe 16 different textures? That’s fatal in a Direct3D card in that day, swapping states that many times just to render one object. And we had a lot of different textures. So, for a software renderer, that’s free; for Glide, it was minimal impact; and for Direct3D, it was horrible. So, yeah…we would have had to redo the art. And we knew that, in order to get good performance out of Direct3D, and we brought that up, like: “hey, what do you think the chances are that we could, you know, redo all the art?”
And that didn’t go over very well.
UC: Yeah, I can only imagine. I mean, art is a pretty significantly expensive piece of game development, especially for 3D.
BR: Yup. But that was part of what happened during that revolution, was…for a software renderer, here’s a certain way you can make your art. Direct3D hardware? Radical change. Completely different art pipeline.
UC: That probably also explains why the resolution of textures varies so wildly in the game. I know there’s a few people who have been poking away at the engine over the years. I think it supports up to 256×256 pixel textures, but on some of the plants and other objects, they found textures with resolutions as low as 64×64, and really inconsistent texture resolutions across many of the objects in the game.
BR: I think that on the NPCs, we emphasized higher-resolution textures; we just wanted them to look really good. And we implemented mip-mapping. But I think that, for some of the objects, it was just perceived as…it wasn’t worth it. And so they never really rezzed them up.
UC: That would make sense. The NPCs actually did look really good at the time; they hold up not too badly today, I think. I guess a plant isn’t quite as important.
Over the years, a lot of cut content has come to light about the game; this is actually true of a lot of different Ultimas. But…systems and features that were removed from Ultima 9 during its development. And the assumption has kind of always been that this has been because of…whether it was difficult to implement those things, or there was just not enough time to implement them. To take one example: there’s a glitch in the game where — I believe it’s just after you get rescued from the dungeon Wrong — Raven, the pirate lady, gives you your equipment back. But sometimes, your sword…it’s actually in her hand; it’s equipped on her character model, as though she had an inventory slot there. It was rumoured that there was supposed to be a party system, with inventory management, at one point. Do you recall this feature at all? Was it cut before your time, or was that one of the things that got the axe during your tenure?
BR: Well, I can speak to the party system. I don’t know if the inventory glitch you’re describing is related to that or not. It’s entirely possible; when it comes to that codebase, I will just say that anything could be in there. Anything. In terms of party inventory management, I don’t recall there being a specific system for that, so I don’t know why she would have had it equipped in her hand; it could have easily just been a bug.
The party system was cut…I remember the meeting we had when that decision was made. And looking back, I regret that; I wish that we had not done that. At the time, we were so overwhelmed with technology and problems, and trying to keep the game moving forward. There were a lot of technical issues with having a party. There was performance — having that many NPCs always with you was going to be a performance problem. There was pathfinding — we had enormous problems with pathfinding, because our game…it was a free-form 3D world. It was a polygon soup; we didn’t have any kind of sorting of, or structural containers or quadtrees to help us sort through the polygon soup. We didn’t…I don’t think any game at that time had invented the concept of having a walkable surface, which is where you simply flag certain polygons as: “your feet go here!” That would have solved so much, if we had only thought of that. That would have been a huge amount of work to do, but if we had thought of that, that would have solved so much.
So, we just had enormous problems getting NPCs to pathfind, even around their tavern. “Can you walk around this counter and go to this table?” Sometimes they would walk over it; you’d walk into the bar and see the guy standing on top of the bar, and it’s like: “what are you doing up there?” And I remember I had an idea for pathfinding for parties, that I threw out there as kind of a joke. And it was just…maybe they can pathfind by just trying their best, and if you lose them, maybe when your camera looks away, and you look back, they’ll just be there; we’ll just teleport them to be with you. And everyone laughed and…you know what? There were games that shipped way after we did that did that exact thing, you know? Your NPC companions get stuck and then just…boop!…just teleport to you. That’s okay! It would have been okay. We just could not solve these problems, and so I think it was Richard who was just kind of on board with…”well, let’s just cut the party; we don’t really need it.”
UC: So that would probably also have been why NPC scheduling was cut, then? Pathfinding issues.
BR: NPC scheduling…that was partially due to pathfinding, but it was also due to…let me think. You know, this was a long time ago.
UC: Fifteen years!
BR: I recall that we had problems stuffing all the data that we needed into the items in the world. That, when we cached out a section of the world, we have to save it and persist it. And then, when you went back near that area, it would cache back in and reload those objects. And the amount of data that we had per object was a very fixed amount. That system was designed with rigid constraints based on Windows chunk size on its filesystem, and expanding it would have been a giant amount of work.
And so we…ran out of room to store data for things like NPCs. We lost the ability to remember who owns an object, of which NPC has ownership of the dagger sitting on the table. Can you walk into the tavern and just take that dagger? If we had had that concept of ownership, we could have had that NPC say: “hey, don’t take that!”; typical behaviour for an NPC in Ultima 7 and RPGs of that era. But we lost that. And NPC scheduling fell into that category, I think. We didn’t have the data to support it…and, yeah, it would have been a development effort that I don’t think we were willing to spend time on, either.
UC: Okay. Actually, that kind of leads into…I’m going to skip ahead a little bit here. Because while it didn’t have a party system, and it didn’t have NPC scheduling, Ultima 9’s 3D engine nevertheless did include a number of features, things that were really unique in 3D RPGs…specifically, especially, the interactivity in the world. In most 3D games, this barrel sitting over here, well…it’s just a static object, and it’s got a baked lightmap, and you can’t do anything with it. It just sits there and looks pretty. In Ultima 9, I can walk up to the barrel, and I can move the barrel around, and throw it into the water. I can put stuff in it and then throw it into the water, and there’s a little buoyancy there. I can break the barrel, and then take the pieces of the barrel and make a staircase to climb up somewhere that I shouldn’t go…
BR: (Laughing) Yes!
UC:…lots of great stuff, and an excellent Ultima feature. Ultima 7 had tons of that, Ultima 6 had a lot of it. You can even find bits of it in Ultima 5; Ultima 8 had it. Why do you think these features weren’t actively pursued by RPG developers working with 3D engines after Ultima 9? Because they went away.
BR: I think there are a couple of reasons for that. The first and foremost reason is that when you have an object in a 3D world, and you reach out with your virtual hand and take hold of it, and move it around, and drop it elsewhere…that’s an incredibly stupid thing to put in a game, as a developer, because you’re creating a world of hurt for yourself. And that’s what we did. We spent endless hours recovering from that decision. It introduced all kinds of technical problems and all kinds of hurdles that we had to overcome.
It was great, and it so immersive; you’re right. That was part of the diamond at the heart of Ultima 9, was that immersiveness and interactivity of the world.
So that’s one part of it, just the…technical Pandora’s Box that it opens when you do that kind of thing. The second part is…let me try to describe this to you. I’ve given this a lot of thought over the last couple days, since we chatted, and…there was a…Richard — who, by the way, I loved working with — he put a huge amount of emphasis on the world. He wanted this 3D world to be something that no Ultima player had ever seen. He wanted Britannia to come alive. And we did our best to do that. We had birds that actually flew out of trees and went and had a place for their nest, and they sat back in their nest. We had all kinds of cool features to just make the world come alive. And the amount of effort that took robbed us of the ability to put in a lot of the more traditional RPG elements, like a party, like NPC schedules, like who owns what object, like crafting. Those were all things that Ultima 9 was missing, and those are things that ultimately add a lot more to the gameplay than the immersiveness of the world, I think.
So we took a big gamble, and we really put a giant amount of effort into that immersive world, and we created something unique. And I think that uniqueness is in part due to that it was just so ambitious. But I think it was also because other developers who came after were probably more focused on the RPG elements. Which, in and of itself, is a huge amount of development. There’s my long answer.
UC: And tying back to what you had said earlier, I imagine that if you were already dealing with battling Windows for precious chunks of data storage, that saving the state of this barrel — which I’ve now turned from one object into about four, and then moved those four pieces around — I can only imagine that the whole caching in/caching out was just Hell on Earth.
BR: Yes. Oh, I have a great story for you, now that you’ve reminded me of this.
One of the other things I worked on in the game was the hanging signs. And I don’t know…let me call your attention, in Ultima 9, to those hanging signs, because they’re awesome. They started out as…it was just an example of something Richard wanted because it was interactive. He wanted you to be able to tap a hanging sign and have it swing, okay? And so I put in logic that was just a simple oscillation…and we looked at that and thought: “that’s terrible.” So I actually added physics to it; I added exponential decay. And then I added a little bit of a yaw element to it.
And then we added wind, so that when there were multiple signs in the town, and the wind blew, they would all blow, and kick in, and swing. And you could shoot an arrow into the sign, and it would react to the arrow you shot; I don’t know if you ever tried that. But try it sometime, shoot an arrow into a sign.
Anyway, we had one of these signs that was swinging in the wind (laughs) and it was just at the end of what we called the “fast area”, which was the area cached in around you that updates, and the area outside of that is cached out and saved to disk. Well, this sign swung and crossed a boundary, and dropped out of the fast area…crunch!…saved to disk. And the little controller that was running it crashed. “Where’s my object?” So that was just one example of the kind of…oh my gosh, this game was unbelievably complicated.
UC: That’s funny. I knew there was always fun ways to make Ultima 8 crash, like…killing the Avatar, and then he’d get deallocated just before someone in the game came up and killed him, and would kill the deallocated memory address and crash the game. But…I imagine that bug is probably still replicable in the shipped game.
BR: Oh, no, we fixed it. It was just really hard to find.
UC: I mentioned Ed Del Castillo previously, and one of the things his treatment of the plot — his plan for the game — seemed to focus on was really maximizing the use of the 3D engine. And in particular, there was one sequence I recall standing out from it, where…I mentioned this before, you know, where the Avatar gets imprisoned in the dungeon Wrong. In the shipped game, he’s responsible for his own escape, and is met by Raven, and she gives him his equipment back. In this earlier revision of the plot, the plan had been to have the player actually take control of Raven and navigate through the dungeon Wrong. And I gather it would have been a stealty-type sequence, with lots of Tomb Raider-like acrobatics.
Was support for that sort of gameplay ever really worked on, or did it get before the heavy coding started?
BR: I think that concept was in…up until at least two-thirds of the way through. I remember Ed had an idea that at different points in the game, you could step into the shoes of different characters. Raven was only one of those. His idea — and a version of the story at one time — had you playing Lord British. Which I think would have been awesome, because you would have had access to these unbelievable spells. But that got cut; I think that marketing kind of poo-pooed that, they didn’t like it, didn’t like the idea of you stepping into the shoes of another character. They thought it would be disorienting to the player…whatever.
I don’t think that Richard was ever really that jazzed about the idea. So that idea was really more of a table discussion; we had the ability to do it, but we just never really went very far with it. But the acrobatics and so forth? I don’t really think we would have had high hopes of pulling something like that off. I don’t really think so. We didn’t go very far with that at all, if it was ever really a thing.
UC: Okay. What about some of the other features that were kind of…these come up a lot in the different bits and pieces. In the different plot documents — whether it was the Bob White plot, or Ed’s plot — in-game events that never made it to the shipping version of the game, things like riding on dragons, armies meeting on the field of battle.
BR: Those two particular features…I don’t ever recall ever having actually been in the game. Riding on a dragon…I don’t think so.
UC: Like I said, I recall it coming up in different plot treatments…it was floated as a sequence you would play through.
BR: No, I don’t think that those ever made it in. There was a feature during the game…that was going to be ship combat. The ship you had in the game, you were going to encouter pirates; that’s a staple of Ultima games, is having to fight pirates at sea. And we had the tech to do that. But we just didn’t have the time, and we never had the art assets for the actual pirates and pirate ship. But that feature did come to bite us…if you want me to tell you this story?
UC: Sure, if you have time.
BR: So, to support ship combat…before I had gotten there, they had created the ship as an NPC. So the ship was not an object in the world; it was actually an NPC. And it had health, and it had stats. And when we scrapped ship combat, we kind of just ignored those. It was like: “well, we don’t need that anymore, but we’ll just leave it in…because.”
Well, there was a point in the game where you went to an island that was infested with zombies, on your ship. And we get a call from QA and they’re like: “the zombies attacked our ship, and it sank.”
And we were like: “you can’t, no…that…we never put that in. You can’t…the ship can’t sink. That’s ridiculous.”
And they’re like: “no, no, come down and look.”
And so we went down and, sure enough, the zombies were swarmed all over this ship that was slowly sinking beneath the waves, and we’re like: “HOW? How can this be?” And sure enough, there was old code in there that handled sinking your ship if it died. And the zombies were the only thing in the world that recognized the ship as an enemy, and they homed in on it and attacked it until…it died. So there, again…there was just so much stuff in that code. Good grief.
UC: That was one of those features you mentioned, that only came out during QA.
BR: But yeah…regarding other systems that were cut, I don’t know. There was just so much. But I think ship combat…parties, NPC schedules…the list would be long if we were to actually go through everything that had been cut.
UC: A lot of this focuses…a lot of what was cut seems to have been cut for what were mostly tech reasons. Was there anything that really got the axe more for artistic differences?
BR: I’m sure there was. I wasn’t really privy to a lot of those meetings and conversations. I mean, there were numerous discussions going on in design and in art, and so I’m sure there were things that were cut. The only thing I can speak to that comes close to that is…I observed the process by which conversations were being written. And we were…let me give you a little more history here. I know this is all about history, so…should be okay. This is gonna run long.
Ultima 9 had been restarted, we had ramped up, we had — initially — what looked like a fairly impressive head start, although we had a huge amount of “tech debt” built in to the code. And EA came down with the message — I think it was about midway through — where they said: “we want this game to be epic conclusion to the Ultima series. We want you to do anything you can to make this the most epic Ultima…ever.” So we started planning, and we started scoping things, and we started down that path. And as we made our way down that path, there were problems and issues. And EA lost their will, or whatever they do, and they decided to dial down the funding and just say: “no, no, we’re going to give you this amount of time, and you have to ship on time, and we’re actually going to take resources away from you.” And so…that happened.
What was the question again?
UC: We were talking about things that got cut for artistic differences.
BR: Right, conversations…we were so short on time and resource, and we were doing voice acting for the conversations, right? So it was literally…one of the designers would script out a conversation, hand it to the voice acting director, who would get the actor to read the lines in that day. It was that tight of an iteration; there was no time for polish, and no time for iteration. So I think…you can’t really say that was a cut feature, but I would identify that what was cut there was polish, and iteration on the conversations. It was sacrificed because of the schedule time.
UC: That’s unfortunate. And that’s one of the things that has consistently come up in criticisms. I alluded to this when we chatted just recently, but…there’s a game reviewer who goes by the handle Spoony, he does really…esoteric game reviews, is the word I’m going to choose to use there. There’s a lot of ranting and raving, a lot of emotionally-driven discussions of the titles. And Ultima 9 earned his ire in a very special way, unfortunately; he devoted this three-part video rant to tearing it down some. And one of the things that has unfortunately become popularized as a meme on the Internet is the phrase “What’s a paladin?”
He kept hammering that again, and again, and again during the game. And I think it really tied into that. I mean, the line in and of itself…the inclusion of an option, in a conversation, so that a new player who’s never played any other Ultima can learn what a paladin was, and get exposed to that part of the lore, shouldn’t have been controversial in and of itself. But certainly the dialogue quality left something to be desired.
BR: Yes. Now, the specific line you’re referring to, and the property of having introductory material in a game like that…I think it’s important to do. And one of the concerns that EA kept re-iterating to use was that the Ultima fanbase was an ever-shrinking fanbase. And they didn’t want us to cater only to that fanbase; they wanted us to try and broaden the interest. And Richard was all about that; he was like: “yeah, we want more people to have fun with our game.” And so we were putting in material to introduce people more to the Virtues and the universe and so forth. But you’re right: the lack of polish probably emphasized that as something that stuck out. And there were conversations that I really feel fell short, and I know that…especially when you encounter the Companions near the end of the game, they’re not treated with the dignity that they should have been.
That was just…we didn’t have the time. And that’s a shame. We really…every step of the way, on Ultima 9, the next thing we did was what we had to do. It was always driven by: “we have to do this next, we have to do this next.” And we never really got the chance to strategize and go: “let’s get our head above water here and see where we’re trying to go.” It was always do this or die, do this or die; that was the way the development went.
UC: Doesn’t sound fun.
BR: It actually was incredibly fun. It was stressful, and that aspect of it wasn’t fun at all. But that game was one of the most fun games I’ve ever worked on. And I think the other programmers felt that same way. We had complete control over our render pipeline, even though it was sub-optimal for Direct3D, and there were so many things we were able to put in technology-wise that were really challenging and fun. So we did have an enormous amount of fun making that game.
UC: That’s good. I know when Mike talked about Ultima 8, fun didn’t seem to be one of the things that carried through there. So it’s good that Ultima 9, for as tumultuous as it was, was fun.
Is there any part of the game — a plot twist or gameplay element, something…if you’ve already discussed your favourite thing, then, you know, just mention it again and people can refer back. But…something that had to be cut that you really wish could have made it in.
BR: I’m sure that there is, but I can’t think of any one, specific, major thing. There were just…I think the party was a mistake to cut, and I think the NPC…the RPG detail of the game itself was something that we overlooked and sacrificed. So I think I would say that is probably…even above the party, just that sort of RPGness of that game we missed, and we omitted too much. There was…if I may go into another little bit of a story here about the culture at the time?
BR: I think a lot of the fans have picked up on that omission of RPG elements. At that time in Ultima 9’s development, and in Richard’s career, he was less interested in a pure, D20, Dungeons and Dragons-style RPG. He was trying to do something different, trying to do something new. And he had vocalized this to us several times that he didn’t want stats to be visible, and he didn’t want levels and progression to be what the game was about. And that was such a different and weird concept at the time that we didn’t really get it, and we felt a little lost at sea trying to make this game. Like: “how do we do this?”
And so there was a de-emphasis on things like…one example is to build a fire. In a classic Ultima, you would need a tinder box, and a flint, and a steel, and then you could build a fire. Well, that was viewed as tedium…and there is a degree of that that could be tedious. But there’s a degree of it that’s fun, and so you gotta find that balance. We just swung too far the other way.
And if I may say, I don’t think I’ve ever confirmed this with Richard, but…the modern-day incarnation of his idea, I think, is more fully realized in Skyrim. Skyrim is a game that…your character doesn’t really have stats. The stats are transitioned into the skill tree, but it’s really…you become what you do. And I remember he was really trying to do that in Ultima 9; he was trying to hide the traditional classes. You weren’t a Mage, you weren’t a Warrior; you did stuff and got experience based on that. But it would have taken considerably more iteration and time to bring that to life. I wish we had, because it was certainly a revolutionary idea.
UC: Yeah, it sounds like. And you’re right. I mean, nowadays, the concept of the statless or stat-free RPG, or the classless RPG…Richard still is doing that now with Shroud of the Avatar. It’s essentially classless; there’s skill tree that attends the game, that lets you build up your character in the way that you want. But fundamentally, when you’re in the game, you’re just…you’re an Avatar. There’s no Fighters, Warriors, Mages…nothing like that.
The one exception, I think, within Ultima 9…the magic system was always really complex and arcane. In fact, it’s probably the reason that I just straight Fighter it through Ultima 9 most of the time. I use spells only where it’s necessary to the plot. It’s not one of the questions I had penciled down, but if you had any remark on it…
BR: I have a recollection of the magic system being something that was fairly new. But I don’t recall specifics; I unfortunately can’t help you with any insight into that. At the time, if I recall, I think we all thought it was really cool. Maybe we just didn’t get it, or maybe it just didn’t come through.
UC: It hearkened back to the Ultima 8 system, to my mind. There are a number of differences there, but maybe it was just because so much of that codebase had been brought over. Maybe it was just what was there and what was easiest to implement rather than going back to an Ultima 6– or an Ultima 7-style system.
Anyways…Ultima 9 — and we’ve mentioned this a few times — it had its share of bugs. Were there any in particular that you recall as being particularly noteworthy, outside of anything we’ve already discussed?
BR: Sure. There are a couple of bugs that come to mind. They didn’t ship; we did fix them, I think, but they were hilarious.
There was one bug where…the way that our melee combat worked…again, this was an example of where we made it technically harder on ourselves than it needed to be. We put a contact point on the weapon, and as you animated in an attack, we would measure that contact point in 3D space to see if you were hitting your target. And that’s how combat worked. And so, if you were facing away from your target, of course you were missing. Well, that’s kind of…that’s needlessly complex; why did we do that? And it also created a problem where, in lower framerate situations, you could miss a lot more, you know, if there was this much angle between your sword animation frames versus this much.
But the particular bug was…there was this pirate out in the woods who had decided that his AI hated this butterfly. He just hated this butterfly. And the pirate went after this butterfly, which had a collision presence of about a pinhead. And so this pirate was swinging, and swinging, and the butterfly was just flapping around…and we just sat there and laughed at that for the longest time. It was great. And the fix, of course, was to make the pirate not want to attack the butterfly.
But the other bug was actually the best bug I’ve ever seen in any game, ever. And it had to do with…one day, one of my programmers comes in and said: “Bill, a dog just walked up to me and said ‘Hello, sir.'”
And I was like: “heh, you’re joking, right?” Whatever.
Well, later that night, Todd Hayes and I were debugging the castle; Lord British’s castle was notorious for performance. We were trying to tweak the performance on it, and we were in the castle, and there’s this archway, and we see a pair of feet — in the air — go past the archway. And Todd’s just like: “ugh, they’re walking on air again. I hate that.” Because we had a lot of collision issues.
And so we go into the room, and they were not walking on air. They were flapping their arms and flying around the room. And we were like: “what is this??? What happened?”
And it was a weird flap, too; it was kind of this weird, weird thing. And they were flying around the room, and we’re like: “oh my God, what’s going on?”
And we went outside, and sure enough there’s a dog walking upright, and he greets us: “Greetings, citizen.”
Here’s what had happened: the savegame had saved all the AI out in one order, and the logic to load it had loaded it in a different order. So when you saved your game, it basically scrambled the AI of everything around you. And we had guards who thought they were bluebirds, and we had dogs that thought they were people. And we died laughing. I mean, literally, we were…I think it was around 3:00 in the morning, and we were crying, we were laughing so hard. We just went home, just: “nope! Doesn’t get any better than that. We’re just gonna go home.”
And so we put a couple of homages to that into the game. I believe there was one version of the game that had an NPC down in the prison who thought he was a dog. And I think there was…I don’t know if that shipped or not, but it had Richard’s face on it. The other is…there’s a tower, off in the middle of nowhere, where there’s a guy named Melvin the Mad. He flies around in his tower, and he actually has a bluebird AI. And that was our homage to that bug.
UC: Okay, well…that explains him, because yeah, he’s just out there. I can still remember where his tower is; it’s not too, too far off of Britain.
BR: We actually had a lofty idea…he had a complicated spell, that was a flying spell, that he was working on. And we wanted to put the components for that spell around the world in various obscure places. And if you actually assembled the spell, you would get the ability to fly around Britannia, and go anywhere. And we wanted to get that in, because it would have been super cool. Of course, you could have broken the game by flying anywhere, but it still would have been cool. But we never had the time.
UC: I admit, I spent a lot of thought and effort trying to get…there were those boots that you could wear during the sequence in the gargoyle city, Ambrosia, that would let you kind of fly. I mean, you were walking, but you were no longer bounded to…yeah. I always wished I could bring those boots out into the big world with me, but alas.
BR: There’s a reason why you can’t do that.
UC: Yeah. Although, when this is all done, I’m going to have to shoot you a link to…I don’t know if you’ve ever read DOUG the Eagle Dragon’s interesting approach to playing Ultima 9, because he basically figured out — and he takes advantage of a few things in the engine: buoyancy, for example — building himself a tower of staves and bread, he’s able to build bridges across the expanses of ocean that otherwise you shouldn’t be able to cross.
BR: You can do that. I’m sure you can.
UC: But the thing is, he’s not interested in just breaking the game; he’s interested in breaking it in a way where it can still be passed. Completely wrong, in the completely wrong way, but still passed. I’ll have to shoot you a link to that, because it’s hilarious, some of the stuff he does.
You mentioned Mike McShaffry, and the Crusader engine, and the iterations thereupon. I don’t suppose you have any sort of…Ultima 9 had gone through a lot of plot iterations. There was the final version, there was Ed’s version before that, Bob White’s version before that, Mike had his original version…and then I think there’s actually one more version, at least, that fits in between him and Bob White. I don’t suppose you would have had any knowledge about what that would have entailed?
BR: No. No, I really don’t. I remember…I came on near the end of Bob’s time there, and I read his version of the story, and it sounded great. But I know that his version went through a lot of revisions until the final game didn’t resemble it that much. I don’t know; it was a continuous blur of constant change and frantic running around trying to get things working. So…I don’t have any insight there.
UC: That’s fair. And you know, that may well have even been lost to time, because that was even before the team had been seconded off to Ultima Online. Speaking of which: EA had this thing, and they kind of still do it today. We see it with the RPGs that BioWare cranks out, for example; everything has to have an online component in it. Even if it’s Mass Effect 3, which is nominally a fine single-player RPG. Dragon Age: Inquisition, coming out next week, supposedly has an online element as well.
At the time that Ultima 9 was being developed, EA was kind of notorious for this. “Hey, you just produced the single most successful MMORPG ever. And also the first, but the most successful ever. You are now the MMO studio!” Was there ever any pressure to bring Ultima 9 online?
BR: There was. This is an interesting story. I’m trying to remember the time frame of this…this came from the marketing guys at Origin. I think they had concluded that they couldn’t sell this game unless it had multiplayer, because all the cool kids were doing it. And they looked at me and said: “hey, you did the multiplayer for C&C; can you add multiplayer to Ultima 9?”
And I said: “well, with software, you can do anything…with time. We could add multiplayer if we had another year.”
And they said: “you don’t have another year.”
And I said: “then you don’t have multiplayer.”
And basically, it was just like: “well, can’t we do something like a dungeon crawl? Something simple?”
And I’m like: “no! It’s not the scale; it’s just getting the networking in, getting that negotiation, and the synchronization…the basics. Once you have the basics, yeah, you can shoot for the moon. But getting those basics in is many months of work; it’s a different game. You have signed up to make a separate game when you say we’re going to have multiplayer. Now you’re shipping two games instead of one. We don’t need that; we’re just trying to ship this one.”
And the executives started hounding us for it, and Richard was fighting them on it. But I will say…I’ll give you another little bit of history here that probably no one ever hears. I’ve heard you mention Ed Del Castillo a number of times, and I get the sense that he’s a person of interest in the community. He can be viewed as someone who is villified a lot, I think, and I don’t really think that’s fair. Ed made some enemies while he was at Origin; he didn’t pull punches, and he didn’t play political games. He was just a “no bullshit” kind of guy. He also didn’t build bridges; he wasn’t a bridge-building guy at that time.
He was a friend of mine, and I’m largely responsible for bringing him on to the team. He and I worked together on C&C, and we needed a producer, and I kind of recruited him on to Ultima 9. One of the things he did do well, though, was he batted away these senseless feature requests, like multiplayer. That was one that he put a lot of political cred on the line and said: “no, we’re just not doing this, guys. We’re just not. That’s a stupid idea.” And it was; it was just a terrible idea.
Let’s see…there was another one that came along. A mandate came down from nowhere that we had to build the source code for Netscape into our game. That’s just another…”you guys, it’s a mandate! You will build the source code for Netscape into your game.”
And we were like: “what? Why?” And what they were trying to do was have a web browser built in to the game, which we also thought was incredibly stupid. Now, eventually that kind of thing would pay off; you could have help systems that were online and community ties that were online, but we did not need that in Ultima 9; give me a break! And that was something else that he kind of batted away, just…no, that’s just a stupid idea.
And so he was good at batting away those kinds of things. He did have an interest in adding some of the action features into the game that, really, nobody else had an interest in. But he didn’t push that too hard, I don’t think; he just had an interest in it. He had a lot of sparks fly between him and some of the other team members. And I think that, because of that, he tends to be viewed as a villain, but I don’t really think he was.
And, by the way, he was also a prophet. Because, as he was departing — he departed involuntarily — it was near the tail end of that time that EA was still giving us the line about “we want you to make an epic game.” And Ed’s final words to me as he walked out were: “they don’t care about this game; they’re just going to shove it out the door, unfinished.”
There you go.
UC: Yeah…there you go. I have spoken with — “spoken”; traded a few messages with him over time — and I think that’s really an unfortunate period in the game’s development. Not for what he wanted to do with it; I think what he wanted to do with it was actually brilliant. But he really has been villified a lot in the community, and that’s unfortunate.
Let’s flip things around a little bit; you’ve mentioned Richard a number of times. How directly involved was he? Was he directly involved in Ultima 9’s development?
BR: In the early part of my tenure there, he was intimately involved. He had a lot of opinions about what he wanted to see; he put a lot of emphasis on the interactivity of the world and the immersiveness of the world. We got that; he breathed that into us, and imbued us with that desire. There were times during the later part of my tenure there, when we were shipping, that he was less involved. And you’ve got to understand: I love Richard like a brother, but there were times that we were hurting for more of his involvemenet. And, you know, he had a lot of other obligations, and he had a lot going on, and a lot of other interests that he was pursuing too. We could not have Richard as much as we wanted.
But overall, I remember his involvement as being pretty solid. And he really put his neck on the line for this product. There was a time when we had put a whole bunch of new tech in the game, and we hadn’t had time to polish it or test it, and our performance was down. And that was at a time when he had to give a demo to EA. And the demo did not go well. And — here’s what I heard — they cancelled it, right then and there. And he put his neck on the line to keep the project alive.
UC: So…given the chance, would you ever work for the man again? Or on an Ultima game, should the opportunity arise?
BR: (Laughing) I would love to work with Richard again. We’ve both matured so much; I don’t know if that would ever be possible. Working on an Ultima game again? I would definitely work on an Ultima game again. Ultima has…there’s an inertia of legend behind it that would be — could be — the curse of a team if they tried to do another Ultima. But with the right team, and with the right vision, I think…yes, Ultima should live again. I don’t necessarily think I should be the one who does it. But I would love to be involved should the opportunity arise.
UC: I am just writing down that phrase: “an inertia of legend”…
BR: You get that, right? I mean…if you announced: “we’re going to make an Ultima game!”…oh, my God. The expectations!
UC: Yeah…well, EA Mythic found that out the hard way. And to be fair…those guys…okay, making an Ultima for mobile is not necessarily the smartest decision, because it is a game with an established fanbase that actually largely eschews mobile. We talk now, we use categories like “core gamers” and “hardcore gamers” and “casual gamers” to describe the various segments of the gaming market, and…the people who really love Ultima, they’re not “casual”, most of them. They’re “core” and they’re “hardcore”, and the idea of of putting Ultima on an iPhone…
BR: (Laughing) It just isn’t…that just…
UC: But at the same time, leaving aside the fact that its freemium was not good, Ultima Forever was a game with a lot of love for Ultima and the lore. But that doesn’t necessarily…love for the lore gets you somewhere, but it doesn’t get you quite as far as you need, unfortunately.
You had mentioned that Richard had some other projects going on at the time. And I recall that around the time of Ultima 9, he was talking about this idea of a…kind of a successor, kind of spiritual successor to Ultima, a project that he only ever referred to as “X”. And I guess he had intended to fold the Ultima 9 development team over into “X” whenever that was going to happen. Do you recall ever hearing anything about this? Do you know if it ever went anywhere?
BR: I was actually on Project X for a time. There was a Project X; it lasted a couple of months. He did have a desire to build a large…I believe it was an MMO. He didn’t necessarily have a genre picked out. And he didn’t even necessarily have a story or a gameplay style. What he communicated to me — and that’s all I can speak to — and my peers was certain pieces of technology that he wanted to include. He had an idea for building a big virtual reality room that fans of the game could come and visit Origin some time, and go into this room and be surrounded by the world. He was thinking big, right?
I think Richard probably communicated that to EA, and they were probably like: “no, we don’t want to build a big, stupid virtual reality room.” And they weren’t thinking big; they weren’t thinking: “this is for down the road, guys; this isn’t the first thing we’re going to do, is build this room.” So they weren’t thrilled with Project X, and so Project X didn’t last very long.
UC: Ok…I think I skipped a few questions here.
There was an unofficial…okay, there were a few patches released for Ultima 9. The last was 1.18, I think, was the last official patch that Origin pushed out. And then a little while later, this version 1.19 patch came along. And if I recall correctly, its two big things were that it removed the SafeDisc protection — or it did something with the SafeDisc protection to make it not so intrusive — and it helped with the D3D side of things. And the rumour is that someone at Origin took the code home and basically built it in his spare time.
You wouldn’t happen to have any idea who that was, would you?
BR: I recall…okay, so, after we shipped Ultima 9 — anyway, there’s a whole story to that; we can get into it later, if you want — we shipped it, it went out, it didn’t do well, technically, because of all the bugs. And it was such a problem that I lobbied to have a new CD made and mailed out to those who had purchased the game. And that was a bold suggestion, because that was an expensive proposition. And Carly Staehlin — who was on Ultima Online at the time — she stood by me, in this giant meeting filled with executives, and said: “yes, I think we should do that.” And that’s what they did. They mailed out that disc, and…was that 1.18?
UC: That was 1.18, yeah.
BR: That was 1.18. I recall, the dev team — a few of us — continued to work on the code, while we were at Origin, after that. And so that patch may have been born of that effort. I don’t think that EA had an official release of a new patch; I do know the code…we continued to work on it afterwards. It wasn’t that we took it home; we were at Origin working on it. And I have a vague memory that we made a new patch of it, while we were there. I don’t recall how that would have become distributed or anything. I think we tried to get the community management to release it to the community, so maybe that’s how it went out; I don’t know.
UC: Okay. You alluded to the story about the release there and…actually, this one kind of leads into it. Looking back now, a decade and a half after its release, what do you think your biggest accomplishment with it was? And what do you think your biggest regret with it was? And if you want to slip that release story that you alluded to in…
BR: I think my biggest accomplishment on that game — while I’m very proud of the lighting; I think the lighting was beautiful; and I’m very proud of those swinging signs — my biggest contribution was that we shipped the game. Because there was a lot of pure iron willpower that went in to shipping that game, against all odds. And I got numerous compliments, even from EA executives, after we shipped, who were like: “I can’t believe you shipped that. I never thought it would make it.” The fact that we did, and that I had a role in that — I’m very proud of that.
Now, having said that, shipping the game…I had been at Westwood. And Westwood had this golden period — I was happy to be there during that time — where they shipped hit after hit. They never cancelled a game, Westwood. And even if a game didn’t do well, they saw it through to completion, because they undetstood that the team learns from that. You learn from failure; you don’t learn from success. Mark my words!
So, when we were trying to ship Ultima 9, it was perceived as being in the way of Ultima Online 2. It was holding up Ultima Online 2’s development; it was starving Ultima Online 2 for resources, and that’s why they wanted to get it out of the way as quickly as possible. And so QA was under a mandate to get a playthrough — from beginning to end with one continuous playthrough session. And they did it. It took a lot of work, and we did find bugs, and when we’d fix a bug it would invalidate the samegame and they’d have to start all over at the beginning and go all the way through.
But when we got that first playthrough, there was champagne broken out and everything, and there was a perception on the part of certain executives that, okay, we’re almost done. That was a huge mistake. And I remember, we were coming up on the Christmas deadline, and there was a fateful meeting in Jack Hiestand’s office — he was the general manager of Origin at that time. And we had the lead of QA, and myself, and a couple of other people there. And we had to make the call as to whether we shipped or not. And we looked at QA and said: “is this a thing? Can we do this?”
And I believe that person said: “yeah, it’s gonna be fine.” And it was not the right call; it just wasn’t. But prior to that, we had been…QA had been on a 24/7 work cycle. They had been working twelve-hour shifts…or, not even twelve hours…twenty-four hours around the clock. And what that had meant was — they were trying to get that playthrough in — they would start that playthrough, the first shift would end, the second shift would come in, and then about 2:00 in the morning they would hit a bug, and they would call me. And I would drive into work, and get there around 3:00. And I would look at the bug, I would identify which programmer needs to work on this, and then I’d call them in, and they’d probably get there around 5:00. We would make a fix and get a new CD done around 7:00 AM, and the whole thing would start all over again.
And I remember endless nights of sleeping on that couch outside my office, and it was awful. And at that fateful meeting in Jack’s office, where we were trying to decide whether we should ship it or not, the answer was that there were too many bugs…but we were just too tired, and it was just too awful. So, it was a rough cycle, shipping it, and it just didn’t get the honour that it deserved from EA; it really didn’t.
UC: That’s not a bad way to summarize it. I mean, to be fair, I like the game a fair bit; I would probably prefer to play it to Ultima 7, if I’m really, truly honest. Ultima 6 is still my favourite, though.
BR: That’s good to know.
UC: Anyways…you are now working at Blizzard Entertainment, aren’t you?
BR: I am. There’s not much I can say about that; I didn’t get full approval from the PR department. I got approval from my manager, provided I can’t discuss any Blizzard-related items. But what I will say is what I’m working on is Battle.net, and…it’s a thrill. It is definitely a high point in my career. I had thought, maybe, in the game industry, my high points were behind me, and I’m happy to announce that they are not. I love working at Blizzard, I love the people, and I love the company. So…I’m very happy.
UC: And you had fun at BlizzCon?
BR: Yes, BlizzCon! Yep…very fun.
UC: Well, that about brings us to the end of the list. I don’t know if you ever engaged with the Ultima community during and after Ultima 9’s development and shipping, and if you did I don’t know if it was the most friendly place to be.
BR: It has been. People have been resoundingly supportive; when they find out who I am, they’re always happy to meet me. And that’s just been really gratifying.
UC: Well, that’s good. If there was anything you wanted to say to the fandom, at this point in time, what might that be?
BR: I think I would say that Ultima 9 was not what any of us truly wanted it to be; we didn’t get to finish our vision, we didn’t get to see it through to completion. I think that there are — beneath the surface — you can see some of what it could have been. And so we will all just be left wondering, together, what might have been. And I will just summarize at the very end by saying: don’t give up. Don’t give up on Ultima; I would love there to be another one, and I know everyone else would too. So don’t give up; don’t let go of that.
UC: All right. Well…thank you. This has been an enlightening discussion, I think. Thank you for taking the time to talk.
BR: You’re very welcome. It’s been a real pleasure.