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)

Bearbeiten Quelltext bearbeiten

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.

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.

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

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)

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

Bearbeiten Quelltext bearbeiten

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

Bearbeiten Quelltext bearbeiten

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 10 Hz (100ms). Das Pausenmenü (erreichbar über die Escape-Taste) friert die HUD-Abfragen temporär ein.