Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Mutable Bunnies Build Status

A microservices based distributed 2d MMORPG with Hazelcast and Vert.x on Java 11, currently 20k LOC + configuration.

Game clients

The backend is developed using the chili-core framework

Game architecture


First demo video now available!

If you are a part of the team please include the client prototype submodule.

# cloning the repository:
git clone --recursive <repository-url>

# if already cloned:
git submodule update --init --recursive


  • Requires node/npm

Builds the project and runs all tests.

./gradlew build
  • Authentication: Account creation and available realms.
  • Routing: Routes client requests in/out of the cluster.
  • Realms: Handles incoming connections, instance travel.
  • Instances: Handles game logic.
  • Realm registry: keeps track of active realms.
  • Website: Provides an interface for account/character/realmlist.
  • Logging: Receives logging data from the other components.
  • Social: Achievements, chat, guilds. (TBD)
  • Auction house: Handles asynchronous trading with orders/offers. (TBD)
  • Serverstatus: Provides a quick overview of system uptime. (TBD)

Patching is no longer a service - the webseed standard was not very well supported so support was dropped. We are aiming to create a browser based game primarily and will rely on a CDN to provide game resources. We want to avoid serving files over the cluster or machines that handles the website or the game state.

Communication between services is done over the cluster/local bus, other available transports such as websock, tcp, udp and rest is available but not recommended unless a service is not able to join the cluster. Services that needs to authenticate another service should use the AuthenticationGenerator to generate pre-shared keys, secrets and generate tokens. This may be invoked from the standard launcher in chili-core, using the --generate commandline argument.

All communication between services in different JVM's uses a text-protocol based on JSON for simplicity.


This is a 2D MMORPG server that is in development, which focuses on

  • ease of development: simple event passing and handler-based server development.
  • fast feedback loop: fast startup times, fast client load times, unit-testable.
  • simple and extendable: scripted events, yaml-based npc/item/spell/affliction configurations.


Overview of the server implementation progress

Core mechanics

  • movement
  • player chat
  • spell engine (cooldown, learned spells, charges)
  • dialog engine
  • affliction engine
  • cross realm/instance chat
  • friend lists
  • instance travel
  • instance loading
  • crafting
  • questing
  • dynamically deployed instances


  • scripted npcs/entities
  • support for animations
  • spawn entities/npcs from script
  • NPC initiated dialogs
  • NPC/interaction dialogs
Audience 🔥
  • Game developers seeking to implement a 2D RPG multiplayer game.
  • Aspiring game developers with an interest in backend development.
  • Players who are into simplistic 2D MMORPG's.
Great software 💙

To make this project a reality we use only great software.

On the backend

Contributing 💜

Do you have an idea for a spell? a new player class? an NPC? gameplay mechanics? story? anything really, we are open 24/7 for contributions. Just submit an issue or a PR.


Isometric 2D mmorpg that builds on chili-core.








No releases published


No packages published