Room.JS Angular client
Alpha version - Work in Progress
This is an experimental browser-based client for Doughsay's Room.JS MOO/MUD game engine.
The original (read: official) client is found here. It is based on Knockout.js for the view models, and on Babel and Rollup for transpiling and packaging its ECMAScript6 sources.
While obviously reusing similar concepts, this client project is my attempt at playing with Angular2, TypeScript and Angular-CLI.
Additionaly, this client aims at offering some sort of Graphical MOO/MUD, rather than a pure text experience:
- Sounds
- Images and maps
- Split views, pop-ups, etc.
- ...
For that purpose, the client expects some JSON structures to be sent from the game world. A specific game world is therefore included, to be used in place of the standard demonstration provided with Room.JS.
Steps:
- install room.js referring to its own documentation
- Install room.js-ng2-cli
- Replace the default demonstration world in Room.JS by the one provided with the client (demo subfolder)
- Start the server
- Go to roomjs-client2 and run
npm install
- Edit the environment files in roomjs-client2/src/environments and configure the serverURL key to point to your own Room.JS instance (address and port)
- Build and/or serve the client with Angular-CLI, as detailed in its own README
High level features and TODO list:
- Basic communication logic
- Login logic with menus/popups
- Command line
- Text view (as in original client)
- Players in current location, with status
- Verb/Function editing (as in original client)
- Look-up, code retrieval and display
- Save to game engine
- Sound system
- Effects (one-shot) sounds
- Ambiant sounds
- User settings control (UI)
- Image/Map system
- Isometric basic view
- Environment specific assets (indoor, outdoor...)
- Room contents
- Inventory system
- View
- Simple interactions (use item)
- Drag and drop interations (use item on item)
- Trade (with other players, etc.)