Skip to content

Omikhleia/room.js-ng2-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 

Repository files navigation

room.js-ng2-cli

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.

Installation

Steps:

  1. install room.js referring to its own documentation
  2. Install room.js-ng2-cli
  3. Replace the default demonstration world in Room.JS by the one provided with the client (demo subfolder)
  4. Start the server
  5. Go to roomjs-client2 and run npm install
  6. 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)
  7. Build and/or serve the client with Angular-CLI, as detailed in its own README

Work in Progress

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.)