# 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