hexagram30 / hexagramMUSH

A JVM (Clojure) MUSH platform, built on a graph database
Apache License 2.0
2 stars 0 forks source link

hexagramMUSH

A JVM (Clojure) MUSH platform, built on a graph database

Contents

This project is in pause while the subprojects upon which it depends are being constructed. To see the progress on those, visit the hexagram30 Github org.

Dependencies

Startup

  1. Start the world's graph database: lein with-profile +redis-plugin start-graphdb
  2. Start the game's key store: lein with-profile +redis-plugin start-db
  3. Ensure they are both running: docker ps
  4. Start the MUSH:
    • From the REPL: lein with-profile +redis-plugin repl and then (startup)
    • From the CLI: lein with-profile redis-plugin start-mush

Connecting

Telnet: rlwrap telnet localhost 1130

Secure Telnet: rlwrap ncat --telnet --ssl -n 127.0.0.1 1122

If you are on Mac OS X and have installed netcat via Homebrew, the --ssl option won't be available to you; instead, you should use the following:

openssl s_client -connect 127.0.0.1:1122

Usage

Registration Mode

TBD

Player Mode

TBD

Builder Mode

TBD

Multi-Realm Mode

TBD

Background

This project has been many, many years in the making, almost since my first playing of a text adventure game on a CP\M machine in 1981. Over the years, I have made several attempts in several different languages. For the past ten years or so, all of my plans were based on my experience with PennMUSH of the TinyMUD lineage.

As wonderful as PennMUSH is, thera re many thing about it which I would change, mostly from an infrastructure and organization perspective. The keystone for this planning work, though, has been my desire for a MUSH implementation to be a fully distributed system, capable of not only supporting multiple playing instances, but multiple backing databases as well.

To make things more difficult, I wanted a database that perfecly matched the usage of connection-based world-creation. As such, I eventually turned my eye to Graph datbases, and settled on OrientDB (and a corresponding Clojure library by 7bridges). With this in hand, the project finally started to gain steam and the component architecutre started to take shape. (Note, however, that I later switched to using Redis -- both as the backend for a graph DB as well as a key store.)

The next thing needed, before coding on this iteration could commense, was a name. Here's what we had:

Hey, there's a pattern! 8 (compass points), 7 bridages, 6 ... what? Lines, I guess :-) The eight trigrams of the bāguà (八卦) were already in my head as possible inspiration for a name, so it was a small leap to six lines for a hexagram of the Zhōu yì (周易, also known as the Yijing). The next step was looking at the various translations of the 64 hexagrams of the Zhōu yì to find one that fit with the spirit of building good games for all.

Eventually, I settled on ䷝, hexagram 30 - lí (離):

From several translations, I cobbled this together, tied it back to the underlying database, and set it as the Gihub org's description:

The sun rises, an image of fire. A net of radiance illumines the eight points: clarity.

Let the world-building commence ...

Donating

A donation account for supporting development on this project has been set up on Liberapay here:

You can learn more about Liberapay on its Wikipedia entry or on the service's "About" page.

License

Copyright © 2018, Hexagram30

Apache License, Version 2.0