Notice: fwrite(): Write of 23 bytes failed with errno=28 No space left on device in /var/www/wiki/mediawiki-1.45.3-sms/includes/libs/uuid/GlobalIdGenerator.php on line 539
Plattformen – Social Media Simulator Wiki
Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.

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 ($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

Sobald 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)

Das 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

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 buyItem(itemName) aufgerufen, die einen asynchronen POST-Request an den Endpunkt /api/shop/buy 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-<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

Fü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 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.