Plattformen: Unterschied zwischen den Versionen
Weitere Optionen
FeGmbH (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
FeGmbH (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 69: | Zeile 69: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
:::''Hinweis: Der automatische HUD-Aktualisierungs-Intervall läuft auf | :::''Hinweis: Der automatische HUD-Aktualisierungs-Intervall läuft auf 10 Hz (100ms). Das Pausenmenü (erreichbar über die Escape-Taste) friert die HUD-Abfragen temporär ein.'' | ||
[[Kategorie:Spielmechanik]] | [[Kategorie:Spielmechanik]] | ||
[[Kategorie:Entwickler-Dokumentation]] | [[Kategorie:Entwickler-Dokumentation]] | ||
Aktuelle Version vom 16. Juni 2026, 20:58 Uhr
Das Erstellen von Plattformen ist das Kern-Feature im Social Media Simulator. Spieler können hier eigene soziale Netzwerke gründen, konfigurieren, Upgrades erwerben und auf Marktereignisse reagieren.
Das System basiert auf einer direkten REST-API-Kopplung zwischen dem PHP-Frontend (Plattform) und dem Spring Boot-Backend.
Spiel-Konfiguration (Registrierung)
Bearbeiten Quelltext bearbeitenBevor die Simulation startet, muss das Unternehmen initialisiert werden. Wenn noch kein aktiver Spielstand geladen ist ($start = false), wird dem Spieler das Konfigurationsformular angezeigt. Über dieses Formular werden die Startbedingungen festgelegt:
- Firmenname: Der eindeutige Name des sozialen Netzwerks (Pflichtfeld).
- Erweiterte Einstellungen (Cheats & Balances):
- Unbegrenzt Geld: Schaltet den Sandbox-Modus frei.
- Start-Geld: Bestimmt das Startkapital (Standard: 1.000 €).
- Start-Mitarbeiter: Die Anzahl der Angestellten zu Beginn (Standard: 1).
- Start-Forschungspunkte: Verfügbares Wissen für Upgrades (Standard: 0).
Nach dem Absenden des Formulars werden die Daten mittels POST an die Schnittstelle init_game.php?id={UUID} übertragen, die das Spiel im Backend registriert.
Live-Gameplay & HUD
Bearbeiten Quelltext bearbeitenSobald das Spiel läuft ($start = true), wechselt die Ansicht in die Echtzeit-Simulation. Das Interface passt sich dynamisch an das im ThemeManager gewählte Design (Dark Mode oder Light Mode) an.
Head-Up-Display (HUD)
Bearbeiten Quelltext bearbeitenDas HUD zeigt die aktuellen Leistungskennzahlen des Unternehmens. Diese Werte werden im Hintergrund jede Sekunde über einen asynchronen API-Call (/api/game?id=...) aktualisiert, um dem Spieler eine latenzfreie Übersicht zu bieten:
| Kennzahl | Beschreibung | API-Variable |
|---|---|---|
| Geld | Das verfügbare Kapital für Erweiterungen und Gehälter. | money
|
| Forschung | Punkte, die für technologische Upgrades benötigt werden. | researchPoints
|
| Mitarbeiter | Die aktuelle Belegschaft, die das Wachstum vorantreibt. | employees
|
Ereignis-Log
Bearbeiten Quelltext bearbeitenAuf der rechten Seite des Interfaces befindet sich der Event-Log-Stream. Hier werden globale Systemereignisse, getätigte Käufe oder Meilensteine gelistet. Jeder Eintrag wird mit einer farblichen Kennzeichnung versehen:
- Grün (Gain): Positive Effekte, Startboni oder Einnahmen.
- Rot (Cost): Ausgaben, Verluste oder Kosten für Upgrades.
Das Upgrade-System (Der Shop)
Bearbeiten Quelltext bearbeitenÜber die untere Kontrollleiste kann das Modal-Fenster für den Shop geöffnet werden. Die Liste der verfügbaren Upgrades wird direkt aus dem Backend geladen.
- Kauf-Prozess: Beim Klick auf „Kaufen“ wird die JavaScript-Funktion
buyItem(itemName)aufgerufen, die einen asynchronenPOST-Request an den Endpunkt/api/shop/buysendet. - Validierung: Das Backend prüft, ob das Guthaben des Spielers ausreicht. Bei Erfolg wird das Shop-Fenster geschlossen, die HUD-Werte aktualisiert und ein neuer Eintrag im Ereignis-Log generiert.
Zufallsereignisse (RPG-Dialoge)
Bearbeiten Quelltext bearbeitenWährend der Simulation können unvorhergesehene Ereignisse eintreffen, die den Spieler vor logische oder finanzielle Entscheidungen stellen (z. B. Mitarbeiterkündigungen).
Das System nutzt hierfür native HTML5-<dialog>-Elemente. Sobald ein Event triggert, wird die Funktion showEvent(title, text) aufgerufen. Der Spieler muss eine der Optionen wählen, woraufhin die Entscheidung via handleChoice(choice) an den API-Endpunkt /api/game/event-choice zurückgemeldet wird.
Entwickler-Hinweise & API-Anbindung
Bearbeiten Quelltext bearbeitenFür die korrekte Funktionsweise muss das Backend die Datenstruktur exakt im flachen Format hergeben:
{
"id": "GAME-UUID-STRING",
"companyName": "Beispiel GmbH",
"money": 1000,
"researchPoints": 0,
"employees": 1,
"shop": [
{
"name": "Server-Infrastruktur",
"price": 500
}
]
}
- Hinweis: Der automatische HUD-Aktualisierungs-Intervall läuft auf 10 Hz (100ms). Das Pausenmenü (erreichbar über die Escape-Taste) friert die HUD-Abfragen temporär ein.