Complete source code from an up-and-running sci-fi MUSH, including extensive MongoDB-backed systems coded in Ruby.
Questions / need help? Connect to the support MUSH at wcmush.com 2199
This page indexes the public source for Wing Commander: New Horizon MUSH (http://www.wcmush.com/), a text-based online storytelling game set in the Wing Commander video game universe. The game is no longer running as a "real" game, but you can connect to wcmush.com 2199 if you want to see it up and running. The code and basic database has been made available, for you to use as you wish.
This codebase contains a number of unusual customizations to PennMUSH - principally among them, a complete implementation of a JSON API that allows for the connection of external processes to exchange data in real-time with the MUSH process (including support for asynchronous callbacks). There is a complete implementation provided in Ruby, with many detailed coded systems suitable for a sci-fi game, but the PennMUSH side of the JSON system could also be used to connect to other platforms.
The systems code is a fusion of all-Ruby systems (that have very basic softcode hooks to initiate them) and a few all-softcode systems that were written before the Ruby layer was finished. All the Ruby systems rely on MongoDB for data storage.
It's a complete and full codebase from an up and running game - most of the code has been thoroughly tested, debugged, etc. Very little of the code is theme-specific - the parts that are could either be unused or replaced.
Included in this codebase are complete and fully-implemented systems for:
There are three repositories that make up the codebase:
In addition, if you're just interested in the JSON modifications to PennMUSH without all the Ruby systems, the "reference implementation" that has no WCNH-specific stuff can be found at pennjson. There is a branch in the pennjson repo for 'vanilla' PennMUSH 1.8.5p0, so if you're interested in finding out exactly what has been added, you can run:
git diff penn-185p0
This is technically offered as-is, with no warranty of its suitability for any purpose. I am happy to accept pull requests for bugs and will offer support via either issues or email as best as I can.
If you end up using this, please let me know! I'd love to check out what you do with it. :)
You can email me at firstname.lastname@example.org, I'm usually on Freenode as
tkrajcar, and you can connect to wcmush.com 2199 to poke around the "real" game that this code came out of - I (Rince) usually am idling on there.
In addition to myself (@tkrajcar, known on MU*s as Rince or Eratl), the following people helped create this project, and deserve thanks: