moss-n-puddles/web/static/website/intro.html
Howard Abrams 4ab02c7bd5 Move read command to character
Fixed a puppet pose of the reset.

Updated the introduction.
2025-05-17 11:51:56 -07:00

534 lines
21 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>RPG for the Moss and Puddles Mud</title>
<meta name="generator" content="Org Mode" />
<style type="text/css">
#content { max-width: 60em; margin: auto; }
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #e6e6e6;
border-radius: 3px;
background-color: #f2f2f2;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: auto;
}
pre.src:before {
display: none;
position: absolute;
top: -8px;
right: 12px;
padding: 3px;
color: #555;
background-color: #f2f2f299;
}
pre.src:hover:before { display: inline; margin-top: 14px;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-authinfo::before { content: 'Authinfo'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { }
</style>
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css2?family=Literata:ital,wght@0,300;0,600;1,300;1,600&amp;display=swap" /><link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css2?family=Overpass:ital,wght@0,300;0,600;1,300;1,600&amp;display=swap" /><style>body { font-family: 'Literata', sans-serif; color: #333; }
h1,h2,h3,h4,h5 { font-family: 'Overpass', sans-serif; color: #333; }
code { color: steelblue }
pre { background-color: #eee; border-color: #aaa; }
a { text-decoration-style: dotted }
@media (prefers-color-scheme: dark) {
body { background-color: #1d1f21; color: white; }
h1,h2,h3,h4,h5 { color: #fcca1b; }
code { color: lightsteelblue; }
pre { background-color: black; border-color: #777; }
a:link { color: lightblue }
a:visited { color: violet }
}</style>
</head>
<body>
<div id="content" class="content">
<div id="outline-container-orgdbe180d" class="outline-2">
<h2 id="orgdbe180d">An Invitation to My New Game</h2>
<div class="outline-text-2" id="text-orgdbe180d">
<blockquote>
<p>
“Great party, Shane,” you say as you grab your coat, “by the way, how did you meet the little person, and while we talked for some time, I cant remember his name.”
</p>
<p>
“I must have look over him, but all jokes aside, I didnt see him, so I cant help you. Must have been a friend of someone else,” Shane says finishing off his glass of wine.
</p>
<p>
“Huh. I would have thought the perfectly quaffed Vandyke and the blue-tinged hair on an older gentlemen would be pretty noticeable.” As you stumble home, you remember the ticket. Ah yeah, you have it, one entry ticket to <b>Wyldwood Bar</b>.
</p>
<p>
Even the description he gave you to get to this bar sounded wild. From the Gladstone city park, follow the red bandannas under the hawthorn trees…
</p>
</blockquote>
<p>
Sorry, I guess Im still in <i>memoir-writing-mode</i> after my six-week sabbatical, but I have an idea for a casual, <i>role-play heavy</i> RPG for us I call, <b>Sitting on Moss and Jumping in Puddles</b> where we play as either Fey denizens of this <i>Otherworld</i> or more normal fantasy characters, who tripped and landed in the middle of a <i>faery circle</i>, and now finds themselves outside time, caught at a tavern in a Feywild™ domain. Since I sent you this (or some brilliant person forwarded it to you), this might interest you.
</p>
<p>
Keep in mind that my idea is <i>different</i> and may not be for everyone. So no offense if you ignore this.
</p>
<p>
The <i>goal</i> (at least, at the beginning) of these game sessions is “just role play”, or maybe I should say, “not funny improv”? I mean, you make your character <i>interesting</i> and <i>entertaining</i> to everyone and do a “yes, and” to the characters other players puppet.
</p>
<p>
This works like a <i>chat channel</i>, so no audio/video for the online games. Looks a bit like:
</p>
<blockquote>
<p>
The pixies atop the giant, red-capped mushroom begin another tune.
</p>
<p>
White mist appears&#x2026;along with the smell of sulphur&#x2026; When the smoke clears, an old gnome materializes.
</p>
<p>
The old gnome happily asks you, &ldquo;Ah, a wanderer from the Mud World, I see. You look familiar, old chap, have we met before?&rdquo;
</p>
<p>
&gt;&gt; <code>say Gosh, I dunno, Mister, I don't ... Why are you so small?</code> <br />
You ask, &ldquo;Gosh, I dunno, Mister, I don&rsquo;t &#x2026; Why are you so small?&rdquo;
</p>
<p>
The old gnome indignantly asks, &ldquo;Judge me by my stature, will you?&rdquo;
</p>
<p>
&gt;&gt; <code>say I didn't mean no offense!</code> <br />
You exclaim, &ldquo;I didn&rsquo;t mean no offense!&rdquo;
</p>
<p>
The old gnome slams his staff against the floor. The room goes completely dark.
</p>
<p>
The music stops abruptly.
</p>
<p>
In the darkness, you see a pair of large red eyes, and a low gutteral growl.
</p>
<p>
The old gnome whispers to you, &ldquo;No offense taken, mah boy.&rdquo;
</p>
<p>
The glowing orbs along the branches of this room relight and the music, starts again.
</p>
<p>
&gt;&gt; <code>say/carefully Nice to meet yer acquaintance, sir.</code> <br />
You carefully say, "Nice to meet yer acquaintance, sir.”
</p>
</blockquote>
<p>
Essentially we each type commands that add to <i>story</i> that emerges in this chat channel.
</p>
<p>
You wont know any characters name (necessarily) and with the online interface Ive made, you wont even know which player is playing which character, and in fact, until a player actually introduces themselves, you may only know them as “blond-braided elf”. My interface is sort of like two chat channels: one for the players and one for the characters.
</p>
<p>
The game is <i>ultra casual</i>, so you can drop in (and leave) any time you wish.
</p>
<p>
Does this sound fun? If so, start thinking of an interesting character you can use to entertain us all. You can log in any time you want to get a feel for the interface, and create a character (and you can create more than one character, so dont fear commitment). You can change anything about your character (so again, dont fear commitment).
</p>
<p>
After logging in, you can wander around the Land of Wyldwood, but the portal to the Bar (where we will all gather for the “adventure”), opens from 7 to 9pm PST on Tuesdays (once you are in the bar, you can stay as long as you want).
</p>
<p>
Let me clarify my choice of using the word “adventure” in the previous paragraph. As a GM, I will be bringing interesting NPCs and events to this “Bar,” that you, as a character, can “interact,” but my vision focuses on the players characters. Perhaps you can think of the first few sesssions, as an extended Session Zero. After a bit (if we find it fun), I will start to add exploration, puzzles, and maybe combat. If you have questions about this, reach out.
</p>
<p>
While I am still planning on a bi-weekly game at my place, well play this game online weekly on Tuesday evenings starting on Tuesday the 27th of May.
</p>
<p>
I am basing the underlying rules on <i>Knave</i> (an overly simple OSR RPG), but the <i>interface</i> that Ive created will gloss over that, so nothing really to learn there.
The interface Ive programmed has an online help system and a tutorial to walk you through how to play, but what follows is a one page summary of how to use this game interface:
</p>
<p>
First, log in via <a href="https://www.howardabrams.com/cozy">https://www.howardabrams.com/cozy</a> and click the <b>Enter</b> button (if you would rather not use a web browser, you can install any MUD application, and connect to <code>howardabrams.com</code> at port <code>4000</code>). Next, create an account by typing:
</p>
<pre class="example" id="org9b8e573">
create username password
</pre>
<p>
And just use your name for the <code>username</code> and swap out a more interesting password. You will then log into the system each time, by typing:
</p>
<pre class="example" id="org777f7b9">
connect username password
</pre>
<p>
The first time you log in, you enter the character creator, a text-base wizard interface, where you can type <code>back</code> and <code>next</code> to answer prompts answering questions about your character. You will need to answer the following:
</p>
<ol class="org-ol">
<li><b>Short Description,</b> like <i>beardless dwarf</i> or <i>tall, blond elf</i>, etc.</li>
<li><b>Set Gender</b> for pronouns: male, female, neutral or ambiguous.</li>
<li><b>Character&rsquo;s &ldquo;Pose&rdquo;,</b> like <i>smoking a pipe</i>, or just <i>smiling</i>. You will change this often, but if anyone looks around the area, they will see something like: <i>beardless dwarf smoking a pipe</i></li>
<li><b>Long Description</b> is a full description that if anyone looks particularly at your character, this is what they see.</li>
<li><b>Character&rsquo;s Name</b> is mostly for you to keep track of your characters.</li>
</ol>
<p>
Thats it for making a character. I mentioned this before, but Ill say it again, during the game, you can change everything about your character, so if you arent sure, start with anything.
</p>
<p>
To play, you basically type commands. Again, the game has a tutorial for new characters to walk you through this process, but the key ones we will use for <i>role playing</i> include:
</p>
</div>
<div id="outline-container-org2a3ed0d" class="outline-3">
<h3 id="org2a3ed0d">say</h3>
<div class="outline-text-3" id="text-org2a3ed0d">
<p>
Type <code>say</code> and a phrase to say something so that everyone in the area can hear that. Because we use this command so much, and we want to make the text to read more interesting, it has a number of <i>aliases</i>, including:
</p>
<ul class="org-ul">
<li><p>
<code>ask</code>, so that it may read:
</p>
<pre class="example" id="org3cd8f83">
Beardless dwarf asks, “How are you?”
</pre></li>
<li><p>
<code>reply</code>, so it may read:
</p>
<pre class="example" id="org0f2bfee">
Tall, blond elf replies, “Well, and you?”
</pre></li>
<li><code>respond</code>, <code>yell</code>, and <code>scream</code>, are similar.</li>
<li><p>
<code>"</code> and <code>'</code> are shortcuts allowing you to type: <code>"Greetings</code> to have it read:
</p>
<pre class="example" id="org92b66e4">
Beardless dwarfless says, “Greetings”
</pre></li>
</ul>
</div>
</div>
<div id="outline-container-org8345e42" class="outline-3">
<h3 id="org8345e42">whisper</h3>
<div class="outline-text-3" id="text-org8345e42">
<p>
Allows you to say someone to a character that no one else will hear. So typing:
</p>
<pre class="example" id="orgdb358bc">
whisper gnome = Hey there, wake up!
</pre>
<p>
Will only send the message to the character matching the short description, <i>gnome</i>.
</p>
</div>
</div>
<div id="outline-container-org0d10ffc" class="outline-3">
<h3 id="org0d10ffc">emote</h3>
<div class="outline-text-3" id="text-org0d10ffc">
<p>
This command allows you to state anything else, you want. Essentially turning the chat channel into a bit of a novel. For instance:
</p>
<pre class="example" id="orgda363a1">
emote grins
</pre>
<p>
Will simply show:
</p>
<pre class="example" id="org7ab296f">
Beardless dwarf grins
</pre>
<p>
However, entering:
</p>
<pre class="example" id="org9406ec3">
From the corner of the room, /me walks over to /elf.
</pre>
<p>
Would read:
</p>
<pre class="example" id="org09af75b">
From the corner of the room, beardless dwarf walks over to tall, blonde elf.
</pre>
<p>
Hrm. Maybe I should automatically add some articles.
</p>
<p>
Why use the <code>/me</code> and <code>/elf</code>? See the next command…
</p>
</div>
</div>
<div id="outline-container-org48c9424" class="outline-3">
<h3 id="org48c9424">recog</h3>
<div class="outline-text-3" id="text-org48c9424">
<p>
This command allows you to sort-of rename someone. For instance, if you knew the elfs name was Shasta, you could type
</p>
<pre class="example" id="orgfc61a76">
recog elf = Shasta
</pre>
<p>
and now the previous example would read:
</p>
<pre class="example" id="org25a6d2a">
From the corner of the room, beardless dwarf walks over to Shasta.
</pre>
<p>
But this would be a label for a character <i>only for you</i>. Others may have the Elf labeled only as <code>That bitch elf</code>.
</p>
</div>
</div>
<div id="outline-container-orgdcfe772" class="outline-3">
<h3 id="orgdcfe772">pub</h3>
<div class="outline-text-3" id="text-orgdcfe772">
<p>
Use this command to send a message to the <i>out-of-character public channel</i>. All logged in users receive these OOC messages, prefixed by your <i>username</i>, not your <i>character</i>.
</p>
<p>
Typing something like:
</p>
<pre class="example" id="orgcb17b5b">
pub Is anyone here yet?
</pre>
<p>
Might show a transcript like:
</p>
<pre class="example" id="orga000a03">
[Public] howard: Is anyone here yet?
[Public] rick: Yeah. I just got here.
</pre>
<p>
Yes, for most client apps (including my web version), the <i>in-character</i> and <i>out-of-character</i> messages are interlaced. Not ideal, and Im going to see if I can do something about that.
</p>
<p>
I have more commands for getting and drinking Fey cocktails, and exhibiting their effects, but that should give you an idea of how this game will be played. Nope, no audio and no visuals, so feel free to put on your favorite Fey-inspired music and ambiance and casually role play with us.
</p>
</div>
</div>
<div id="outline-container-org1dc786d" class="outline-3">
<h3 id="org1dc786d">page (or tell)</h3>
<div class="outline-text-3" id="text-org1dc786d">
<p>
Like the <code>pub</code> command above, this allows you to talk to another player directly. I expect we will use this primarily for talking to the GM during the game session. For instance:
</p>
<pre class="example" id="org867be50">
tell howard I am here.
</pre>
<p>
And you might see:
</p>
<pre class="example" id="orgdc9cde1">
You paged howard with: 'I am here.'.
Account howard pages: Great.
</pre>
<p>
While both commands do the same thing, <code>page</code> sounds like the user gets a notification even if they arent logged in. Thats not how it goes.
</p>
<p>
Perhaps you should probably create an account with your <i>actual name</i>, so I can keep track of whos who. 😏
</p>
</div>
</div>
</div>
</div>
</body>
</html>