Pattio / mud

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Multi-User Dungeon

Multiplayer real-time text-based virtual world game written in Java using RMI API.

Running instructions

  • Open settings.txt file and change rmi registry and server ports to your desired ones, also change server address to your server address, if you don’t know the address don’t worry just follow the next steps.
  • Use unix based shell and type ./startServer.sh now all the files will be compiled and server will start running, you will see message “Server is successfully running on hostname: xxxxxxx”, this is the server address you should be using in settings.txt file, so if you haven’t changed it yet, change it now before you start the client.
  • Again, using unix based shell type ./startClient.sh now the client will start running

Note: you don’t need to start rmiregistry manually, because server is handling it automatically i.e. it tries to create it if it wasn’t created yet, otherwise it will just use existing one.

Features

  • User can move in any direction in MUD by writing move [north, south, east, west]
  • User can see other users by typing see
  • User can pick up items in the mud by typing command pick followed by item name
  • User can create MUD at runtime
  • Users are able to create any number of MUDs
  • When player launches game client, player sees all the servers with number of online players in each server, also player sees number of total online player and max number of allowed online players Welcome screen
  • Account system. When user selects server, user is asked to enter username and password. If that username is not already used, new account is created, otherwise password is checked. If password is incorrect error message is displayed. If password is correct, but someone is already logged in into account, error message is displayed Login screen
  • User can see inventory by typing inventory
  • User can see how many players are online on current server by typing online
  • Real time updates. Client is polling server to ask if there are any new events and event manager is responsible for storing all the new events for all the players. Because of this update cycle implementation server doesn’t need to open new RMI connection for each client to send the updates.
    • User connects to server which you already playing in Real time updates
    • Another user picks item near you Real time updates
    • Another user moves to your current location from other location Real time updates
  • User can see all available commands by typing help Available commands
  • If user terminal/computer crashes, user is automacillay removed from the server
  • Persistent storage for the accounts, so all the accounts are serialized and saved in (Storage/accounts) file. It means that current location, inventory items and other details are saved
  • Persistent storage for the muds, so all the muds are serialized and saved in (Storage/muds) file
  • Server tracks connects/disconnects in real time Server
  • Client is as lean as possible, i.e. almost everything is handled on the server side. This lets add new updates to the game without needing to update the client.

About


Languages

Language:Java 99.0%Language:Shell 0.6%Language:Makefile 0.4%