Plattformen
Weitere Optionen
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)
Bevor die Simulation startet, muss das Unternehmen initialisiert werden. Wenn noch kein aktiver Spielstand geladen ist (<codemw>$start = false</codemw>), 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 <codemw>POST</codemw> an die Schnittstelle <codemw>init_game.php?id={UUID}</codemw> übertragen, die das Spiel im Backend registriert.
Live-Gameplay & HUD
Sobald das Spiel läuft (<codemw>$start = true</codemw>), wechselt die Ansicht in die Echtzeit-Simulation. Das Interface passt sich dynamisch an das im <codemw>ThemeManager</codemw> gewählte Design (Dark Mode oder Light Mode) an.
Head-Up-Display (HUD)
Das HUD zeigt die aktuellen Leistungskennzahlen des Unternehmens. Diese Werte werden im Hintergrund jede Sekunde über einen asynchronen API-Call (<codemw>/api/game?id=...</codemw>) aktualisiert, um dem Spieler eine latenzfreie Übersicht zu bieten:
| Kennzahl | Beschreibung | API-Variable |
|---|---|---|
| Geld | Das verfügbare Kapital für Erweiterungen und Gehälter. | <codemw>money</codemw> |
| Forschung | Punkte, die für technologische Upgrades benötigt werden. | <codemw>researchPoints</codemw> |
| Mitarbeiter | Die aktuelle Belegschaft, die das Wachstum vorantreibt. | <codemw>employees</codemw> |
Ereignis-Log
Auf 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)
Ü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 <codemw>buyItem(itemName)</codemw> aufgerufen, die einen asynchronen <codemw>POST</codemw>-Request an den Endpunkt <codemw>/api/shop/buy</codemw> sendet.
- 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)
Wä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-<codemw><dialog></codemw>-Elemente. Sobald ein Event triggert, wird die Funktion <codemw>showEvent(title, text)</codemw> aufgerufen. Der Spieler muss eine der Optionen wählen, woraufhin die Entscheidung via <codemw>handleChoice(choice)</codemw> an den API-Endpunkt <codemw>/api/game/event-choice</codemw> zurückgemeldet wird.
Entwickler-Hinweise & API-Anbindung
Für die korrekte Funktionsweise muss das Backend die Datenstruktur exakt im flachen Format liefern:
{
"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 1 Hz (1000ms), um eine Überlastung der lokalen REST-Schnittstelle zu verhindern. Das Pausenmenü (erreichbar über die Escape-Taste) friert die HUD-Abfragen temporär ein.