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>
This commit is contained in:
1 parent
a101f6ddc4
commit
fbf6f223fc
18 files changed
+1072
-362
No files matched your search
@@ -0,0 +1,58 @@
|
||||
# DungeonCraft
|
||||
|
||||
An original dungeon building & defence game that runs in the browser (Rust + [macroquad](https://github.com/not-fl3/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](DESIGN.md) for all design decisions and [CREDITS.md](CREDITS.md) for third-party assets.
|
||||
|
||||
## Running
|
||||
|
||||
The easiest way is Docker; the image builds the WASM file and serves it with nginx:
|
||||
|
||||
```sh
|
||||
docker compose up -d --build
|
||||
# open http://localhost:18093
|
||||
```
|
||||
|
||||
### Building without Docker
|
||||
|
||||
Requirements: Rust with the `wasm32-unknown-unknown` target.
|
||||
|
||||
```sh
|
||||
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.
|
||||
Reference in new issue
Block a user