SilverMUD/README.org

101 lines
4.9 KiB
Org Mode
Raw Normal View History

#+LATEX_HEADER: \RequirePackage[left=0.3in,top=0.3in,right=0.3in,bottom=0.3in, a4paper]{geometry}
* 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. |
| TALK | Character Name | Begins a conversation with another player. |
2023-04-14 20:34:27 +00:00
| SHOUT | None | Messages the current area, ignoring any conversations. |
* 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:
**** Casing:
- Variables :: Variables should be in camelCase, with the exception being
variables used to store SCM values, in which case, they should in be
snake_case.
- Types :: User defined types should be in PascalCase.
**** 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.
2023-02-10 23:33:36 +00:00
**** 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: