Richard ZinkandClaude Opus 5.5 fbf6f223fc Switch repo to English, add i18n with EN/DE language files and first-start language selection
- in-game texts moved to lang/en.lang and lang/de.lang (key = text, placeholders)
- game logic emits message keys + args, translated at display time
- localStorage access via own miniquad JS plugin (www/dc_plugin.js)
- code comments, DESIGN.md, CREDITS.md translated; README.md added

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 22:53:03 +01:00

DungeonCraft

An original dungeon building & defence game that runs in the browser (Rust + macroquad, compiled to WebAssembly).

Dig out your underground realm, claim the portal to attract creatures, keep them fed, rested and paid, fend off endless hero waves that adapt to your army – and finally destroy the Hero Gate.

  • 3D isometric view with a freely rotatable and tiltable camera
  • Procedural pixel art, irregular cave walls, flickering torch light
  • CP437 text-mode style interface with the DINOBYTE bitmap font
  • English and German (language files in lang/, easy to extend)

See DESIGN.md for all design decisions and CREDITS.md for third-party assets.

Running

The easiest way is Docker; the image builds the WASM file and serves it with nginx:

docker compose up -d --build
# open http://localhost:18093

Building without Docker

Requirements: Rust with the wasm32-unknown-unknown target.

rustup target add wasm32-unknown-unknown
cargo build --release --target wasm32-unknown-unknown
cp target/wasm32-unknown-unknown/release/dungeoncraft.wasm www/
cp ~/.cargo/registry/src/*/macroquad-*/js/mq_js_bundle.js www/
python3 -m http.server 8080 -d www   # open http://localhost:8080

Testing the game logic

The game logic (src/game.rs, src/map.rs) does not depend on macroquad and contains a headless simulation test.

Controls

Input Action
Left click / drag Use the active tool (dig and rooms: drag a rectangle)
Right click Drop a unit from your hand
Right drag, WASD, arrows, screen edge Move the camera
Middle drag, Q/E, R/F Rotate / tilt the camera
Mouse wheel Zoom
1–9, 0, X, V Select a tool or spell
P / Space Pause
M, +/- Sound on/off, volume
G Tile outlines on/off
H Help

Adding a language

  1. Copy lang/en.lang to lang/<code>.lang and translate the texts (placeholders {0}, {1} stay as they are).
  2. Add the file to SOURCES in src/i18n.rs.
  3. Note: the DINOBYTE font only covers the CP437 character set.
S
Description
No description provided
Readme MIT
351 MiB
0 Stars 1 Watchers 0 Forks
2026-11-07 13:37:02 +01:00
Languages
Rust 48.2%
Logos 46.2%
Python 5%
JavaScript 0.4%
Shell 0.1%