---
title: "Hall of Worlds"
url: "https://aigamehub.app/en/games/game-00958d"
source: "https://github.com/Rycochet/game"
source_type: "github"
play_url: "https://hallofworlds.app/"
platform: "both"
login_required: false
pricing: "free"
origin: "original"
ai_tools: ["Claude Code"]
game_languages: ["en"]
author: "Rycochet"
author_handle: "Rycochet"
category: "Action"
categories: ["action", "adventure"]
tags: ["multiplayer", "open-source", "procedural-generation", "roguelike", "rust"]
added: "2026-11-11T06:09:34.680Z"
updated: "2026-11-11T06:09:36.305Z"
locale: "en"
content_locale: "en"
---

# Hall of Worlds

A multiplayer roguelike with an infinite, procedurally generated world, playable as a native app or as a WebAssembly client in the browser.

## Description

Hall of Worlds is a multiplayer roguelike with an infinite, procedurally generated world, written in Rust with the Bevy engine. The client runs natively on Windows, macOS and Linux (where it includes the server for single player) or as a WebAssembly build in the browser, which connects to a separate authoritative server over WebSockets; a hosted Docker instance is available. Players move by clicking the map or using the arrow keys. The repository contains build and run instructions for native and web targets.

## Original post

Roguelike MMO with near infinite worlds

Topics: claude-code, game, mmo, open-source, roguelike

# Hall of Worlds A multiplayer roguelike with an infinite, procedurally generated world. - <https://hallofworlds.com>: landing page and email (not live yet) - <https://hallofworlds.app>: the game, running the Docker image - <https://hallofworlds.wiki>: game documentation, from [`docs/`](docs/) ## Development The game is written in [Rust](https://www.rust-lang.org/) using the [Bevy](https://bevy.org/) game engine. It has two parts: - **Client** (`hall-of-worlds`): the game itself, as a native app (Windows, macOS, Linux) or WebAssembly in the browser. Native clients include the server for single player; the browser client only connects to a server. - **Server** (`hall-of-worlds-server`): the authoritative game server, native only. Players connect over WebSockets, on the same port that serves the web client. The Docker image runs it. ### One-time setup (Windows) 1. Install the Visual Studio C++ Build Tools (with the "Desktop development with C++" workload): <https://visualstudio.microsoft.com/visual-cpp-build-tools/> 2. Install Rust: `winget install Rustlang.Rustup` (or <https://rustup.rs/>), then open a new terminal. 3. Install Trunk, the web build tool: `cargo install --locked trunk` 4. Install Visual Studio Code <https://code.visualstudio.com/> and accept the recommended extensions when you open this folder. 5. Turn on the pre-commit lint check: `cargo xtask hooks` `rust-toolchain.toml` makes Rust download the correct compiler and WebAssembly target automatically on the first build. On Linux you also need some system libraries, see <https://bevy.org/learn/quick-start/getting-started/setup/>. ### Running | What | Command | VSCode | | ------------------------- | ----------------------- | ------------------------------------------ | | Run natively | `cargo run` | Task "Run (native)", or F5 to debug | | Run the standalone server | `cargo run -p server` | | | Run in a browser | `trunk serve` | Task "Serve (web)", then <http://localhost:3000/web/> | | Release build (native) | `cargo build --release` | Task "Release build (native)" | | Release build (web) | `trunk build --release` | Task "Release build (web)", output in `dist/` | | Test (before merging) | `cargo xtask test` | Task "Test" | | Lint | `cargo clippy` | Shown automatically in the editor | | Format | `cargo fmt` | Automatic on save | The first build downloads and compiles Bevy, which takes several minutes. Later builds are much faster. `cargo xtask test` checks formatting, type-checks/lints the native and web builds with warnings treated as errors, and runs the tests. Run it before merging: GitHub's "Check" workflow only runs `cargo check --release` for now. Source code is in `crates/`: `shared` holds game rules and world generation used by both sides, `client` is the game app, `server` is the game server. Images/sounds/fonts go in `crates/client/assets/`. In the game, click the map or use the arrow keys to move (see [Controls](docs/controls.md)). Build output goes in `target/` (native) and `
