Git Product home page Git Product logo

hexagrammush's Introduction

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

  • Java
  • lein
  • Docker

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:

  • OrientDB - East, sunrise, dawn, compass
  • 7bridges' clj-odbp - seven, bridges

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í (離):

  • Radiance
  • Clarity
  • The Net
  • The Clinging
  • Fire
  • Associated with the plumage of the phoenix

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

hexagrammush's People

Contributors

oubiwann avatar

Stargazers

Sora Morimoto avatar Marco Dalla Stella avatar

Watchers

James Cloos avatar  avatar

hexagrammush's Issues

Create fantasy map for default world's inital region

This will, obviously, be a subset of the map created in #13. In particular, it will focus on the eight regions for the eight greater tribe groupings of this area:

  • n'Wanitui - Tundra tribes
  • Óðitwa - Boreal Forests tribes
  • Óðtunwwa - Plains tribes
  • Zâtunun - Hills tribes
  • Óðne - Western Coast tribes
  • Wituwi - Southern Coast tribes
  • Wóðniwi - Eastern Bay tribes
  • Unpoiwʻe - Southern Islands tribes

Here, we can do more with the symbols, e.g., placing trees, grasses, marshes, etc., as well as smaller rivers and maybe even major travel routes. Note that this expanse is equivalent in size and nature to the pre-colonial invasion land from San Francisco to Minneapolis. So we don't want to put in too much detail; we'll save that for single-region maps.

Add system components

  • configuration
  • logging
  • terminal
    • telnet
    • secure telnet (or ssh)
    • secure Clojure REPL
  • database
  • an HTTP server
    • serve static HTML for help files and docs (see #10)
    • dynamic HTML for system status (see #11)
    • REST API (use jarfile plugins for other components in other projects and assemble - see #12)

Create a fantasy map for Îlunao (the HexagramMUSH default world)

As posted (https://mobile.twitter.com/hexagram30/status/1170829029794099200), this is in progress:
image

Tasks for v2:

  • Add rivers
  • Clean up hills and mountains
  • Add more color for biomes and altitude
  • Move distance legend to bottom right
  • Blend ice caps more

Tasks for v3:

  • Refer to original elevation map without icecaps
  • Add white mountains to ice caps, where appropriate
  • Mountains got a little too sparse: add more foothils, fill in a bit more
  • Add region names (native names)
  • Add mountain range names

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.