A text-based hackable multiplayer role-playing game. Currently in very early development.
Go to file
Barra Ó Catháin a99296e31e Added a list of players in the area to /look.
- /look now lists the current players in the area.
2023-02-27 16:35:32 +00:00
src Added a list of players in the area to /look. 2023-02-27 16:35:32 +00:00
tests Cleaned and styled SilverMUDClient.c 2022-12-21 20:31:32 +00:00
LICENSE Added the AGPLv3 as the license, and renamed SilverMUD.org. 2023-02-19 11:28:16 +00:00
Makefile Fixed Thomas's Bug. 2023-02-08 17:15:23 +00:00
README.org Added the AGPLv3 as the license, and renamed SilverMUD.org. 2023-02-19 11:28:16 +00:00

README.org

SilverMUD: The Hackable Terminal-Top Roleplaying Game.

SilverMUD is a tool for creating engaging and communal stories, all over the world through the internet. It's designed to give a gamemaster the same power to improvise that they have at the table, through simple programming and easy-to-understand structures.

Player's Guide

Running The Client

How To Connect To A Server:

To connect to a server, use the command-line option -i, and the IP address of the server. If the server admin is hosting the server on a port other than the default port of 5000, you can use the -p option with the number of the port. If the connection is successful, you will be placed in the server's login area. Type /join <player name>, where player name is a name of your choosing, and you will be placed in the spawn area, ready to play.

Other Launch Options:

The Basic Commands

SilverMUD is played through a set of very simple commands. To use a command, type a forward-slash (/) followed immediately by the command name. The command can be upper or lower-case.

Command Arguments Effect
JOIN Character Name Logs you into the server with the given character name.
MOVE Path Name/Path Number Moves you down the given path.
LOOK None Describes the current area.
STAT None Displays your current status and character sheet.
SPEC Core Stat Name Allows you to apply spec points to a given stat.
TRY Core Stat Name/Skill Name, Object Number Attempt to use the given stat or skill on the object.

Gamemaster's Guide

Running the Server:

Developer's Guide

Build Prerequisites:

SilverMUD has the following dependencies:

  • GnuTLS
  • ncurses

C Style Guide:

These rules attempt to make the program as visually clear as possible, while some rules may be made based on my own personal tastes.

()
These are parentheses.
[]
These are brackets.
{}
These are braces.

Formatting:

Control Statements:
  • A space should be between the keyword and the condition. This is to make control statements visually distinct from function calls.
  • Opening braces should be on the line after the control statement, and closing braces on the line after the last statement, on it's own. This is to make the scope of the control statement easily identifiable.
  • else and else if should always be on a new line, not the same line as an if statement's closing brace. This is to more easily distinguish the seperate blocks.
  • Control statements should never omit braces and do single statements. This is mostly personal preference, but I do think it makes things more clear.

Naming:

Rule 0: NEVER USE i AND j!

Never use the variable names i and j. These are easy to confuse, and often make nested loops awful to read. Name these more descriptively. For example:

  • If you are using a variable to index an array, name the variable index.
  • If you are indexing multiple arrays, name it "array name + Index".
  • If you are using it to count something, call it count, or "name of the thing you are counting + count".
Rule 1: No one letter variable names, unless in a mathematical function.

You should never use one letter variable names. They're needlessly obtuse and you will not remember their meaning upon re-reading of the source code. The exception to this is when you are writing a function which replicates a mathematical formula or function with commonly accepted notation. However, you should consider if it would be better to break mathematical convention for clarity inside the program, such as when the variable names are the first letter of a word or the mathematical notation uses many similar looking variables.

Rule 2: Prefer to use full words in variable and function names:

You should always prefer to use full words in variable and function names. It makes the source code much easier to read, like a sentence. Ideally, if you want to shorten the name, use synonyms or rephrasing before you resort to removing letters.

Comments: