A barebones cross between an ASCII "roguelike" and MMORPG / MUD written in Rust. Lacking a lot of basic features. It currently has a client & server console program that allows a player to be created, move around, fight other players/monsters, pick up and drop things, look at things, and level up.
- Download the relevant OS version from Releases
- Unzip
- Run
rustyhack_server
from the command line - Run
rustyhack_client
from the command line - Connect client to server (note: if you're running both locally, just accept the default address/ports, and it will autoconfigure)
- By default, the server will back up to
rustyhack_server_world_backup.json
every 60 seconds, and will attempt to load from this on start (if it exists)
- Movement: ← ↑ → ↓ Arrow keys
- Combat: Move into enemy
- Commands:
- L - Look around you
- P - Pick up item underneath you
- D - Drop item
- U - increase stat points after level up
- M - change map when standing on map exit location
- Quit: Ctrl-q
- rustyhack_client - contains all the client code
- rustyhack_server - contains all the server code
- rustyhack_lib - contains modules that are shared between both client and server
- assets - assets required for the server to run, note: assets directory must be in the same location as
rustyhack_server
Currently, the following functionality is defined entirely by text or json files located in the assets
directory:
- maps - .map plain-text - Map definitions. All maps should be enclosed by a boundary of # characters in any shape, and end with a % character on the last line. See existing examples.
- map_exits - .json - Map exit locations, and where they lead.
- monsters - .json - Types of monsters, their stats and inventory etc.
- spawns - .json - Spawn locations of monsters. There should be one spawn file per map.
- Install latest version of rust (most recently confirmed working
1.83.0
) - Download this repository
- Run
cargo build
in the repository root directory - Copy
assets
directory intotarget/debug
directory - Run
rustyhack_server
andrustyhack_client
fromtarget/debug
directory