The road ahead

The road ahead

Any project needs a roadmap. For my SignalR MUD I’m going to try and embrace the concept of incremental and frequent releases once I get to writing code. Each step should yield a functional end result that adds functionality and moves the project forward.

There will be a couple of phases.

  1. Creation of the basic framework
  2. Making the UI for players not suck
  3. Creating a design interface to allow non-programmatic extension of the game by creating areas, creatures, items, etc.
  4. Creating an admin interface to allow modification of accounts/existing users etc.

A rough outline of the steps involved in phase 1:

  1. A simple SignalR chat application – user goes to the site, is asked for a name, and can begin chatting. Really bare bones
  2. Login/Account creation – using some kind of single/social sign-on and persist accounts. Will need some kind of validation to ensure uniqueness, etc. There will be roles as well – general user vs. admin, etc.
  3. Add rooms – people will only see messages from other users in the same room and will be able to move from room to room
  4. Add “characters” –  add functionality so that users  can create a character based on common role playing game concepts – gender, race (human, elf, klingon, whatever), class (warrior, mage, whatever)
  5. Extend “characters” by adding NPCs (non-player characters) They will functionally be the same as a character, except they will be controlled by the system.
  6. Add commands – When users are logged in and in the game as their character, we need a system that allows them to do things other than talk. User inputs will now be parsed and we will route their command through some kind of handler if it matches the desired pattern
  7. Add the physical universe
    1. Character bodies and body parts
    2. Items (things you can wear and use or do stuff with)
    3. Inventory management
  8. Add AI to the NPCs from step 5

Phases 2+ will be in other posts.

Leave a Reply

Your email address will not be published. Required fields are marked *