homegarden/README.md
Jerrit Fritzsche a4a5cbbf2a
All checks were successful
build / build (push) Successful in 1m25s
feat: Phase 2 Bausystem (Raycast, platzieren/abreißen, Block-Auswahl, Fadenkreuz) + LWJGL arm64-Fix + Gitea CI
- LWJGL natives fuer macOS aarch64 (arm64) ergaenzt
- GL.createCapabilities() nach Kontext-Bindung (LWJGL 3 Pflicht)
- VoxelWorld.raycast (DDA), public set()
- PlayerController.overlapsCell (verhindert Platzieren in Spieler)
- Game: Linksklick abbauen, Rechtsklick platzieren, 1-6 Auswahl, Mesh-Rebuild
- Crosshair-Overlay (NDC Screen-Space)
- .gitea/workflows/build.yml (build-on-push, ubuntu-latest)
2026-07-23 17:59:58 +02:00

53 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 + 2)
- **W/A/S/D** — Laufen
- **Maus** — Umsehen (Pointer ist gefangen)
- **Leertaste** — Springen
- **Linksklick** — Block abbauen (vor der Kamera)
- **Rechtsklick** — Block platzieren (leere Zelle davor)
- **1–6** — Block-Auswahl: 1=Gras, 2=Erde, 3=Stein, 4=Holz, 5=Blaetter, 6=Wasser
- **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