Ultima IV, like its successor Ultima VII, is a classic of its genre. As one of the first computer games with a strong ethical bent, along with having advanced graphics and world complexity for its release year of 1985, it became a benchmark for further gaming innovation. xu4 is an open source reimplementation of Ultima IV, inspired by the much more ambitious Exult project for Ultima VII.

One might wonder why a reimplementation of Ultima IV would be necessary. It does not have a demanding low-level architecture like Ultima VII; it runs in Windows 9x and Windows NT; and it runs under emulators like DOSBox without taxing modern PCs. There are even fan patches that upgrade the original EGA graphics to smoother VGA graphics and add a MIDI soundtrack to the PC speaker-only DOS version. xu4 would seem to be a mere convenience, nothing more.

However, xu4 improves on the original in several important areas. One of these is the interface. The original Ultima IV interface is clunky by modern standards, requiring the memorisation of a complicated set of key commands, binding almost every key on the keyboard. xu4 retains all of this complexity but provides some default actions accesible through the Enter key and (for example) automatically opening doors when passing through them. Some other improvements to spellcasting and other actions were lifted from Ultima V, with other possible improvements on the way. Naturally, these features can all be turned off by the purist.

Another improvement is in the graphics support. xu4 supports smart scaling algorithms such as Scale2x that provide clean, high-resolution versions of the original graphics for modern displays. It also provides a native version of the game for whatever OS and system architecture you can compile it on, without the timing problems involved in running DOS Ultima IV on a fast modern processor. (xu4 uses SDL so it is very portable) Finally, as the source code is available, xu4 is infinitely more tweakable than the original, and even exposes a number of game parameters to the user in its interface.

xu4 has been in development for a little over two years, and as of February 2004's version 0.9 is fully playable from end to end, and is fully backward- and forward-compatible with DOS Ultima IV save files. A significant refactoring is in progress in the push towards 1.0, with the goal of producing a pixel-perfect reproduction and an enhanced version of the original game. The goal after 1.0 is to abstract the game data and parameters further from the engine with the intent of supporting Ultima III and possibly Ultima V, Ultima II and Ultima I. With enough generalisation the engine may also be useful for building Ultima-like top-down RPGs.

The homepage for xu4 is http://xu4.sf.net/ . Since Ultima IV has been released as freeware, the full version of the original Ultima IV and the fan patch for graphics and sound are available along with the engine.

This writeup is copyright 2004 by me and is released under the Creative Commons Attribution-NonCommercial-ShareAlike licence. Details can be found at http://creativecommons.org/licenses/by-nc-sa/2.5/ .