To mark the 20th anniversary of the release of Ultima 9 — the last numbered, single-player entry in the Ultima series; it launched on November 23rd, 1999 — the Ultima Codex is pleased to share this technically detailed, impassioned, and engagingly-written post-mortem report which offers a fair-minded and multi-faceted look at the development of the game.

Bill Randolph — for those of you unfamiliar with him — worked on the networking and multiplayer systems for Command & Conquer at Westwood Studios before moving over to Origin Systems in the late 1990s, whereat he took on the role of lead programmer for the Ultima 9 project. He spoke at length about his time at Origin — and both the joys and tribulations of working on Ultima 9 — in an interview with WtF Dragon (also available as a podcast episode). And if you are familiar with that interview, the contents of the report — which Bill prepared after the game had shipped and the project had been wrapped up — will be familiar to you.

The report is broken into four sections.

The first section is an extensive history lesson, which discusses the genesis of the Ultima 9 engine (as a fork of the Ultima 8 engine), the intrusion of Ultima Online’s resource needs into Ultima 9’s initial development team, and the way in which then-project lead Mike McShaffry resurrected the game from cancellation by adding support for Glide 3D acceleration to the engine (a change which didn’t restart heavy development of the game, but allowed Origin to keep a couple of programmers tasked to work on it). The transition of the project to Ed del Castillo’s leadership is also discussed, including his defense of the project from the demand that it incorporate a multiplayer element. We learn that almost the entire design team quit at one point due to conflicts with del Castillo and Richard Garriott, the onboarding of new team members, and the work that was done to improve, refactor and upgrade the game’s engine to make it run better, and to add support for the emergent Direct3D rendering technology. All in all, it’s an intense technical deep dive that highlights many challenges with Ultima 9’s engine and art, as well as shedding light on some of the internal politics at Origin and EA that flared up during its development.

The second section builds upon the first, highlighting significant problems that cropped up during Ultima 9’s development cycle. The issues that Bill highlights in particular are the time constraints that the development teams operated under, an incoherent or entirely lacking production vision, a reactive development model that was always playing “catch up” to problems, ineffective communication between the production and design teams, a lack of proper benchmarking and performance testing, an arduous and problematic “integration phase”, and various other problems that cropped up with architecture and technology.

The third section strikes a more positive note, however; in it, the good Mr. Randolph focuses on the victories that were achieved during Ultima 9’s development. Notably, he highlights the dedication of the development team, and emphasizes that the project was very much a labour of love for all involved; he leaves no room to argue that Ultima 9 was developed by people ignorant of Ultima or uninterested in the series. He also highlights — distinct from the production vision mentioned above — the very consistent creative vision that animated the project from start to finish; it is in this section that Bill cheekily (and correctly) notes that while that creative vision wouldn’t be likely to gel with every expectation of Ultima fans, there is nothing which would have. Other notable victories in Ultima 9’s development that are given some focus are the effective management of crunch times, the high quality of the tools used to create the game, and a number of software architectural positives.

Finally, the closing section of the report offers up a few of Bill’s notes on lessons learned, as well as some vows he makes to himself to be mindful of as he moves forward in his career. In particular, he both urges — and, to himself, promises — that one should never work under a “Sword of Damocles”-type threatpoint, that one should re-write (code, stories, and whatever else may be in need of it) both early and often, the urgency of being true to the product, and that dedication is more important than anything.

It’s a fascinating — and painstakingly fair — analysis, overall, and it is written in an engaging and personable style. Give it a read!