Next: Objects

Prev: Top

Overview

Coldmud is an object-oriented multi-user network database server with a C-like programming language for defining object behavior.

The components of Coldmud's database are objects, which together comprise the object hierarchy. Objects have variables, which determine their state, methods, which determine their behavior in response to messages from other objects, and parameters, which give the names of the variables used by the object's methods.

Coldmud objects also have parents, which are other objects. An object's behavior is determined by its inherited methods, which it gets from its parents, and its overridden methods, which it defines itself. One object, the root object, has no parents; all other objects have at least one parent.

Methods determine objects' responses to messages using a C-like language called C--. The philosophy of C-- stresses simplicity, readability, and vertical code organization.

Encapsulation is an important feature of Coldmud's object system. An object cannot directly access another object's data; it must send a message to perform the required action. Moreover, an object cannot directly access the data used by its parents' or its children's methods.

Coldmud uses a disk-based database; only a limited number of objects exist in memory at any time. As long as the bulk of the object database is not concentrated in a few objects, Coldmud's process size should not grow beyond a certain point even if the database gets very large.

This manual is intended as a reference for programmers and administrators. It does not document any object database, and may not be appropriate as a tutorial. The best way to get started learning C-- is to look at existing code, such as code in a core database, and refer to this manual when you don't understand how a piece of code works.