Cold is a very general-purpose system for writing server
s of any kind, especially MUD
s. It evolved from CoolMUD
. It is run-time mutable
, meaning you can change the code as the server runs, allowing for continuous uptime even as code is added. It uses a powerful, Object-Oriented
language called ColdC
, influenced by C
, but other languages could also be created for it.
Basically it's a server system, with a bytecode-compiled scripting language. Objects, methods, variables etc. are stored persistently, meaning the state of the server's code, even tasks in the middle of execution, are immune to reboots (you can set the interval at which it saves). Everything is stored in a database file, containing the bytecodes and other data. Though it allows for standard file manipulation as well, it's convenient because of the persistence and the ability to have your whole project, code and all, contained in one file.
Since it's a server system, and meant for networked interaction, scripts are generally edited by commands sent within a connection to the server. This works well for MUDs, where users may want to write scripts defining interactions with MUD objects from the MUD itself, or with HTTP and forms.
"Cores," pre-built databases with basic functionality that define the method which is used to load new programs and data, are used to start off with for a particular type of project. For example, a large and sophisticated but woefully undocumented core for making MUDs called ColdCore is provided, which also has objects for basic web and SMTP interfaces.
The very popular MUD "The Eternal City" uses Cold as its server engine.
See http://web.cold.org/ for more information, downloads, and a list of servers which utilize Cold, with links.
A similar system is Mica, at http://darksleep.com/mica/