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