In Memoriam: Tai'lahr

OpenUru.org, along with the rest of the Mystonline community, is mourning the loss of Tai'lahr on October 16th, 2019.

Rest in Peace, friend.

Game Overview

From OpenUru
Jump to navigation Jump to search


This page contains draft content
The content of this page is a "work-in-progress" and is subject to change. Do not place undue reliance on the completeness or accuracy of the material presented here!

Cet article est aussi disponible en français.


Myst Online : Uru Live (MOUL) runtime environment

OpenUru MOUL runtime environment consist of two game software. The first is the game client, called CyanWorlds.com Engine (CWE). The second is the server, called Myst Online Server Software (MOSS).

CyanWorlds.com Engine (CWE) is the Cyan Worlds' Plasma game engine used to run Myst Online: Uru Live. It's based on the concept of Keyed Object Messaging System. There is a great reference that explain a little what Plasma is and how it works on the Guild of Writers' Wiki [1].

There is some information about the Myst Online Server Software (MOSS) on the OpenUru's wiki. Considering that a'moaca' contributed in the Alcgus Server, many concepts implemented in Alcgus can be the same in MOSS. There is documentation about Alcugs Server architecture on the Alcugs' Wiki [2].

There is also a bunch of other miscellaneous software, not directly related to MOUL runtime environment, that won't be covered for now:


Game content

The game content is composed of Python script , SDL variables, graphics, sounds, journals, movies, fonts, language localization, fog ages information, age information, vault, etc... The content is generally encrypted using XTEA algorithm [10]. You can find most of the content files in the dat folder of the client installation (ex: C:\Program Files\Uru Live\dat). SDL and vault information are stored on the MOSS server.


Python is used for the game's interactions (puzzle, action, events, etc..). There is also some game logic in the CWE code written in C++. (heek, bluespiral aka "door run", marker, etc...)
SDL variables are used to keep track of progress and changes in ages. Age's SDL are written in files with .sdl extension. SDL stands for State Description Language.
Graphics are packaged in Page Resource Package files (.prp). Most of the time, Plasma Resource Page is used to name the PRP format.
Journals (ex: Sharper's journal) are written in Plasma Book Markup Language (PBML) [11]
Sounds use OGG Vorbis format (.ogg).
Movies use Bink format (.bik).
Fonts used in the game are in p2f format (.p2f).
Language localization are written in .loc files.
Fog ages information contain information used by CWE to generate fog in ages. They are stored in .fni files.
Age information are used to store some general information that CWE needs to load an age. They are stored in .age files [12].
Vault is where the trees of vault nodes are stored. Vault nodes are used to store the game states.


References: