The Ultima Codex Presents an Interview With Team Forgotten World
Editor’s Note: The following is the third in a series of interviews with Ultima fans who are helping to keep the series alive. We previously interviewed the U6Project about their ambitious Dungeon Siege remake.
The wonderful crew at Forgotten World, an ambitious project to create a series of patches to expand the world of Ultima IX, as well as upgrade the graphics and fix a number of bugs in the original have been so kind as to stop by and tell us about their project.
Iceblade – Hello fellow Ultima fans, I’m Iceblade Dragon. Leader for team Forgotten World (FW) and project lead for both the Ultima IX patches project and Ultima IX: Forgotten World. With me is Hawkwind who is our primary programmer and FirstKnight who manages the Beautiful Britannia (BB) project.
Dungy: Can you tell us briefly about the different projects your team is involved in, and what are the eventual goals of Ultima IX Patches, Forgotten World, and Beautiful Britannia.
Iceblade – I’ll start us off by describing the Ultima IX Patches. The main goal of this project is to ‘fix’ Ultima IX by eliminating as many bugs as possible and minimizing the frequency of crashes in the original game. Essentially we are picking up where the original developers left off with patching Ultima IX. We want the experience of playing the original game to be less frustrating from a technical standpoint. As the necessary tools for advanced modding of Ultima IX are being developed, I will be spending most of time focused on the Ultima IX patches project. In the long run, I want Ultima IX to become a bug-free base from which to fully develop BB and FW.
The cornerstone project of our team is Forgotten World, which is by far the most ambitious project we are undertaking. FW seeks to remake much of Ultima IX with the intended final plot rather than the apparent, stripped version originally released. In the process, the project will rebuild most of the world from scratch with an all new overworld and significant changes and additions to the various dungeons. Overall, FW will be significantly larger with numerous quests, limited bugs and crashes, and plenty of areas to explore. All of this while keeping with the Ultima spirit and lore.
I’ll leave FirstKnight to discuss Beautiful Britannia, but I will mention that much of the improved graphics (textures and models) of BB will made compatible with Ultima IX patches and later incorporated into Forgotten World.
FirstKnight– Yes, as Iceblade mentioned, the main focus of Beautiful Britannia is in the visual experience. Specifically, Beautiful Britannia will have improved textures with a final release of more than 500 newly designed textures in 256×256 resolution. In addition and as shown with the upcoming Cove expansion, several areas (not just Cove) will be expanded and given room for added exploration especially in regard to side quests. Another aspect that BB will focus on is added realism. In the later releases (and based on the extended areas), it will be possible to fix some of the “environmental bugs” and change parts of the environment so that certain details are more realistic and do not break the immersion of the player. An example of one possible change might be the direct teleporter from the wilderness around Stonegate into Lord British’s Castle.
Dungy: Ultima IX was certainly controversial. What are your feelings towards the original release of Ascension?
Iceblade – Well, I’ve certainly read about the massive bugs upon release, but I didn’t actually play it for the first time until 2002 at age 15. I found the game fun and creative until it crashed with a corrupted savegame in Moonglow unexpectedly. As a result, I had to redo most of Moonglow, which was frustrating to say the least. Even so, I enjoyed the game for the most part with some bouts of aggravation mitigated by heavy saving.
Overall, though, Ultima IX holds a special place in my gaming history as it was the first “RPG” I ever played and my first introduction to a Britannian Ultima and the Ultima Virtues. The virtues were an amazing concept that I latched onto very quickly. I probably would never have known about Ultima if not for Ultima IX, so if it hadn’t gotten released, it would have been a real shame to miss out all that the Ultima and its fandom has to offer especially the high quality and extremely enjoyable Dungeon Siege remakes.
Still, I can definitely understand the ire people have with the game, and I even find myself cringing when playing nowadays without the dialogue patch. Still, I think many think the plot is supposed to be about cleansing shrines when really it is about restoring virtue in people and helping them to get past the semi-mind control of the columns. In a very weakly developed way, the game is also about getting people to do for themselves rather than relying on you to solve every problem. The big problem is this plot is poorly executed and comes off like something else entirely.
In general, I like Ultima IX and I think it and its engine have a lot of potential, so I really want to see it “fixed” and brought up to be a game deserving the title Ultima.
Hawkwind – I must admit that Ascension was my first Ultima as well, and it was the game that brought me to the series. A friend of mine showed me a gameplay video of Ultima IX, and I was fascinated by the freedom this game apparently had to offer. I had never seen such a game before and hadn’t known of the other Ultimas at that time. I knew that I had to try it out and “immerse myself”.
Well, the gaming experience was great. As I started with the German (fully patched) version, I didn’t encounter the usual bugs that annoyed so many other people. Actually, I can’t remember facing any serious bug. Even the sigils always went to their desired places after cleansing a shrine.
It took several years until I finally discovered more of Ultima (reading the big Ultima pages). I also bought a collection of Ultima I-XIII at that time. After trying out Ultima VII – Part 1 (honestly, I only played it for several hours), I got an idea of why people were so dissatisfied with Ultima IX and what this game was lacking from the perspective of a long-term Ultima fan. And I agree: It would have been very cool if Ascension had offered the same level of immersion as Ultima VII did.
All in all, I think Ultima IX‘s engine is nice, the game itself is enjoyable, and it offers a certain atmosphere. I admit, thought, the story could have been better.
FirstKnight – Allow me to take up the cudgels for the original release of Ultima IX. Yes, the plot is not even nearly comparable to those of Ultima VII or any other HQ-RPG, but the freedom of movement, which the engine provides, is higher than in The Elder Scrolls 4: Oblivion. And please do not forget, without the effort of the Ultima IX team there would be NO Ultima IX at all. Further, using BBs “high-res” textures, the engine shows up well even in comparison with more modern games (well, not when compared with Assassins Creed III, but that would be a bit unfair, don’t you think ).
Dungy: Can you tell us what the original inspiration for this project was? How was it founded? Who first starting poking around Ultima IX‘s data files and thought there was real potential there?
Iceblade – The answers to these questions really depend upon which project. Beautiful Britannia actually stems more from the original work started by FirstKnight with his Ultima IX Freedom Mod back in 2004. In the approximately two years between the release of the Freedom Mod and the founding of team Forgotten World, FirstKnight was working on enhancements to the Ultima IX maps primarily via hex editor. By 2006, FirstKnight had fully developed a technique to add objects into the game world in an effective though limited fashion. At this same time, Nimdraug had been busy picking up where Tumbleweed Dragon had left off with decoding Ultima IX‘s various files. His work in decoding the files, I believe, began in earnest in 2005.
For quite a few months before the founding of Team FW in May 2006, I was developing a greater interest in the wider scope of the Ultima fan project community and was following multiple projects even going so far as creating a geocities website as a forum hub. For a while, I had known the myriad issues behind Ultima IX (via Hacki’s nitpicks and overall fan opinions), but I felt that there was some good at the core of Ultima IX‘s story. I felt that the game itself, primarily lacked in plot execution and gameplay rather than the core story, and I was already developing ideas on what I would want to change. My interest in making these changes had been further spurred on by the Ultima IX fan mods. The problem was, of course, a lack of skills to affect such changes.
It was here that I really took notice of the talents of FirstKnight and Nimdraug in working with Ultima IX, and I saw the potential for a collaboration of the three of the us. So I sent both of them an email about working together, and they both showed a high degree of interest in collaborating. From here, FirstKnight took the leading role in truly founding a cohesive, working team. Hawkwind joined up almost immediately thereafter, got us a place to house our discussion, and not long after published and webmastered our public website. Unfortunately, after a few months, FirstKnight had to “leave” the team due to a lack of time. While it was primarily just the three of us at this point, gradually my role in the project/team grew to that of the lead. It would, however, be a couple of years before my talent for decoding/reverse engineering Ultima IX would actually became useful, so my contributions beyond brainstorming were negligible during that time.
Hawkwind – I think the development of Forgotten World traces back to TumbleWeed Dragon who published some file format definitions of Ultima IX when it was relatively young. Unfortunately, not one of us knows TumbleWeed Dragon and any attempts to contact him have been unsuccessful. Some years later, FirstKnight came across these definitions and created the Freedom Mod for Ultima IX. Even though it’s relatively simple compared to what the latest releases of Beautiful Britannia have to offer, I think it really paved the way for Forgotten World as we know it today.
As Iceblade mentioned, I joined the team shortly after it had formed. Similar to him, I saw a chance to bring in my ideas for an improved Ultima IX. At that time, I mainly admired FirstKnight’s and Nimdraug’s work in decoding the file formats and didn’t understand how someone could accomplish that. Based on the specifications that were already there at that time, I wrote a terrain viewer (mainly for the purpose of getting some programming experience). For displaying the graphics, I had to decipher the meaning of some bytes that were marked as “unknown” in the specification. At this point, I had my first decoding achievements. There were definitely some setbacks when Nimdraug left or when FirstKnight said goodbye, but after these first successes, I had the confidence that we might go on.
FirstKnight – Definitely started with the files from Tumbleweed dragon. They “forced” me to dig into the data files back in 2004 and get the stone rolling. Another milestone was in 2005, where I found out how to add objects into the game by using altered savegames. And not to forget, the foundation of “Team Forgottenworld” in 2006. Even though, BB didn’t “officially” start until 2009, the main idea behind it is from 2004-2006.
The latest important milestones include the start of retexturing in 2010, the creation of U9BB.exe in 2011, the first screens of the upcoming Cove expansion this year, and well who knows what 2013 will bring, but at least there will be one.
Dungy: How did other members eventually get involved with the project?
Iceblade – We’ve had members come and go, contacting us via email and offering their talents. Like most projects, we’ve had quite a few members over time and most of them end up leaving after a few months due to real life or lack of anything to do. Our team has probably had a larger percentage of team losses due to the nature of our development, which has been heavily focused on decoding files and building tools for many years, so often new members have nothing they can or are able to do.
In the past year or so, we have made some significant progress and are able to finally make use of content producers like writers, artists, and soon worldbuilders.
FirstKnight – Yeah, mostly we’ve gotten new members via contact by email.
Dungy: What kind of a challenge has it been decoding and modifying the original data files? What challenges are unique to Ultima IX?
Iceblade – A very difficult challenge in some ways. Still we have definitely benefited from Ultima IX‘s files being descriptively labeled and dominated by the well known FLEX file format, which is a basically a folder file that contains a lot of file-like subfiles. Decoding involves a lot of trial and error changes and sub-file comparisons. Even the absence of a file can, in fact, tell us what it might do. As far as challenges unique to Ultima IX, well, the biggest challenge has been the fact that the game’s usecode including dialogue is hardcoded inside the engine, so actually changing any of it will require hacking in a .dll that will interpret our own usecode and dialogue in a way that the engine can use it. That challenge remains a big one still and one that Exult didn’t have to deal with. As you can imagine, we are motivated to successfully create this particular hack, otherwise, FW would just be Ultima IX with a new costume and trained to be more polite to the Ultima lore.
Hawkwind – Even to this day, I still don’t know how TumbleWeed got to the specifications he published, and I’m truly fascinated by his work. They definitely helped *a lot* as they presented the structural groundwork of most of the file formats. I remember that we spent a lot of time in finishing the definition of the fixed/nonfixed file format (files storing static and movable objects in the game). The basics were there, and we were able to identify objects and to alter them (at that time, we released a small toy that made objects visible that the developers either used for debugging purposes or did not want to delete for some reason), but we did not understand how all this fit together. There were times at which I thought we’d never accomplish that, but after dozens of hours, we finally achieved a breakthrough.
I think it’s interesting to describe the process in so few words. As I noticed later on, what we do is very similar to what scientists do when they try to build a model of the world (sometimes that’s even referred to as the “reverse engineering of nature”): Observe – build a model – check if that model is appropriate. Of course, when you first look at one of the Ultima IX files with a hex editor, it looks like a random sequence of numbers, but only at first glance.
As an example, look at the terrain files: At the beginning of each terrain file, there are two values which are always the same. In terrain.9, they are 64, yet in terrain.14, they are 8. This is the observation. What else do we know? Well, map 9 is Britannia, and it’s really big. Map 14 is the Earth map, and it’s comparably small. Could this be the size of the map? Well let’s assume it is. Here we have our model. For the next step (check if the model is accurate), we could change the map size and see whether this actually affects the in-game size of the map. Unfortunately, this isn’t possible as changing the size of a map is a bit more involved. What we can do, however, is check with other map files. If the values at the considered position always correlate with the size of the map, there’s a high chance our model is correct.
As to the specifics of Ultima IX: There were two features we greatly benefited from: One is that the Ultima IX engine creates most of the files itself when they are missing (this way, for example, we found out the purpose of a file that helps improving the performance by hiding objects that aren’t visible). The other was that the game shipped with a lot of maps that were used by the developers to test things (thank you for that!). These were really helpful for us as well.
FirstKnight – An advantage of decoding Ultima IX files is that the data files are not packed into some sort of archive as in other games. Nevertheless, the data structure of nearly every type is rather complex (thanks to the developers), that’s why it took so long to create even some small mods and changes.
Dungy:I’m amazed how much better high-resolution tiles make Britannia look. What is it like creating new textures for the world?
FirstKnight – Simply an amazing experience. Actually, when I see an interesting landscape, in real life or on a photo or painting, I look at it for some time to find out, WHY it’s looks so good, and how to implement this look into BB in some way. Yes, that’s how far I can get when it comes to creating textures for Ultima IX.
Dungy: What software are you currently using to modify the original Ultima IX map to add unique objects?
Iceblade – Ultima IX.
Yes, you read correctly.
Yes, I’m totally serious.
We go into the game usually via gamestate.ini, place down an object, save the game, extract the map from the savegame, and hex edit the object within the map file or use our nonfixed editor to make changes to the placed object. It’s messy but it works.
Hawkwind – Let me add that over time, we have created various tools for specific purposes that we partly used for our file format studies or to actually alter the game. One example is a tool to import graphics. Another one is a tool that gives us a list of objects and their corresponding names and model IDs, and this list aides us in adding objects into the world.
FirstKnight – A mix of self-developed tools (such as the texture importer) and save game alterations for adding objects. Hex editors are also involved, though they are of less importance today than they were back in 2006.
Dungy: Many fans were unimpressed by the story of the original Ultima IX. Are there any plans to modify the original story, plot, or conversations?
Iceblade – Well, the overarching story of Ultima IX will remain essentially the same; however, the execution and overall dialogue will be miles better and present a much more coherent and thought-out plot. While I won’t get into too much detail here, I will give you a basic introduction to the story in FW.
The Guardian has entered Britannia several months before your arrival. He has corrupted the Runes into Glyphs, which now power the eight monolithic columns of blackrock that he has created. The resulting seismic cataclysm was enough to split Britannia apart and cut off many of the cities from each other. Goblins control passage to Northern Britannia, mountains block access to the Eastern Peninsula, Southern Britannian is now an island, and the seas have gradually become a near-death sentence with whirlpools forming across the entirety of the ocean. The columns themselves have corrupted the 8 shrines and are slowly eroding the virtue and will of Britannia’s citizens. Some have twisted the virtues in their own minds to justify their actions while others are out-right abandoning the virtues in the name of self-interest. Only a few of those who live within the range of a column’s influence can resist it. However, only those in Skara Brae and Castle British are truly protected against these columns. All attempts by Lord British thus far have failed to mitigate this crisis. Lord British, himself, remains in his castle drained of hope and moping on his throne.
Much of the above information will be presented to the player in the first few hours of play, so I don’t feel like I’m really giving much away. As you can see, some things have remained the same, but the real changes are in the details. I will add that we are going with the Richard Garriott’s explanation of the Guardian’s origins going back to Ultima I.
Dungy: It’s nice seeing Mariah and Jaana back. What are some bugs you’ve managed to quash or features you’ve managed to implement that you originally felt were impossible? What accomplishments are you proudest of so far?
Iceblade – Although, I can’t say that I really thought any of the bugs I’ve fixed so far as being impossible, there are definitely some that I thought would be really difficult early on before we had a good understanding of the game’s triggers.
Our first successful work with triggers was actually with teleporters, but aside from the basic trigger command, we had only a limited understanding of complete triggers. The triggers and properties related to music were actually the first “complex” triggers, and the first object properties that we were able to fully decode. This really helped us understand triggers in general. Figuring out how the music triggers for various towns worked was exciting for me as this was the first time I was really contributing to the decoding effort in a meaningful way. I started to notice differences between music triggers for towns like New Magincia and Britain and ones for Valoria and Minoc. I quickly observed a difference in one particular hex byte (actually it was a bit) that I couldn’t account for, so I changed it and bam, positive music was playing in Minoc and Valoria and even in some areas of Skara Brae. Really proud of that one.
The Mariah and Jaana fix was also particularly exciting as it lead to the understanding of the activity file and how big of a role it plays in the game. Really for a game with no schedules, there is still a lot of stuff that this file contributes. Getting Jaana to appear in Yew was actually pretty easy with Vasagralem as a guide. Plus Jaana already had an activity to teleport her to Yew, it just didn’t have a destination location or a trigger to activate it.
Mariah was a lot more work. I had to create a new activity for her to teleport to her house without an appropriate tool. In addition, I had to place objects on the map world with triggers that rely on game variables. And all of this was done using the “savegame” method of object placement. That was also a very proud moment as it was the first really involved bug fix.
I think, however, the proudest moment so far has been fully understanding how Raven’s boat traveling feature works to the point where I could read the properties, triggers and activities jumping from one object to the next. It really is a complex aspect of the game that I have to give kudos to the developers on creating. And it isn’t really all that buggy, at least I can’t think of a time when it didn’t work properly. You would be shocked to see how many “editor-viewable-only” objects are just sitting on the docks. There are numerous timers and cameras and markers all over the place not to mention the complex triggers and activities involved. It was here that we learned that NPCs have their trigger properties that are activated from the dialogue.
Dungy: What are some of the limitations to this project? Which bugs of the original will you just be unable to fix? Which features do you want to add, but feel might not be possible?
Iceblade – Well, the biggest limitation to FW thus far has been the lack of a basic world editor. Our editor right now is close to having full editing of nonfixed objects and progress is being made with fixed objects and adding new objects to the game world. We still need a new interface feature that would allow for the intuitive object placement, which is easier said than done with all the object types the game has. This is made worse when you consider that most fixed objects and too many nonfixed objects are unlabeled. In fact, there are some objects in the game that have the wrong usecode or are improperly named (probably a result of item list shuffles with major changes in the engine’s code). So a lot of work would be required to create a well organized and effective list of objects.
Another big limitation and one that is 100x more difficult to overcome is a means to change dialog trees. We would have to write a DLL that could interpret external usecode and run it alongside the hardcoded usecode. Needless to say, we will almost certainly be writing all new dialogue usecode for each npc, there would just be no simple way to combine our usecode with usecode we can’t read. But one thing we do have that will make this effort easier is Mario “HCl” Brito or as I like to call him, the God of Assembler. I think he is actually fluent in assembler code, certainly seems that way sometimes. For those not aware, he has done amazing work patching and editing and updating all of the Wing Commander games. The drastic improvements in the Vision Engine’s graphics were made possible by him and his work was the foundation upon which Popsicle Pete made Standoff look almost like a modern game a decade after the release of the original engine. (No, Popsicle Pete is not part of the team.)
Bugs from the original that we may not be able to fix…. crashes due to the graphics engine, the physics exploit (see “ocean travel without a boat” or as I like to call it ‘ocean travel on a loaf of bread’), bugs related to the magic system, floating NPCs, and I’m not sure what has gone wrong with Molly in Dawn, but I might be able to find a fix there (hopefully). As for features we want but we might not be able to “add”: I hate to say it, but changing/rewriting the dialog trees and even worse adding new npcs might just be something we can’t include. There is strong hope that we can make changes to dialog eventually, it just will be very difficult to get it started.
A feature that I want to add but that is less essential and that we might not be able to change is editing creature item drop. My plan to is change up the economy and how you get gold in Ultima IX drastically. Part of this change is to limit respawns to animals only and even then having them respawn sparingly. Also, I want to make it where creatures don’t drop gold when they die but have a chance of dropping something more sensical that the player could collect and later sell off. For instance, wolves would primarily be encountered in the forests as roaming or standing packs that do not respawn. When you kill them, they have say a 60% chance of dropping a wolf’s pelt that you could then go to Yew to sell. There would also be respawning wolves located near wolf dens, which are located inside caves. In the wolf den would be one or several den mothers that you could kill. If you did this then the wolves would stop respawning, but sense this action is more like genocide than self-defense or defense of a town, you lose a significant amount of karma.
Giant rats would be done similarly to a point. When killed they don’t drop anything, they are based around nests located all over the world with a rat “queen” that you can kill without karma loss: rats breed like … well rats so you can’t find and kill off all of the rat queens from an in-universe point of view.
FirstKnight – Beautiful Britannia has some clear yet somehow limited goals, so that’s not really the problem. The main issue is a lack of freetime both to create and test the various builds.
Dungy: What should we expect from Forgotten World and Beautiful Britannia in the future?
Iceblade – Well, I will be continuing to work on fixing bugs in the vanilla game. The next bug I will be looking at is the dysfunctional Covetous elevator that doesn’t like being reused. The problem is probably similar to the one with the Moonglow Catacombs elevator, which is somebody didn’t complete the cycle of triggers. With 4 floors, this will definitely be more complex, but it will be intriguing to see how it all works. Besides bug fixing, we will be progressing on our tools, designing maps and npcs, and writing more books.
Once we have a basic editor, expect a simple test map so that we can test how well our tool works in creating new maps with a variety of features tested including elevation, caves, interiors, and object properties. Beyond that we will release a tech demo map and of course as we progress toward our first milestone, we will release screenshots of the various towns and any new models we create along the way. Then finally our first true milestone: Earth (more sensibly built), Stonegate, Britain, Cove, Paws, Despise, parts of Spiritwood and the surrounding paths and areas.
Hawkwind – I think that a working world editor might heavily increase our effectiveness. Once we have this, the world building can be done by people who are less familiar with the file formats and who would never dare to edit a file in a hex editor. Of course, the answer to the question also depends on the “other” life of the team members (damn there is such a thing ), which may be unforeseeable in some regards. There may be one way to make sure that FW keeps going, though: Get involved and contribute! If you think you have something to offer – tell us! None of us could afford to reject decent help.
FirstKnight – BB is on hold this year, the work will be continued in 2013, beginning with retexturing. Still the plan is to bring out a release at the end of 2013 including an unfinished “Cove expansion”, but that we’ll have to see.
Iceblade – On behalf of my team, I thank you for this interview and greatly appreciate the Ultima Codex (and Ultima Aiera in years past) and the Ultima community at large for your continued support of our efforts over the years as well as the support you have shown the many other fan works that have graced the Ultima fandom.
Thank you so much Forgotten World for taking this opportunity to tell us about your continuing efforts to make Ultima IX a better game. Make sure to check out their webpage, and take the opportunity to download their most recent patches from Forgotten World and Beautiful Britannia