50 lines
2.0 KiB
Markdown
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
|