Entwicklerdokumentation - Robust-Games/robust GitHub Wiki

Projektstruktur

.
├── lib/                   # Externe Abhängigkeiten (JARs, u.a. Spring Boot, Jackson)
├── logs/                  # FXGL Logdateien (automatisch generiert)
├── MeetingLog/            # Protokolle als PDF
├── README.md              # Projektübersicht & Anleitung
├── robustClient/          # Spielclient (Frontend mit FXGL)
│   ├── build/             # Build-Artefakte
│   ├── build.gradle.kts   # Gradle Build-Script (Kotlin DSL)
│   ├── gradle/            # Gradle Wrapper Config
│   ├── gradlew, .bat      # Wrapper Startskripte
│   ├── settings.gradle.kts
│   ├── src/               # Quellcode & Tests
│   └── system/            # FXGL-Bundle, Dokumentation
├── robustServer/          # Server fxgl-net Modul/ FXGL-NetServer
│   ├── build/             # Build-Artefakte
│   ├── build.gradle.kts
│   ├── gradle/
│   ├── gradlew, .bat
│   ├── settings.gradle.kts
│   ├── src/main/          # Java-Servercode
│   └── src/tests/         # Java-Testcode
system
    ├── fxgl.bundle        # FXGL-Bundle
    ├── workflow           # CI/CD
    └── Readme.txt

Mulit-Module

  • robustClient > FXGL-Spiel
  • robustServer > FXGL-Network

Grund für Multimodul: Getrennte Abhängigkeiten, unterschiedliche Buildziele.

ECS-Arbeitsweise

  • Entity = ID
  • Component = reine Daten
  • System = verarbeitet Entities mit bestimmten Komponenten

Trennung von Logik & Daten → testbar & modular

Entitäten - Component Übersicht

Networking

  • Server: Single-Source-of-Truth
  • Client: Fat-Client, enthält gesamte Spiellogik
  • Rollback: bei verspäteten Server-Updates

Workflows

Client-Server Kommunikation

Rundensystem

Animationssystem