NodeJS based MUD engine
See the staging branch for the latest features.
Ranvier is not a websocket MUD. It does not have a web client. It is a plain ol' fashioned telnet MUD. Any client you use to connect to the MUD you played 15 years ago will work with Ranvier.
- Robust bundle system: Nearly every aspect of the game can be modified without changing the core and allows for easy packaging and sharing of commands/areas/items/npcs/channels/behaviors.
- Scripting is event-based. Put a listener in the script attached to your mob and it'll automagically happen when the event is emitted. Adding new events is easy as npc.emit('eventName'); See documentation on node event emitters for more.
- Pfile saving in JSON, easy to parse for external usage.
- Rooms, items, and npcs are easily described in yaml. No weird bullshit ~~~~ and byte-specific parsing that requires a GUI editor to build.
- Arbitrary room exits custom to each room not locked into n/s/e/w and it's not a pain in the ass to add them.
- Leveling, passive/active skills, effects.
- Flexible channel system.
- Incredibly simple-to-add commands.
- NodeJS >= v7.1.0
Up and running
git clone git://github.com/shawncplus/ranviermud cd ranviermud npm install sudo ./ranvier -v --save=10 --respawn=10
Connect to the server using
telnet localhost 23
- "Hotboot" - Reload anything from a bundle. Changing core will require a restart
- Rewrite script attachment to entities with the new bundle loader
- Implement containers
- Implement equipping (allow configuration of valid slots)
- Implement some kind of helper for time-based events
Refactor/rewrite entity loading
- Completely new bundle system in place
Clean up object handling code (item_util, get, put, containers, equipment, inventory, etc)
- Object handling rewritten from scratch
Implement global config file to allow sweeping changes without changing code
- Completely rewrite helpfiles
Refactor channels to have types that will allow things like yell vs chat
- Channels were completely rewritten
- Add and emit server events that bundles can bind to in
server-events/that will effectly relace the old
- Using the new server events create a
core-apibundle that provides a web api with authentication against player accounts and allows access to game data based on account privileges. To be used with Sheath
- Remove/refactor doors
- Remove sean's skills
- Remove examine
- Fix effects to only serialize options, not the entire effects array
- Remove/move/refactor combat_util/rtcombat
Nice to have
- Update help to autogenerate usage for channels
- Update help to allow data like skill cost as tokens