Usecode

From Wikipedia, the free encyclopedia

Usecode is the common name for the scripting language used in some of the latter Ultima series games, particularly Ultima VII, Ultima VIII and their descendants and spin-offs. The name is derived from the name of the compiled file in Ultima VII. The Usecode in Ultima VIII is different from Ultima VII but similar in principle.

The languages were called AGIL (Another Goofy Interpreted Langauge) for Ultima VII and UNK (A nonsense coined by Tony Zurovec who also coined the term "Gump") for Ultima VIII both languages were created by Zack Booth Simpson. AGIL was a single threaded untyped language mostly for conversation scripting. Unk was a much more ambitious synchronous multi-threaded, multi-stack VM machine and a corresponding language for describing non-cyclic dependencies which aimed to script complex threaded events for animation and AI. Unk included a full IDE and debugger while AGIL was debugged by various in-game mechanics.

The Usecode is a bytecode interpreter which interfaces with the game engine and which runs the Usecode scripts as certain events in the game happen. Most of the game logic itself is stored in the Usecode file. This includes NPC schedules, game script in general, and conversations.

Exult includes ucc, a compiler that can compile C-like language to Usecode format.