homegarden/README.md

50 lines
2.0 KiB
Markdown

# HomeGarden
First-Person-Farmspiel mit Voxelgrafik. Der Spieler besitzt einen eigenen Garten,
kümmert sich täglich um Pflanzen, baut Blumenkästen/Gewächshäuser und verdient
Geld über einen Marktplatz. Das Wachstum orientiert sich an der Realität, ist aber
für ein Spiel beschleunigt (Stunden bis Tage). Das Spiel läuft über Timestamps im
Hintergrund weiter — auch wenn es geschlossen ist.
## Tech-Stack
- **Java 21** (LTS)
- **LWJGL 3.3.3** (OpenGL 3.3 Core + GLFW) — Grafik/Input-Layer
- **Gradle** (Wrapper, kein lokales Gradle nötig)
- Eigene Engine: Renderer, Voxel-Welt, Physik, Spielschleife selbst geschrieben
## Build & Run
```bash
# JDK 21 vorausgesetzt (brew install openjdk@21)
./gradlew run # startet das Spiel (Fenster öffnet sich)
./gradlew build # kompiliert + erstellt Jar
```
## Steuerung (Phase 1)
- **W/A/S/D** — Laufen
- **Maus** — Umsehen (Pointer ist gefangen)
- **Leertaste** — Springen
- **Esc** — Fenster schließen (beendet)
## Projektstruktur
```
src/main/java/de/jfritzsche/homegarden/
Main.java # Einstiegspunkt
core/Game.java # Spielschleife + Rendering
core/Window.java # GLFW-Fenster + Input
gfx/Shader.java # Shader-Compile/Link
gfx/Mesh.java # VAO/VBO-Wrapper
gfx/Camera.java # First-Person-Kamera
math/Vec3.java # Vektor-Mathematik
math/Mat4.java # Matrix-Mathematik (perspective/lookAt)
world/Block.java # Blocktypen + Farben
world/VoxelWorld.java # Fixed-Grid-Welt + Mesh-Generierung
player/PlayerController.java # Bewegung + Gravitation + Kollision
```
## Roadmap (Phasen)
1. **MVP-Engine** (aktuell): Fenster, Loop, Voxel-Render, FP-Laufen + Kollision
2. **Interaktion**: Blöcke platzieren/entfernen (Raycasting), Bausystem-Grundgerüst
3. **Pflanzen-Simulation**: Wachstumsstufen, Wasser/Health, Offline-Timestamp-Berechnung
4. **Ökonomie**: Marktplatz, Inventar, Werkzeug, Kaufen/Verkaufen, Geld
5. **Polish**: HUD/UI, Audio, Speicherung, Menüs