From 80f8335b6d86f41c0a48a85d93be83c4af34a631 Mon Sep 17 00:00:00 2001 From: Richard Zink Date: Mon, 2 Nov 2026 22:24:34 +0100 Subject: [PATCH] Name DungeonCraft, 3D-Entscheidungen dokumentiert Co-Authored-By: Claude Opus 5.5 --- CREDITS.md | 2 +- DESIGN.md | 11 ++++++++--- src/main.rs | 4 ++-- src/ui.rs | 2 +- www/index.html | 2 +- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/CREDITS.md b/CREDITS.md index 82eb2ab..21141dd 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -6,4 +6,4 @@ - Datei: `assets/dbyte_1x.png` (unverändert). Im Spiel wird sie ganzzahlig skaliert und eingefärbt dargestellt. ## Alles andere -Code, prozedurale Grafiken und Spieldesign: Dungeoncraft-Projekt. +Code, prozedurale Grafiken und Spieldesign: DungeonCraft-Projekt. diff --git a/DESIGN.md b/DESIGN.md index 9c4792a..60bc58d 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -1,4 +1,4 @@ -# Dungeoncraft – Design-Entscheidungen +# DungeonCraft – Design-Entscheidungen Eigenständiges Dungeon-Management-Spiel (Genre: Dungeon-Aufbau & Verteidigung), läuft als WASM im Browser. @@ -10,8 +10,13 @@ Eigenständiges Dungeon-Management-Spiel (Genre: Dungeon-Aufbau & Verteidigung), - Sound: Event-System + macroquad-Audio vorbereitet (Lautstärke, Stumm-Taste M); Klänge werden später generiert ## Grafik -- Top-Down, **prozedurale Pixelart**: Kacheln und Figuren-Sprites werden im Code erzeugt -- Wände mit Pseudo-3D-Schattierung, Minikarte +- **3D**, **echt isometrisch** (orthografische Kamera) +- Kamera **frei 360° drehbar + neigbar** +- Wände mit **unregelmäßiger Oberfläche** (Rauschverformung der Wandflächen, nahtlos zwischen Nachbarn) +- Texturen: **prozedurale Pixelart** (Kachel-Atlas) +- Figuren: **Pixel-Sprites als Billboards** (immer zur Kamera gedreht) +- Licht: **Dunkel + Fackeln** – Grunddunkelheit, eroberte Bereiche und Lichtquellen (Fackeln, Kern, Portal, Tor) hell, flackerndes Licht +- UI bleibt 2D-Ebene darüber, Minikarte ## Steuerung - Linksklick: aktives Werkzeug benutzen (Rechteck aufziehen für Graben/Räume) diff --git a/src/main.rs b/src/main.rs index a559932..e17eaeb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -// Dungeoncraft – Dungeon-Aufbau & Verteidigung im Browser (Rust + macroquad, WASM). +// DungeonCraft – Dungeon-Aufbau & Verteidigung im Browser (Rust + macroquad, WASM). mod game; mod gfx; @@ -16,7 +16,7 @@ use sound::SoundBank; use ui::{hover_info, Tool, Ui, UiAction, TOOLS}; fn conf() -> Conf { - Conf { window_title: "Dungeoncraft".into(), window_width: 1280, window_height: 800, high_dpi: false, ..Default::default() } + Conf { window_title: "DungeonCraft".into(), window_width: 1280, window_height: 800, high_dpi: false, ..Default::default() } } struct Input { diff --git a/src/ui.rs b/src/ui.rs index 6c43ed5..e9cd95f 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -436,7 +436,7 @@ impl Ui { let sh = screen_height(); let x = ((sw - cols as f32 * CW) * 0.5).max(0.0); let y = ((sh - rows as f32 * CH) * 0.5).max(0.0); - gfx.window_titled(x, y, cols, rows, S, true, FRAME_HI, Color::new(0.05, 0.03, 0.04, 0.97), "DUNGEONCRAFT", FRAME_HI); + gfx.window_titled(x, y, cols, rows, S, true, FRAME_HI, Color::new(0.05, 0.03, 0.04, 0.97), "DungeonCraft", FRAME_HI); for (k, (l, c)) in lines.iter().enumerate() { gfx.text(l, x + CW * 3.0, y + CH * (k as f32 + 2.0), S, *c); } diff --git a/www/index.html b/www/index.html index ea8d23f..007b645 100644 --- a/www/index.html +++ b/www/index.html @@ -2,7 +2,7 @@ - Dungeoncraft + DungeonCraft