Giter VIP home page Giter VIP logo

rustyhack-mmo's Introduction

Rustyhack Logo

Rustyhack MMO

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.

Build status Downloads License

Usage

  1. Download the relevant OS version from Releases
  2. Unzip
  3. Run rustyhack_server from the command line
  4. Run rustyhack_client from the command line
  5. Connect client to server (note: if you're running both locally, just accept the default address/ports, and it will autoconfigure)
  6. 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)

Controls

  • 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

Components

  • 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

Assets

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.

Building from source

  1. Install latest version of rust (most recently confirmed working 1.77.0)
  2. Download this repository
  3. Run cargo build in the repository root directory
  4. Copy assets directory into target/debug directory
  5. Run rustyhack_server and rustyhack_client from target/debug directory

rustyhack-mmo's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

rustyhack-mmo's Issues

When you force close a client terminal the server gets flooded with errors and lags a bit

Describe the bug
Server doesn't handle force quits well.

To Reproduce
Steps to reproduce the behavior:

  1. ctrl+shift+w a client
  2. look server log

Expected behavior
I expected it to work the same as ctrl-q

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • Windows 10

Additional context
[ERROR] Encountered an error receiving data: Os { code: 10054, kind: ConnectionReset

I was able to do a pvp battle with myself at least, so that's cool 🗡️

Multiplatform (Android)

Feature request
I realy would like to see this on android.
Compiling it doesnt seem to create an apk.

Only scripts are returning so not a working app.
There is some code needed to get it working on mobile.

(Also for windows it gave a lot of compile errors so it wasnt working. There is no describtion about what versions of all software is needed to compile this game.)

Solution
1.Add some code so it can be run on android.
2. Controls can be a emu, or virtual round drag buttons.

Should not be hard to make.

Add a "howto compile" file in your project.
That would make things easier in the future.
Almost all open source projects are missing version numbers of the compilers that are used.

Visual map glitch until window resize

Describe the bug
Whenever you load rustyhack_client visually the map doesn't load correctly until you resize window.

It doesn't seem to happen if you play on maximized window.

To Reproduce

  1. load client
  2. look at distorted map

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
image

Desktop (please complete the following information):

  • Windows 10

Additional context
Add any other context about the problem or logfiles related to the problem here.

btw is it possible to access the other maps yet?

Add NPC module

  1. What can I do with game money?
  2. Why we not has a NPC?

So, I think we can add NPC module to game, is right?


NPC is important, and I think so have some sub-feature:

  1. Shoping, sell basic weapon / equipment / medicine / etc., buy player's material
  2. Create safe area - walk around / attack monster in eyeshot / etc.
  3. Told story - set a tutorial or FAQ / create atmosphere.

Has any idea or think?

Maps dont load.

Describe the bug
If you walk to a entrance (for example the enterance in the graveyard), it does nothing.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'x:5 y:28'
  2. Nothing happens

Expected behavior
Spawn into another map.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows 10

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.