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

2.2 KiB
Raw Permalink Blame History

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

# 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