2022-12-21 20:31:32 +00:00
|
|
|
#+LATEX_HEADER: \RequirePackage[left=0.3in,top=0.3in,right=0.3in,bottom=0.3in, a4paper]{geometry}
|
2022-04-07 00:38:36 +00:00
|
|
|
* SilverMUD: The Hackable Terminal-Top Roleplaying Game.
|
2021-12-05 23:33:53 +00:00
|
|
|
SilverMUD is a tool for creating engaging and communal stories, all over the
|
2022-04-07 00:38:36 +00:00
|
|
|
world through the internet. It's designed to give a gamemaster the same power
|
2021-12-05 23:33:53 +00:00
|
|
|
to improvise that they have at the table, through simple programming and
|
|
|
|
easy-to-understand structures.
|
2022-12-21 20:31:32 +00:00
|
|
|
|
|
|
|
* Player's Guide
|
|
|
|
** The Basic Commands
|
2022-10-16 15:13:33 +00:00
|
|
|
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.
|
|
|
|
|
2022-12-21 20:31:32 +00:00
|
|
|
| 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. |
|
2022-10-16 15:13:33 +00:00
|
|
|
|
2022-12-21 20:31:32 +00:00
|
|
|
* Gamemaster's Guide
|
|
|
|
** Running the Server:
|
2022-10-16 15:13:33 +00:00
|
|
|
|
2022-12-21 20:31:32 +00:00
|
|
|
* Developer's Guide
|
|
|
|
** Build Prerequisites:
|
2022-10-16 15:13:33 +00:00
|
|
|
SilverMUD has the following dependencies:
|
|
|
|
- GnuTLS
|
|
|
|
- ncurses
|
2022-12-21 20:31:32 +00:00
|
|
|
|
|
|
|
** 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".
|
|
|
|
|
|
|
|
*** Comments:
|