All checks were successful
build / build (push) Successful in 1m25s
- 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)
53 lines
2.2 KiB
Markdown
53 lines
2.2 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 + 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
|