Ultima VI: The False Prophet Technical Documents

Here's something you don't see every day - Ultima Aiera has gotten their hands on four of ORIGIN's original technical documents for Ultima VI: The False Prophet that were used as internal guides for creating NPC conversations, editing maps, and designing objects. Some of the fascinating reading from object design:
This section discusses those features about objects that will be implemented in Ultima VI. The primary author of this section is Herman Miller. Any questions should be addressed to him.

DEFINITIONS

Object: An object is any animate or inanimate thing that can be manipulated or changed by a player of Ultima VI. In the inanimate case, doors, bottles, chairs, carts, chests, etc. are considered to be objects of the simple kind. These objects are described by a similar structure listed in further pages of this document. In the animate case, an object may be considered to be a Non-Player character, an enchanted, dancing chair, or a monster. In general, an animate object could also be called a monster or NPC, In a few rare cases will an object be animate that does not take on living characteristics. As in an inanimate object, an animate object has the same Object Structure to define its basic characteristics, but it also contains additional information to define its more living qualities.

Shape Type: The Shape Type of a tile is the Number of the first tile in the group of tiles or it may be a reference number base for a tile. The first case would apply to objects like doors. The shape type would be the door tile number. Whether it was open or not (a different tile), the shapetype for any door found would be the same. The second case would make the shape type the first tile in an animation sequence (contiguous tiles).

Safe Macro: A macro that does not cause mysterious effects to occur when a parameter uses increment ++ and decrement -- operators, or other potentially destructive expressions.

Unsafe Macro: A Macro that causes mysterious effects to occur when the parameter(s) passed contain complex expressions arid/or increment ++ or decrement -operators.

RESTRICTIONS AND USES

Since every thing that can be manipulated by an Ultima VI player is considered to be an object, there 3re very few restrictions as to what may potentially be done by the player. It is conceivable to turn a statue of a tiger into a real tiger. It is possible to reduce a person to wood shavings. A door can be turned into a window, or a wizard. There is a practical limit to the number of more complex objects in the game. Because of the increase in size of the structure, a limit of 256 of these objects is allotted. Most of these will be the NPC's that can be found in the game. There is a possibility that another 32 or so will be added to act as monsters to be generated for combat.

DATA STRUCTURES

The Object list is a compilation of similar data structures. For simplicity and speed, the first 256 of these structures are the extended type needed for characters and monsters. The next 256 Objects are the party inventory. The rest of the Object List is divided into 16 regions, each region being part of the map. When characters cross from one map region to another, the Object Lists for the new regions are loaded and the old ones are saved, in the IBM implementation the structures are saved in memory as parallel arrays.