We talk to the team working on this open-sourced U7 enhancement project
Thursday March 28, 2002 | Prophet
Today we corner the key players working on Exult an Ultima VII: The Black Gate and Ultima VII: Serpent Isle code improvement project for various platforms. And those players are (in no particular order) Jeff Freedman, Willem Jan Palenstijn, Max "Fingolfin" Horn, Tristan "Nadir" Tarrant, Dominik "Dominus" Reichardt and Ryan "Colourless" Nunn. In case you are not familiar with it, Exult is a code improvement project that adds a lot of nice little bells and whistles to Origin's popular U7 role-playing games including paper doll support in Black Gate, video and audio tweaks, and most importantly -- the ability to run the game in Windows. Let's learn more about this project's past and its future:
GameSpyDaily: Tell us a bit about Exult. How did the project start up, what was the original vision for Exult and how many people are currently involved?
Thanks to the entire team for taking the time to answer our questions. Exult (and in the future Exult Studios) runs on most major (and even a few obscure) operating systems, so you should check out the project if you are a fan of Ultima VII. And if you're favorite OS is not supported and you'd like to help them out by porting it chances are they'll welcome the help. Keep you eyes on GameSpyDaily for all the latest news on Exult.
Exult Team: Originally, there was no vision:-) It was just I (Jeff) wanting to see if it was even possible to have a graphics-intensive game running under X in Linux. So, using a paper on the U7 file formats by Gary Thompson along with an old "Xlib Programming Manual" picked up at a used-book sale, I wrote a simple 'world browser'. Then WJP came along and offered to port it to Windows; and Dancer Vesperman set up autoconf and automake.
But because nothing was known about how the plot of Ultima7 was implemented, the project went no farther than showing the world, and letting you walk around as the Avatar. For over half a year, it was pretty-much dead. We knew that the 'usecode' file included in the game contains the conversations, but I had no clue how to interpret them.
Then a couple Ultima fans in Europe figured out that 'usecode' is actually compiled bytecode (similar to Java), and they wrote an assembler and disassembler for it. Using what they found, I wrote an interpreter for 'usecode' and added it to Exult. Suddenly, you could hold conversations with NPC's, almost exactly as in the original. The project came back to life, was moved to SourceForge, rewritten to use the multiplatform library SDL, and started getting more contributors. Dancer did the original Audio; Tristan implemented the intro, and startup menus; Colourless did the paperdolls and the original work to support Serpent Isle; WJP and Colourless did the improved save/restore screen; and Dominik wrote the FAQ and did a >lot< of testing and bug-reporting. Plus, most everyone has worked on engine improvements and on the usecode interpreter. Overall it's difficult to say exactly what everyone one has done, as everyone has done a bit on everything really.
GameSpyDaily: Exult is truly an open-sourced project How many volunteers would you say are working on different branches of development, porting to other platforms, etc? And are you looking for help in specific areas that you'd like to mention?
Exult Team: There have been at least 14 developers working on Exult over the years. They have done various thing from porting to different platforms to improving the user interface. A lot of things have been done by quite a few people.
Currently, Jeff is the most active developer, followed by wjp, Fingolfin and Nadir and Colourless. Dominus and Kirben (Travis Howell) are always doing something even though they aren't programmers. Kirben makes our daily Windows CVS Snapshots which is an invaluable service so our users can always have access to all latest changes and bug fixes. Dominus of course maintains the FAQ and helps users out in our forum.
GameSpyDaily: What was the hardest thing to get working in these games?
Exult Team: The rendering order is among the most difficult thing. It is still not quite right in places. Jeff would often fix one thing (like a tree poking through a roof), only to discover three weeks later that the 'fix' had broken something else.
Also, working out the usecode intrinsic functions for SI was a real pain in the ass. It was the reason we stated about 18 months ago why the chances of getting SI to work would be low. Of course hard work and staring at countless lines of disassembled usecode paid off in the end and we are happy to say we were proven wrong.
GameSpyDaily: What changes did you have to make to get sound working in these games under Windows?
Exult Team: There is nothing in particular that's special about what was done. The sound effects are wave files that can be downloaded from our website played using SDL. The music just uses the midi files that come with the games with automatic MT32 to GM patch conversion done by Exult.
GameSpyDaily: Was this project originally targeted towards Windows or was it your original intention to bring it to platforms like BEos, Linux, etc?
Exult Team: The 'X' in Exult represented the 'X' windowing system (used by Linux). But it was always intended to be at least somewhat portable, so more people could use it. It however was at first only available for Linux.
GameSpyDaily: In your opinion what's the coolest thing that you guys have brought to the world of Ultima VII?
Exult Team: That would be the ability to modify the games or write your own from scratch. But it's also pretty cool, to me at least, when people report that they're running Ultima7 on more unusual platforms, like Sun SparcStations.
Many of the other little things are also reasonably cool. Though, one of the really big obvious cool things is the scalers to improve the graphics. Thanks of course goes out to Derek Liauw Kie Fa for his work on these.
Other cool things include the new save game interface which has numerous improvements compared to the original including the ability to have unlimited save games. Support for SI style paper dolls in BG is quite cool too.
GameSpyDaily: I've read that EA/Origin have not really had much to say about the Exult project one way or the other.. Are you worried that as this project gets more & more recognition that EA will drop a legal hammer on you, so to speak?
Exult Team: Yes :-) But our hope is that we can somehow work with them to everyone's benefit. Are there any EA/Origin employees reading this? :-)
GameSpyDaily: What does the future hold for Exult? What features do you want to add to the game that will really make U7 fans go nuts?
Exult Team: No crashes? :-)
GameSpyDaily: Tell us a bit about Exult Studios.
Exult Team: Just like Exult itself, its goals have grown to keep ahead of its features. Originally, it was just going to allow a bit of map-editing for the existing games. But now, we'd like it to be a complete game-development system so users can create new games from scratch.
In addition to the ExultStudio GUI, there's also a 'usecode' compiler so that users can write scripts describing game plot; plus, WJP is writing a 'usecode' debugger that will be essential in getting those scripts to work correctly.
GameSpyDaily: What are some of the key features planned for Exult Studios? What will you be able to edit?
Exult Team: You should eventually be able to edit everything. At present, you can create your own art (using an external program like the Gimp or Photoshop), paint terrain, create buildings, and add NPC's and eggs (trip-wires that cause monsters to be spawned or scripts to execute when you get near them). You can also specify monster attributes, NPC schedules, and the properties of weapons, ammo, and armor. One of the main features missing at the moment is the ability to create or edit spells.
A major desired feature is the ability to create a completely new game. This is currently possible with the existing tools, but not easy; and one of my near-term goals is to have a simple 'New game...' option in ExultStudio.
GameSpyDaily: From your own experience with the Exult Community how popular is it and how has the response been to the project? Have you had any Ultima purist come at you with both barrels for changing certain aspects of the game?
Exult Team: There's been no hate mail, just fan mail:-) Users have pointed out things they don't like, but it seems like they're always really nice about it. Each of our Alpha/Beta releases have received around 10,000 downloads, which seems pretty good for a 10-year-old game.
Of course there are a few things that people often complain about. These being that we do not handle combat and party formations like the original did. We often get people posting messages to our forum about this. It's something we do intend to change eventually, but it will be done after the 1.0 Release. Of course combat was never something people played U7 for. Most Ultima fans agree U7 had a fairly bad combat system.
Lastly, *some* people (they know who they are) think Exult should attempt to act exactly the same as the originals in every way... including having the same bugs too. This is obviously, not something we really intend on doing. :-)
GameSpyDaily: Where should volunteers go if they want to help out in the development of Exult -- who should they contact, where can they get the info they need?
Exult Team: Go to our SourceForge site and grab the source and documentation. Unfortunately, there's a lot more source than there is documentation. If you make some changes that you'd like us to include, send a patch to one of us. Generally, people become team members after having a patch or two submitted.
GameSpyDaily: How's it feel to finally be at RC 1 status with this program after so many months of development?
Exult Team: Seems kind of amazing, considering how many other projects have launched and then faded during the 3 years Exult has been in existence.
· Exult Web site