Quirks of the Ultima VII engine

From Ultima Codex
Jump to navigation Jump to search

The Ultima VII engine (reused for Ultima VII Part Two) was advanced for its time, however, the technical limitations were still a challenge for the programmers at Origin. So they had to develop innovative solutions in order to create the game world.

The Quirks[edit]

Where the Dead Go[edit]

One important distinction in the engine is between objects and NPCs. Objects (and monsters) can be created or destroyed. NPCs, however, cannot, or the game could break. Of course, during the events of Ultima VII and (especially) Serpent Isle, NPCs do in fact die, and often. This begs the question of exactly what does happen when an NPC dies.

When NPCs are killed, the deaths are processed by teleporting them away and replacing them with corpse-objects with pre-defined inventories. Casting Resurrect on the corpse-object destroys the object and teleports the corresponding NPC back into its place with full health; the NPC takes the inventory of the corpse-object upon its arrival. This happens so quickly within the game engine that it is barely perceptible to the player, thus creating the illusion of death and resurrection.

On both Britannia and Serpent Isle, there is an area that is unreachable by normal means, where all the NPCs are stored. In Ultima VII, this is is a carpeted area deep inside the mountains just north of the Shrine of Compassion. In Ultima VII Part Two, it is located on the top left of the map.

Some of the traits of this mechanism are:

  • The nature of the Ultima VII engine means these areas reserved for the dead are somewhere on the world map, in an area where the player cannot access or even view by normal means. However, running Exult in higher resolutions may result in these areas becoming visible.
  • NPCs who just vanish (such as Batlin after the encounter at the Black Gate) will be treated as dead, since they cannot be removed from the world but still have to become un-encounterable.
    • Should you teleport using the Cheat Menu and F3 key, there 'Vanished' people would reappear in their usual places. Those include both Batlins (The one in the Fellowship Main Hall that dissapears should you confront him with the Blackrock_prism Cube Prism, the one that fights next to the Black Gate and flees after Hook is killed) and also Alagner after Hook kills him.
  • Exult seems to break it, probably because the game engine can now store the NPCs in-program.[Clarification needed] In Ultima VII, only Batlin is found there after vanishing. In Serpent Isle, only destroyed automatons, Gwani, some pikemen, and the Banes of Chaos are found there.
  • There is also the question of the Armageddon spell in Ultima VII. Armageddon does not process deaths in the same way; rather, it causes NPCs to drop unconscious on the spot and rendered immobile (for all intents and purposes: dead). This is why Resurrect has no effect — Resurrect only works on corpse objects, which these unconscious NPCs are not as far as the engine is concerned. (The Ferryman, who is unaffected by Armageddon, is a special case.)
  • Lord British seems to hold executive power over death, since angering him by attempting a certain cheat (see Ultima VII cheat room § Trivia) kills people sequestered in the room of the dead. This breaks the game, although use of this room is not considered normal gameplay.
  • When you find people "Killed" in the Room of Dead People they will be laying down, since before dying they must fall into prone position, and only then they leave behind a Corpse, teleporting to this area. With "Dissapeared" people (Like Alagner) you'll find them standing up, since they were just spirited away and they didn't act as dead.
  • NPCs in Ultima 7 have some "flags" indicating their status, like 'Protected' (As spell) Cursed, Ethereal, or Dead. The NPCs in the Room of the Dead have all this flag. You can manually edit it with the cheat menu, reactivate them in the hall of the dead, and kill them again and again while in the Zone of the Dead, creating an infinite amount of corpses for the same person!

Replay of Alagner’s Murder[edit]

Looking into Alagner’s crystal ball reveals what he has done last day and later shows his execution by Abraham, Elizabeth, Hook and Forskis. For this effect, they did not produce a mere animation, or create an entirely different map, but duplicates of the scene and the NPCs.

Looking at a computer-generated map of the Isle of the Avatar reveals two copies of Alagner's house hidden beneath the mountains. The southern one has a dummy NPC (using a monster slot, since there can be only one Alagner) doing exactly the same things as the real Alagner, providing the image for the crystal ball.

The northern house actually has another dummy and dummies of his assassins being frozen in motion, providing the scenery for the killing seen in the crystal ball. Walking into the scene causes them to come to life and attack the party.

Even more, this system was also used in Serpent Isle. In the north-western part of the map is a strangely unfinished structure in the ocean. Walking up the stairs reveals a copy of the upper floor of Shamino's Castle with strange lighting bolts and fireballs flying around.

Since the programmers were unable to use the real location for programming reasons, they created this little area and Batlin and Cantra teleport in to create the cutscene for the crystal ball in Harnna’s house.

Ethereal Void in Britannia[edit]

All three generators are hidden in mountains on the Isle of the Avatar. Again, no separate map was used for places like the Ethereal Void which was housed on the huge upper floor of an equally huge building on the Isle of the Avatar.

Note that with Exult, this building loses its function with the Keyring Mod, since the new multi-map option allows for de-crowding the map. The current builds however have not yet removed it.

Objects Used as NPCs[edit]

The Armageddon spell cannot hurt the Ferryman – nor can any other measure. To enable his immortality, the Ferryman was made not an NPC but an object to which the player can talk. His weapon is part of his sprite, therefore unreachable and his object type has no inventory.

The Time Lord is also constructed using this paradigm. To add to the twist, the player normally perceives that the person locked into the time barrier is the Time Lord, however, it is just a plain statue. Moving the barrier to a different place with the hackmover and then using it reveals, that the barrier represents the Time Lord.

In Serpent Isle they had the problem that all NPC slots were used up when they created Silver Seed, so the NPCs in the expansion are actually modified monsters.[Citation needed]

Partitioning a Single Map[edit]

Because the Avatar is almost never over water, this gave the developers the chance to not only hide things under mountains, but also in nearly every water body that is out of sight.

These areas are usually reached via teleporter or stairs which have a hidden teleporter to this new place on the map. In normal gameplay this never becomes obvious.

Note that with Exult and its multi-map support, this solution is no longer needed and there are mods that clean up the map, shifting everything to an underground map.

Engineering the Teleport Storm[edit]

At the beginning of Ultima VII Part Two, the party loses much of its inventory to a teleport storm. The method behind this is to take away objects from the inventory and add new ones. However, the programmers were faced with a problem.

The mechanism only worked for things in the party’s possession, meaning that there was the danger of clever players putting everything on the ground (with exception of the Black Sword) and retrieving it after meeting Thoxa and the triggering of the events. To make this impossible, they used to clever coding to teleport the Avatar as well as the inventory. West of the beach are two copies of it. The game starts on the westernmost. When the lightning starts, the party starts to vanish. After that, the Avatar is for a second on the second beach, then the lightning strikes and the Avatar is teleported to the final beach, unable to reach any dropped objects on the first beach. In-game, the player does not notice this shell game, since a map and sextant are only later available.

Indeed, the objects retrieved are already on the map, meaning that every item actually exists two times on the map should they be dropped on the ground at the beginning.

Badly Chosen Objects and NPCs[edit]

One weakness of the engine is that objects that are supposed to be different can have the same properties, should the programmers miss something.

In Ultima VII this was not much of a problem. The only noticeable thing is that a filled bucket, regardless of what it is filled with – water, milk, alcohol, even blood – always has the same properties as a filled container of water for making bread. Only the blood from the Stone of Castambre has different properties.

It became a problem in Ultima VII Part Two. In the original game (that is, before the expansion), there was a serious problem with ghosts. The Chaos Hierophant ghost was accidentally used for all ghosts encountered on the Serpent Isle, which can be especially critical in the exploded powder mill early in the game. This is fixed in the Silver Seed, but it introduces another issue: the black-yellow pillars in the room with Isstanar actually are copies of the pillar from the test of purity in Furnace, which can lead to crashes.

See Also[edit]