RPGDot Network    
   

 
 
The Villager's Tale
Display full image
Pic of the moment
More
pics from the gallery
 
 

Site Navigation

Main
   News
   Forums

Games
   Games Database
   Top 100
   Release List
   Support Files

Features
   Reviews
   Previews
   Interviews
   Editorials
   Diaries
   Misc

Download
   Gallery
   Music
   Screenshots
   Videos

Miscellaneous
   Staff Members
   Privacy Statement


 

Exult Interview
Parcival, 2003-10-30


We had the opportunity to interview several people of the Exult team; Jeff S. Freedman (aka DrCode), Willem Jan Palenstijn (aka Arthuris Dragon), Dominik Reichardt (Dominus Dragon) and Patrick Burke (Darke).

UltimaDot: Could you please tell us something about yourself?

Jeff Freedman: In real life, I write software, currently doing compiler development for one of the larger EDA (Electronic Design Automation) companies. I'm probably one of the older open-source programmers around, having written one of the first word processors for the AtariST, but I try to stay young through immaturity:-) I'm also married-with-children, and that, along with occasional camping trips, hiking, and various home-improvement projects, takes up the few hours when I'm not writing software.

WJP: I'm Willem Jan Palenstijn, a mathematics student in the Netherlands. I originally joined the project to do the Windows port of Exult, which was Linux-only at the time. Since then I've switched to Linux myself though, so the current Windows version is being maintained by others (Ryan, mainly). The more recent work I've done on Exult is mainly centred around the cheating subsystem, the 'usecode' interpreter [see below] and the user interface.

Display full image

Exult adds paper dolls to the Black Gate

Darke: IRL I'm... well... a contractor/consultant/jackrabbit-of-all-trades, having done everything from coding, to sysadmining, to pulling cables, to tech-support gruntwork. Others will tell you I'm more then a little nuts, and... well... that's mostly true too. *grin* I tripped over exult doing various decompilation work (which is, needless to say an interest of mine), noticed an interesting byte code language and tried to try my hand at it. Between life, and other random 'features' of reality, I worked on and off the usecode decompiler, various tweaks of exult, provided debugging help on the IRC channel, and generally made a nuisance of myself. *grin*
At some point in time I got distracted by 'pentagram' (see below) and work, and haven't really done much with exult other then help debug people's problems on IRC since.

Dominik: Hi, I'm Dominik, a.k.a. Dominus Dragon. In my daily life I'm a student of the University of Vienna though not a very successful one. Let's say my priorities are always not the "right" ones.

UltimaDot: For how long have you been working on Exult? When and why did you set out do this?

Jeff Freedman: I've lost track, but I think it's been over three years. It started out as a small 'educational' project, as I wanted to see if it was possible to display graphics reasonably on a Linux system. An Ultima fan, Gary Thompson, had written a paper (in our 'docs' directory) describing how U7's map was stored, and I thought it would be fun to try to implement something that would allow you to view the landscape. All Exult did was let you view Brittania, using the arrow keys to browse around. I noticed that one of the data files, "usecode" contained all the conversations in the game, but I couldn't figure out how to decode it. So I gave up, until...

Display full image

Exult includes the Forge of Virtue

...several months had passed, and a couple guys in Europe figured out that "usecode" was actually bytecode for a virtual machine that runs most of Ultima7's plot. I don't know how they did this, but they documented most of it, and wrote an assembler and disassembler. Using their work, I started writing an interpreter for Usecode, and also on getting the Avatar and other NPC's to walk around. At that point, when it became possible to talk to Iolo, I was hooked. Although there was a huge amount of work to be done (more than one person could possibly do), the possiblity of creating a working game engine was too enticing to pass up.
Around this time, Willem and Tristan joined the project, soon followed by Dancer.

Dominik: I joined the team almost three years ago as the official FAQ and documentation maintainer. Back then the forum of Exult was located at the now mysteriously vanished jackchaos.com. People there asked the same questions again and again and I suggested someone should do a FAQ. I received the normal response: "Why don't YOU do it?". Soon after that I wrote my first version of a FAQ...

UltimaDot: What was the greatest challenge in the process of decoding U7 and building Exult? What is your Major Milestone top 3?

Jeff Freedman: The biggest challenge for me was figuring out the dozens of functions in the "usecode". These do all the important functions in the game (like "add_party_member", "show_sprite"), and only a few were known when we started. Originally, I was only interested in supporting Black Gate, but then Ryan started figuring out the functions used in Serpent Isle (which were quite a bit more complicated). And once you get started on a project like this, it's hard to stop.
Other major features included the intro., menus, weapon animations, and audio support, but these were done by the other developers.
As for major milestones, I'd say they were:
1. Be able to play all the way through Black Gate's plot.
2. Be able to play all the way through Serpent Isle.
3. Have sufficient tools (ExultStudio, usecode compiler) to create an original game in the same style.

Display full image

Exerpt from the Serpent Isle opening sequence

WJP: The single most important step would probably be the decoding of the 'usecode' bytecode format. Usecode is the language of the scripts that basically run the entire world, from baking bread to major quests. Note that this wasn't done by the Exult team, however, but by Maxim Shatskih, Jakob Shonberg and Wouter Dijkslag.

Dominik: As I'm not a programmer myself I did a lot of playing through the original, especially Serpent Isle to hunt for bugs. The greatest challenge for me still is to actually find time to play through the whole Black Gate using Exult.

UltimaDot: Do you have any contact with or are involved with other Ultima projects?

Jeff Freedman: I'm not, other than occasional exchanges on our message board; but several of the other developers have started Pentagram, whose goal is to create an Ultima 8 engine.

Darke: One of these would be me. *bow* Quite regularly we also have members of other teams who are trying to recreate several other Ultimas (the Underworlds, U6, and probably a few more that I can't remember) wander though #exult to chat about things too.

WJP: I'm one of the main developers on Pentagram, a remake project for Ultima 8. Additionally, I'm maintaining the Linux ports of Nuvie (Ultima 6) and Underworld Adventures (Ultima Underworld 1), and have contact with the developer of Labyrinth of Worlds (Ultima Underworld 2).

Dominik: I'm involved with Pentagram, in the same position as in Exult even though there isn't yet much to document for users. I also keep in loose contact with Underworld Adventures, Labyrinth of Worlds and Nuvie. Mainly because most of those projects started out on #exult on IRC or the developers used to chat on #exult once in a while.

UltimaDot: What is still ahead of you? When do you concider Exult ‘done' ?

Jeff Freedman: We just released 1.1Beta3, and I'd say that Exult, as a game engine for playing Ultima7, is pretty much 'done'. Of course, there are still lots of bugs I intend to fix, but most (at least, the last time I looked), weren't critical. In fact, my next task is to play Black Gate all the way through without cheating, and to enjoy it :-)
ExultStudio, on the other hand, continues to need work, and I still would like to create an original game. We've already created a mod (the "island patch") that runs within Black Gate, but making a game from scratch (especially, doing the artwork) is a daunting task.

Display full image

The safe game screen

Darke: I think the only time it'll be 'done' is when no-one really supports it anymore. Which (at least with DrCode's enthusiasm!) will no doubt be quite a long time from now. *grin*

Dominik: I'm with Jeff here. You can play the originals now very close to how
they were originally. But new features are always great and make Exult worth to check out and play again.

UltimaDot: I picked up this quote;

‘It will never support any other Ultima nor do members of the team plan to develop something similar. The reasons for this are that no other Ultima is similar to Ultima 7 in the internal workings and also the team used to be quite sick of reverse engineering a game already.'

What did you do to yourself!? Is this still true? Have you ever been close to giving the whole thing up?

Jeff Freedman: First of all, that quote wasn't from me; and the other developers are working on an Ultima 8 engine. But at that time, I was getting fairly worn out. The trouble with reverse-engineering a game is that you constantly have to take guesses, and you often don't find out that a guess was wrong (or just partially correct) until much later. For example, I might make a code modification that fixes one of the conversations you have in Trinsic near the start of the game. Much later, a conversation in New Magincia might crash because of that change, but this isn't discovered until several weeks later. Then fixing that conversation might break the one in Trinsic again!

WJP: It is true that Exult itself will never support any other Ultimas. However, a few of the Exult team members (including myself) are working on other Ultima remake projects. (See one of the previous questions for more detail.) I'm definitely not 'sick' of reverse engineering a game yet, myself, and unlikely to become tired of it anytime soon. Reverse engineering a game is one of the most interesting puzzles around, and can be great fun to do, even if it is somewhat frustrating at times.

Darke: I always find coding, especially with time consuming reverse engineering tasks, tends to go in cycles. You'll work intensly on it for a while, get bored/frustrated at getting nowhere/get distracted by something else, and put it on hold for a bit, then get back to it a week, a month, or two, or six later.
It happened to me when I was working on exult, and it's certainly the 'cycle' that pentagram seems to have slipped into. Nothing happens for a month or so, then there's suddenly a flurry of activity and cvs commits, then nothing for a while again.
But back to the quote... it is essentially true that exult will never support any other Ultimas. BG+SI both had a very different engine to both U6 before it, and U8 after it (which is very much a refinement of all they learnt writing U7), so that in practice, supporting any other ultimas in it would be technically impossible. Not that someone couldn't 'remake', say U6 in the engine, as I believe someone (non dev-team) was wanting to do a while ago.

Dominik: I think this statement was when people asked us endlessly when we would support another Ultima with Exult. After a while members of Exult (Willem, Max, Ryan and Patrick) started poking at how Ultima 8 worked and have since then started on an engine for Ultima8 called Pentagram (pentagram.sf.net).

UltimaDot: Do you have plans for further developing Exult Studio? Are you going to implememt features that were not in Exult. (Horseback riding? Dual wield weapons? MP3 music support? Ect)

Display full image

The options screen

Jeff Freedman: Someone's already added OGG support. And you're the first person to suggest horseback riding. I'd say that Exult Studio has most of the essential features, but it probably needs lots of usability enhancements and bug fixes. The same is true of the usecode compiler. Probably the best way to continue development is to use the tools and see what's lacking. I'll probably start on another Ultima7 mod in a few weeks when I finish playing BG.

WJP: While we don't support MP3 music, we do actually already support OGG Vorbis music.

UltimaDot: To what extent is Exult Studio already being used. As far as I know there is Blackrock, and The Chronicles of Batlin. Are you in anyway involved in these projects? Are there more? Is there a ‘U7 add-on by the Exult team' coming up?

Jeff Freedman: I've heard of them, but don't know how active they are. Usually, if someone's using ExultStudio, I'll hear about lots of bugs:-) or suggestions for enhancements. As mentioned above, we've already done the "island patch" mod, and I'd like to do another one soon.

Dominik: We did a little add-on already for Black Gate, called "Sourceforge Island" or "the hunt for the lost FAQ". We just haven't released it properly (it is in our source distributed with the latest betas) mainly because it doesn't run with Exult 1.0 and 1.1 is still in beta. As for the other projects I know not much of them but am anxious to see how they will fare.

UltimaDot: Do you have any plans for the future? More projects like this or a job in the gaming industry? (couldn't help noticing this quote from the faq; "Jeff: As for the future, my main plan is to add editing capabilities, with the long-range goal of writing an original RPG.")

Jeff Freedman: When I was 'between jobs' last year, I did apply to several game companies, but didn't get anywhere. I can understand how experience with a 2D game from around 1992 might not be that useful for modern 3D games. And although my job developing a Verilog compiler isn't as glamorous as game development, I'm very happy with my current employer.
But I continue to hold that long-range goal of writing an original game using ExultStudio. Working on Free software has the advantage that there is no time pressure, plus you get to work with really talented people.

Darke: Other then planning to get pentagram into a sufficiently working state to be able to finally play Ultima8 after all these years, maybe... err... finally playing Ultima8? *grin*

UltimaDot: Is there anything else you would like to add for our readers?

Jeff Freedman: I'm surprised at the continued interest in our project. It looks like Ultima 7 is going to be a classic, and I'm glad we were able to help keep it alive. Also, I really appreciate the people who have written to us expressing support.

Darke: I must agree with DrCode in that it's *very* pleasant to recieve thanks and general "well done" messages from people... along with the hundreds of bug reports. *grin*

WJP: We have just released a new beta (1.1beta3), and would like to invite everybody to try it out and submit bugreports.

UltimaDot: Thank you very much for this interview.

Display full image




Average Reader Ratings: 7.2 (20 votes)
Rate this title and view comments     Game Info     Printer Friendly Version

 
 
All original content of this site is copyrighted by RPGWatch. Copying or reproducing of any part of this site is strictly prohibited. Taking anything from this site without authorisation will be considered stealing and we'll be forced to visit you and jump on your legs until you give it back.