First-Person-Farmspiel mit Voxelgrafik (eigene Java-Engine, LWJGL)
Go to file
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
.gitea/workflows feat: Phase 2 Bausystem (Raycast, platzieren/abreißen, Block-Auswahl, Fadenkreuz) + LWJGL arm64-Fix + Gitea CI 2026-07-23 17:59:58 +02:00
gradle/wrapper feat: Phase 1 — Voxel-Engine Gerüst (Fenster, Game-Loop, Voxel-Render, First-Person-Laufen) 2026-07-23 17:40:43 +02:00
src/main/java/de/jfritzsche/homegarden feat: Phase 2 Bausystem (Raycast, platzieren/abreißen, Block-Auswahl, Fadenkreuz) + LWJGL arm64-Fix + Gitea CI 2026-07-23 17:59:58 +02:00
.gitignore feat: Phase 1 — Voxel-Engine Gerüst (Fenster, Game-Loop, Voxel-Render, First-Person-Laufen) 2026-07-23 17:40:43 +02:00
build.gradle feat: Phase 2 Bausystem (Raycast, platzieren/abreißen, Block-Auswahl, Fadenkreuz) + LWJGL arm64-Fix + Gitea CI 2026-07-23 17:59:58 +02:00
gradle.properties feat: Phase 1 — Voxel-Engine Gerüst (Fenster, Game-Loop, Voxel-Render, First-Person-Laufen) 2026-07-23 17:40:43 +02:00
gradlew feat: Phase 1 — Voxel-Engine Gerüst (Fenster, Game-Loop, Voxel-Render, First-Person-Laufen) 2026-07-23 17:40:43 +02:00
gradlew.bat feat: Phase 1 — Voxel-Engine Gerüst (Fenster, Game-Loop, Voxel-Render, First-Person-Laufen) 2026-07-23 17:40:43 +02:00
README.md feat: Phase 2 Bausystem (Raycast, platzieren/abreißen, Block-Auswahl, Fadenkreuz) + LWJGL arm64-Fix + Gitea CI 2026-07-23 17:59:58 +02:00
settings.gradle feat: Phase 1 — Voxel-Engine Gerüst (Fenster, Game-Loop, Voxel-Render, First-Person-Laufen) 2026-07-23 17:40:43 +02:00

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