3.5 KiB
SilverMUD Design Document
What Is The Main Goal Of SilverMUD?
The main goal of SilverMUD is to create a text-based role playing game system that is setting-agnostic, where a game master can create new content through interacting with a Scheme REPL. SilverMUD will tend to favor simple abstractions for game concepts, in order to accomplish being more setting-agnostic and easy to play over the internet.
Concepts:
Worlds
Worlds are a collection of regions and dungeons, tied to a setting.
Regions
Regions are a collection of areas bundled together. This lets them be unloaded and loaded as a group, as well as providing a mechanism for dividing your areas based on locales or otherwise.
Dungeons
Dungeons are similar to a region, but differ in one crucial way; they are instanced, allowing for a single player or party (or potentially multiple) to enter a copy of the dungeon, allowing for setups similar to a MUD or MMO, or easily reusable encounters.
Rooms
Rooms are the dungeon equivalent to areas. They are separated purely to strengthen the distinction between dungeons and regions; this may change to add additional functionality
Objects
Objects are a representation of items that can be in areas, rooms, or player's inventories. They have a name, description, and uses. Looking at an object displays the name, description, and uses.
Uses
Uses are Scheme functions pushed onto the event queue when a player activates them through the use command.
Uses may additionally have a usage requirement, and a visibility requirement.
A usage requirement is a Scheme function that is passed a reference to the player attempting to activate the use. It returns #t or #f, corresponding to the activation being successful or a failure.
A visibility requirement is a Scheme function that is passed a reference to the player viewing the object. It returns #t or #f, corresponding to the use being displayed to the player or hidden.
Properties
Objects may have additional properties that dictate how they can be interacted with. Currently planned properties are:
- player-pick-up
- Defines whether a object can be moved to a player's inventory from an area or room.
- player-put-down
- Defines whether a object can be moved from a player's inventory to an area or room.
Events
Players
Abilities
Settings
Settings are a combination of definitions of items, custom rules, and other miscellaneous things like common description strings and enemy types. It's somewhat analogous to a sourcebook or rulebook for a traditional table-top RPG, allowing the game to take on different forms and settings depending on which ones are being used. These are loaded as Scheme files in a world.