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: Unterschied zwischen den Versionen – 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.

Plattformen: Unterschied zwischen den Versionen

Aus Social Media Simulator Wiki
Die Seite wurde neu angelegt: „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. __TOC__ == Spiel-Konfiguration (Registrierung) == Bevor die Simulation startet, muss das Unternehmen initialisiert werden…“
 
Keine Bearbeitungszusammenfassung
Zeile 6: Zeile 6:


== Spiel-Konfiguration (Registrierung) ==
== 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:
Bevor die Simulation startet, muss das Unternehmen initialisiert werden. Wenn noch kein aktiver Spielstand geladen ist (<code>$start = false</code>), wird dem Spieler das Konfigurationsformular angezeigt. Über dieses Formular werden die Startbedingungen festgelegt:


* '''Firmenname:''' Der eindeutige Name des sozialen Netzwerks (Pflichtfeld).
* '''Firmenname:''' Der eindeutige Name des sozialen Netzwerks (Pflichtfeld).
Zeile 15: Zeile 15:
** ''Start-Forschungspunkte:'' Verfügbares Wissen für Upgrades (Standard: 0).
** ''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.
Nach dem Absenden des Formulars werden die Daten mittels <code>POST</code> an die Schnittstelle <code>init_game.php?id={UUID}</code> übertragen, die das Spiel im Backend registriert.


== Live-Gameplay & HUD ==
== 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.
Sobald das Spiel läuft (<code>$start = true</code>), wechselt die Ansicht in die Echtzeit-Simulation. Das Interface passt sich dynamisch an das im <code>ThemeManager</code> gewählte Design (Dark Mode oder Light Mode) an.


=== Head-Up-Display (HUD) ===
=== 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:
Das HUD zeigt die aktuellen Leistungskennzahlen des Unternehmens. Diese Werte werden im Hintergrund jede Sekunde über einen asynchronen API-Call (<code>/api/game?id=...</code>) aktualisiert, um dem Spieler eine latenzfreie Übersicht zu bieten:


{| class="wikitable"
{| class="wikitable"
Zeile 27: Zeile 27:
! Kennzahl !! Beschreibung !! API-Variable
! Kennzahl !! Beschreibung !! API-Variable
|-
|-
| '''Geld''' || Das verfügbare Kapital für Erweiterungen und Gehälter. || <codemw>money</codemw>
| '''Geld''' || Das verfügbare Kapital für Erweiterungen und Gehälter. || <code>money</code>
|-
|-
| '''Forschung''' || Punkte, die für technologische Upgrades benötigt werden. || <codemw>researchPoints</codemw>
| '''Forschung''' || Punkte, die für technologische Upgrades benötigt werden. || <code>researchPoints</code>
|-
|-
| '''Mitarbeiter''' || Die aktuelle Belegschaft, die das Wachstum vorantreibt. || <codemw>employees</codemw>
| '''Mitarbeiter''' || Die aktuelle Belegschaft, die das Wachstum vorantreibt. || <code>employees</code>
|}
|}


Zeile 42: Zeile 42:
Ü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.
Ü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.
* '''Kauf-Prozess:''' Beim Klick auf „Kaufen“ wird die JavaScript-Funktion <code>buyItem(itemName)</code> aufgerufen, die einen asynchronen <code>POST</code>-Request an den Endpunkt <code>/api/shop/buy</code> 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.
* '''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.


Zeile 48: Zeile 48:
Während der Simulation können unvorhergesehene Ereignisse eintreffen, die den Spieler vor logische oder finanzielle Entscheidungen stellen (z. B. Mitarbeiterkündigungen).
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.
Das System nutzt hierfür native HTML5-<code><dialog></code>-Elemente. Sobald ein Event triggert, wird die Funktion <code>showEvent(title, text)</code> aufgerufen. Der Spieler muss eine der Optionen wählen, woraufhin die Entscheidung via <code>handleChoice(choice)</code> an den API-Endpunkt <code>/api/game/event-choice</code> zurückgemeldet wird.


== Entwickler-Hinweise & API-Anbindung ==
== Entwickler-Hinweise & API-Anbindung ==
Für die korrekte Funktionsweise muss das Backend die Datenstruktur exakt im flachen Format liefern:
Für die korrekte Funktionsweise muss das Backend die Datenstruktur exakt im flachen Format hergeben:


<syntaxhighlight lang="json">
<syntaxhighlight lang="json">

Version vom 16. Juni 2026, 20:52 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)

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.