<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://sms-wiki.rrgames.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=130.180.44.249</id>
	<title>Social Media Simulator Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://sms-wiki.rrgames.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=130.180.44.249"/>
	<link rel="alternate" type="text/html" href="https://sms-wiki.rrgames.org/index.php?title=Spezial:Beitr%C3%A4ge/130.180.44.249"/>
	<updated>2026-10-26T01:46:12Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://sms-wiki.rrgames.org/index.php?title=RailRoad_Games&amp;diff=67</id>
		<title>RailRoad Games</title>
		<link rel="alternate" type="text/html" href="https://sms-wiki.rrgames.org/index.php?title=RailRoad_Games&amp;diff=67"/>
		<updated>2026-10-18T09:56:06Z</updated>

		<summary type="html">&lt;p&gt;130.180.44.249: /* Einzelnachweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=RailRoad Games=&lt;br /&gt;
{{Infobox Unternehmen&lt;br /&gt;
| Name=RailRoad Games&lt;br /&gt;
| Logo = RailRoad Games Logo.png&lt;br /&gt;
| Logobeschreibung = Logo von RailRoad Games&lt;br /&gt;
| Kürzel = RRG&lt;br /&gt;
| Unternehmensform = Indie-Entwicklerstudio / --- (Kein Unternehmen)&lt;br /&gt;
| Gründung = 2023&lt;br /&gt;
| Gründer = FeGmbH&lt;br /&gt;
| Sitz = (unbekannt, Deutschland)&lt;br /&gt;
| Leitung = FeGmbH&lt;br /&gt;
| Mitarbeiterzahl  = 3&lt;br /&gt;
| Branche          = Videospiele, Webplattformen, Software&lt;br /&gt;
| Produkte         = &#039;&#039;&#039;Spiele:&#039;&#039;&#039; [https://us-wiki.rrgames.org Underground Simulator (Wiki)]&amp;lt;br /&amp;gt;[[Social Media Simulator]]&amp;lt;br /&amp;gt;&#039;&#039;&#039;Plattformen:&#039;&#039;&#039; aBookable&amp;lt;br /&amp;gt;Online!-Accountsystem&amp;lt;br /&amp;gt;&#039;&#039;&#039;Technik:&#039;&#039;&#039; TrackScript&amp;lt;br /&amp;gt;&#039;&#039;&#039;Sonstiges:&#039;&#039;&#039; [https://deepslatesmp.de/preview DeepslateSMP], Wiki (MediaWiki)&lt;br /&gt;
| Programmiersprachen = Java, PHP, JavaScript, HTML/Cascading Style Sheets (CSS)&lt;br /&gt;
| Website          = https://www.rrgames.org&lt;br /&gt;
| Account          = ---&lt;br /&gt;
| API              = ---&lt;br /&gt;
| Entwicklerportal = ---&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RailRoad Games&#039;&#039;&#039; (kurz &#039;&#039;RRG&#039;&#039;) ist ein Indie-Entwicklerprojekt, das Videospiele, Webplattformen und Entwicklerwerkzeuge herstellt. Zum Portfolio gehören unter anderem die Simulationsspiele &#039;&#039;Underground Simulator&#039;&#039; und &#039;&#039;Social Media Simulator&#039;&#039;, die Self-Publishing-Plattform &#039;&#039;aBookable&#039;&#039; (nur angekündigt!), die Erweiterungssprache &#039;&#039;TrackScript&#039;&#039; sowie ein spieleübergreifendes Account-System namens „RailRoad Games Online!“.&lt;br /&gt;
&lt;br /&gt;
Der Name verweist auf das erste Projekt des Studios, den Underground Simulator, in dem es um das Leiten und Verwalten einer Zuggesellschaft geht.&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
&#039;&#039;RailRoad Games&#039;&#039; entstand als Entwicklungsmarke für selbst programmierte Spiele und Webprojekte unter dem Namen QuatschStudio Games.&amp;lt;ref&amp;gt;https://us-wiki.rrgames.org/index.php/Herunterladbarer_Content&amp;lt;/ref&amp;gt; Das erste Projekt war der &#039;&#039;Underground Simulator&#039;&#039;, eine Multiplayer-Zugsimulation in Java. Dessen Paketstruktur wurde von &amp;lt;code&amp;gt;de.qstudios&amp;lt;/code&amp;gt; auf &amp;lt;code&amp;gt;org.rrgames&amp;lt;/code&amp;gt; umgestellt, womit das Projekt unter dem Namen RailRoad Games vereinheitlicht wurde.&lt;br /&gt;
&lt;br /&gt;
Im Lauf der Zeit kamen weitere Projekte hinzu: der &#039;&#039;Social Media Simulator&#039;&#039;, die Erweiterungssprache &#039;&#039;TrackScript&#039;&#039; (in Arbeit), ein gemeinsames Account-System für alle Spiele (RailRoad Games Online!) (noch nicht öffentlich), ein Wiki für die Dokumentation und die Self-Publishing-Plattform &#039;&#039;aBookable&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Projekte ==&lt;br /&gt;
&lt;br /&gt;
=== Underground Simulator ===&lt;br /&gt;
Der &#039;&#039;&#039;Underground Simulator&#039;&#039;&#039; ist ein CLI-basiertes Singleplayer-Spiel in Java. Der Name ist angelehnt an das Londoner U-Bahn- und Bahnnetz. Es gibt eine nicht weiterentwickelte Version eines [[RailRoad Games#Underground Simulator Server (USS)|Multiplayer-Servers]]. Spieler steuern Züge und bewegen sich in einem Netz, das jedoch keineswegs dem Vorbild nachempfunden ist, sondern sich je nach Aktion des Spielers verändert.&lt;br /&gt;
&lt;br /&gt;
Das Spiel besitzt einen &#039;&#039;Wirtschafts- und Karrieremodus&#039;&#039; mit:&lt;br /&gt;
* einem &#039;&#039;Shop-System&#039;&#039;,&lt;br /&gt;
* einer &#039;&#039;Börse mit Aktienkursen&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Underground Simulator Server (USS) ===&lt;br /&gt;
Der &#039;&#039;&#039;Underground Simulator Server&#039;&#039;&#039; (kurz &#039;&#039;&#039;USS&#039;&#039;&#039;) ist die zugehörige Serversoftware zum &#039;&#039;Underground Simulator&#039;&#039; und ermöglicht den Multiplayer-Betrieb.&lt;br /&gt;
&lt;br /&gt;
=== Social Media Simulator ===&lt;br /&gt;
Der &#039;&#039;&#039;Social Media Simulator&#039;&#039;&#039; (kurz &#039;&#039;&#039;SMSim&#039;&#039;&#039;) ist ein Spiel über den Aufbau und Betrieb einer eigenen Social-Media-Plattform. Das Projekt wird derzeit komplett überarbeitet und auf ein sehr hohes Qualitätsniveau gebracht.&lt;br /&gt;
&lt;br /&gt;
Zu den Kernideen gehören:&lt;br /&gt;
* &#039;&#039;&#039;Engagement-Strategien:&#039;&#039;&#039; Spieler können unterschiedliche Schwerpunkte setzen, etwa eher auf Watchtime oder eher auf Herzen und Likes.&lt;br /&gt;
* &#039;&#039;&#039;Anpassbares Plattformdesign:&#039;&#039;&#039; Die Oberfläche der eigenen Plattform lässt sich per Drag-and-drop gestalten. Je mehr schöne, aber teure Komponenten verbaut sind, desto besser bewerten die Nutzer die Plattform.&lt;br /&gt;
* &#039;&#039;&#039;Dark Patterns als Spielmechanik:&#039;&#039;&#039; Unerwünschte Funktionen wie „Konto löschen“ können in zahlreichen Untermenüs versteckt werden.&lt;br /&gt;
&lt;br /&gt;
Im Modding des Spiels kommt wahrscheinlich die Erweiterungssprache [[RailRoad Games#TrackScript|TrackScript]] zum Einsatz.&lt;br /&gt;
&lt;br /&gt;
=== aBookable ===&lt;br /&gt;
&#039;&#039;aBookable&#039;&#039; (Eigenschreibweise auch &#039;&#039;&#039;aBOOKable&#039;&#039;&#039;) ist eine Self-Publishing-Plattform für Bücher und Hörbücher. Sie ist eine Marke von RailRoad Games und wird gemeinsam mit ZerowFlow entwickelt, einem Freund des Gründers und Mitglied von RailRoad Games.&lt;br /&gt;
&lt;br /&gt;
==== Stand der Entwicklung ====&lt;br /&gt;
Es existiert bereits ein Frontend-Prototyp. Die Plattform wird auf eine neue Architektur umgestellt: PHP setzt einen Session-Key, JavaScript rendert die Seite je nach Kontext. Dieses Konzept stammt aus einem separaten Lernprojekt, das selbst nicht weiterverfolgt wird.&lt;br /&gt;
&lt;br /&gt;
==== Geplante Funktionen (Keine Gewähr!) ====&lt;br /&gt;
* &#039;&#039;&#039;Bewertungen:&#039;&#039;&#039; Sternebewertungen und ein editierbarer Kommentar pro gekauftem Buch. Kommentare können je nach Einstellung des Autors oder Verlags erst geprüft werden.&lt;br /&gt;
* &#039;&#039;&#039;Vorbestellungen und Ankündigungen:&#039;&#039;&#039; Nur für verifizierte Autoren und Verlage. Als Käuferschutz erhalten Käufer ihr Geld zurück, wenn das Buch nicht binnen eines Monats erscheint. Der Autor erhält das Geld erst bei Veröffentlichung.&lt;br /&gt;
* &#039;&#039;&#039;Besitzgarantie:&#039;&#039;&#039; Wird ein Buch aus dem Sortiment genommen, behalten bereits zahlende Käufer ihre Datei.&lt;br /&gt;
* &#039;&#039;&#039;aBOOKable Pro:&#039;&#039;&#039; Ein Buch oder Hörbuch pro Monat gratis. Zunächst nicht käuflich, sondern etwa über Verlosungen vergeben.&lt;br /&gt;
* &#039;&#039;&#039;Umgang mit Raubkopien:&#039;&#039;&#039; Geklaute oder raubkopierte Bücher werden samt Account gelöscht. Bei verifizierten Accounts wird vorher Kontakt aufgenommen.&lt;br /&gt;
&lt;br /&gt;
==== Entwicklungsreihenfolge ====&lt;br /&gt;
Nach dem Umbau des PHP-Grundgerüsts folgt zuerst die Infrastruktur zum Laden echter Bücher (Datei-Storage sowie Besitz und Bibliothek). Bewertungen, Vorbestellungen, aBOOKable Pro und das Piraterie-Handling kommen danach.&lt;br /&gt;
&lt;br /&gt;
[[File:ABOOKable Logo (2026).png|thumb|aBOOKable Logo (Preview/2026)]]&lt;br /&gt;
[[File:ABOOKable Prototype Header.png|thumb|aBOOKable Prototype Header (Preview/2026)]]&lt;br /&gt;
&lt;br /&gt;
=== TrackScript ===&lt;br /&gt;
&#039;&#039;&#039;TrackScript&#039;&#039;&#039; ist eine Erweiterungs- und Extension-Sprache für RailRoad-Games-Projekte. Sie ist nicht auf ein Spiel/Projekt beschränkt, hat aber gewisse Limitierungen, ist ansonsten recht weitläufig. Im Modding des [[RailRoad Games#Social Media Simulator|Social Media Simulator]] wird sie bereits verwendet; Testdateien tragen die Endungen &amp;lt;code&amp;gt;.rail&amp;lt;/code&amp;gt; (Sourcecode) bzw. &amp;lt;code&amp;gt;.track&amp;lt;/code&amp;gt; (kompiliert).&lt;br /&gt;
&lt;br /&gt;
==== Grundkonzept (Oktober 2026) ====&lt;br /&gt;
Das Konzept beschreibt Interpreter und API für &#039;&#039;&#039;Java&#039;&#039;&#039; und &#039;&#039;&#039;PHP&#039;&#039;&#039;. Die PHP-Host-API umfasst Klassen, Builder und Limits, Runtime-Methoden, die Typabbildung (&amp;lt;code&amp;gt;TsMap&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TsData&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TsFunction&amp;lt;/code&amp;gt;), das Attribut &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#[TsExpose]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; sowie Fehler, Diagnosen und Policy.&lt;br /&gt;
&lt;br /&gt;
Die Java-API ist noch nicht ausgearbeitet.&lt;br /&gt;
&lt;br /&gt;
==== Berechtigungsmodell ====&lt;br /&gt;
Erweiterungen deklarieren ihre Berechtigungen im Manifest. Beispiele:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Bereich !! Berechtigungen&lt;br /&gt;
|-&lt;br /&gt;
| Host&lt;br /&gt;
| &amp;lt;code&amp;gt;host.log&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;host.fs.read&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;write&amp;lt;/code&amp;gt; (mit Scopes &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[workspace]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[temp]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[const]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[sys]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;host.resources.cpu&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;gpu&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;mem&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;stack&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;host.envvar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;host.supproc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;host.ipc&amp;lt;/code&amp;gt; (&#039;&#039;&#039;I&#039;&#039;&#039;nter &#039;&#039;&#039;P&#039;&#039;&#039;lugin &#039;&#039;&#039;C&#039;&#039;&#039;ommunication), &amp;lt;code&amp;gt;host.media&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;host.connections&amp;lt;/code&amp;gt; (Bluetooth/WLAN)&lt;br /&gt;
|-&lt;br /&gt;
| Netzwerk&lt;br /&gt;
| &amp;lt;code&amp;gt;network.tcp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;network.http&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;network.rrg-data&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dazu gibt es &#039;&#039;&#039;drei Sicherheitsstufen:&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Stufe 1:&#039;&#039;&#039; automatisch erlaubt.&lt;br /&gt;
# &#039;&#039;&#039;Stufe 2:&#039;&#039;&#039; Bestätigung per Nutzer-Dialog.&lt;br /&gt;
# &#039;&#039;&#039;Stufe 3:&#039;&#039;&#039; Betriebssystem- oder Admin-Passwort plus Haftungsausschluss-Checkbox.&lt;br /&gt;
&lt;br /&gt;
=== Online!-Account-System ===&lt;br /&gt;
Das &#039;&#039;&#039;Online!&#039;&#039;&#039;-System ist ein zentraler &#039;&#039;&#039;OAuth2&#039;&#039;&#039;-Account, der über mehrere RailRoad-Games-Spiele hinweg gilt, derzeit geplant für den [[RailRoad Games#Social Media Simulator|Social Media Simulator]] und den [[RailRoad Games#Underground Simulator|Underground Simulator]].&lt;br /&gt;
&lt;br /&gt;
==== Technischer Stand ====&lt;br /&gt;
* OAuth2 mit &#039;&#039;&#039;PKCE&#039;&#039;&#039; (RFC 7636) statt eines festen Client Secrets.&lt;br /&gt;
* Als Nutzerkennung dient eine getrimmte hexadezimale UUID im Java-Stil, nicht das @-Handle.&lt;br /&gt;
* Grundprinzip: Punkte, Ränge und ähnliche Werte werden &#039;&#039;&#039;serverseitig berechnet&#039;&#039;&#039; und sind clientseitig (z. B. per JavaScript) nicht manipulierbar.&lt;br /&gt;
&lt;br /&gt;
==== Geplante Funktionen ====&lt;br /&gt;
* &#039;&#039;&#039;Spieldaten:&#039;&#039;&#039; höchste Wins, Playgames, gespielte Server&lt;br /&gt;
* &#039;&#039;&#039;Ränge,&#039;&#039;&#039; unter anderem über &#039;&#039;&#039;TrackPoints&#039;&#039;&#039; und weitere Wege&lt;br /&gt;
* &#039;&#039;&#039;Savegames&#039;&#039;&#039; (mindestens 5 Slots, genaue Anzahl offen)&lt;br /&gt;
* &#039;&#039;&#039;Advancements&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Profil-Einstellungen:&#039;&#039;&#039; Name und @-Handle ändern&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; Online, AFK, Offline&lt;br /&gt;
* &#039;&#039;&#039;Freunde:&#039;&#039;&#039; für lokal gehostete Spiele, Nachrichten auf Servern&lt;br /&gt;
* &#039;&#039;&#039;Consent-Screen:&#039;&#039;&#039; Firmenname, Verified-Häkchen für vertrauenswürdige Apps, Warnhinweis bei nicht selbst entwickelten Drittanbieter-Apps&lt;br /&gt;
&lt;br /&gt;
==== Infrastruktur ====&lt;br /&gt;
&#039;&#039;&#039;Folgende Tabelle ist noch nicht final!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Adresse !! Zweck&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;account.rrgames.org&amp;lt;/code&amp;gt; || Authentifizierung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api.rrgames.org&amp;lt;/code&amp;gt; || API (durch API-Key geschützt)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;account.rrgames.org/developers/&amp;lt;/code&amp;gt; || Entwicklerportal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Im &#039;&#039;&#039;Entwicklerportal&#039;&#039;&#039; sollen Entwickler eigene API-Keys und OAuth2-Clients erstellen, ein Profil-Onboarding beim ersten Besuch durchlaufen und Apps mit Firmenname und Support-URL anlegen können. Später sollen dort Mods im Developer-Forum veröffentlicht werden. „DEV“ ist als Rang beziehungsweise Abzeichen vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[File:RailRoad Games Online! Consent Screen.png|thumb|Consent Screen (Preview)]]&lt;br /&gt;
[[File:RailRoad Games Online! Dashboard.png|thumb|RRG Online!-Accountseite Dashboard (Preview)]]&lt;br /&gt;
&lt;br /&gt;
=== Wiki und Dokumentation ===&lt;br /&gt;
Für seine Spiele betreibt RailRoad Games ein &#039;&#039;&#039;Dokumentations-Wiki im GitBook-Stil&#039;&#039;&#039;, basierend auf &#039;&#039;&#039;MediaWiki 1.45&#039;&#039;&#039;. Das Wiki für den Social Media Simulator findet man unter [https://sms-wiki.rrgames.org sms-wiki.rrgames.org], das Wiki des Underground Simulator unter [https://us-wiki.rrgames.org us-wiki.rrgames.org].&lt;br /&gt;
&lt;br /&gt;
Entstanden ist es aus der Entscheidung, statt eines eigenen PHP-Spiels mit Login und Datenbank lieber eine Doku-Seite für beide Spiele zu bauen, und zwar auf MediaWiki statt auf einer komplett eigenen PHP-Engine.&lt;br /&gt;
&lt;br /&gt;
==== Eigene Erweiterungen ====&lt;br /&gt;
* &#039;&#039;&#039;VersionLinks:&#039;&#039;&#039; Versioniert Artikel nach global registrierbaren &#039;&#039;Versionen&#039;&#039; statt nach Sprachen. Ein Auswahlmenü im Artikel wechselt die Version, ein Artikel kann für mehrere Versionen eingetragen werden. Die Erweiterung ist installiert. Sie ist aktuell noch nicht im Internet verfügbar.&lt;br /&gt;
* &#039;&#039;&#039;Git-Code-Seiten (in Planung):&#039;&#039;&#039; Verlinkt ein Git-Repository und zeigt Dateien als Wiki-Seiten &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Code:&amp;lt;Pfad&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (z. B. &amp;lt;code&amp;gt;src/main/cpp/main.cpp&amp;lt;/code&amp;gt;). Dazu kommen Inline-Kommentare, Inline-Überschriften und Seitenzusammenfassungen, ohne das Repository zu verändern, ähnlich wie bei einem Jupyter Notebook.&lt;br /&gt;
&lt;br /&gt;
=== DeepslateSMP ===&lt;br /&gt;
&#039;&#039;&#039;DeepslateSMP&#039;&#039;&#039; ist ein Minecraft-Survival-Multiplayer-Server ([https://www.deepslatesmp.de/preview deepslatesmp.de] v2-Website), der vom Betreiber der Marke geführt wird. Er besitzt eine eigene &#039;&#039;&#039;Landingpage&#039;&#039;&#039; aus PHP, HTML, CSS und JavaScript (Tailwind CSS über CDN).&lt;br /&gt;
&lt;br /&gt;
== Technologie ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Bereich !! Eingesetzt&lt;br /&gt;
|-&lt;br /&gt;
| Spiele (CLI, Server) || Java&lt;br /&gt;
|-&lt;br /&gt;
| Web und Backend (Social Media Sim) || PHP&lt;br /&gt;
|-&lt;br /&gt;
| Frontend || HTML, CSS, JavaScript, Tailwind CSS&lt;br /&gt;
|-&lt;br /&gt;
| Authentifizierung || OAuth2 mit PKCE (PHP)&lt;br /&gt;
|-&lt;br /&gt;
| Dokumentation || MediaWiki&lt;br /&gt;
|-&lt;br /&gt;
| Eigene Sprache || TrackScript (Compiler/Runtime in Java, Host-API für Java und PHP)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Zusammenarbeit ==&lt;br /&gt;
Die meisten Projekte werden vom Gründer allein entwickelt. Bei der Plattform [[RailRoad Games#aBookable|aBookable]] arbeitet er mit seinem Freund &#039;&#039;&#039;ZerowFlow&#039;&#039;&#039; zusammen, der eigene Feature-Ideen einbringt.&lt;br /&gt;
&lt;br /&gt;
== Zukunftspläne ==&lt;br /&gt;
* Fertigstellung des &#039;&#039;&#039;Online!-Account-Systems&#039;&#039;&#039;&lt;br /&gt;
* Vollständige Überarbeitung des &#039;&#039;&#039;Social Media Simulator&#039;&#039;&#039;&lt;br /&gt;
* Compiler und Runtime für &#039;&#039;&#039;TrackScript&#039;&#039;&#039; in Java&lt;br /&gt;
* Infrastruktur für echte Bücher bei &#039;&#039;&#039;aBookable&#039;&#039;&#039;&lt;br /&gt;
* Erweiterung des Wikis um die &#039;&#039;&#039;Git-Code-Seiten&#039;&#039;&#039;&lt;br /&gt;
* Ausbau des &#039;&#039;&#039;Entwicklerportals&#039;&#039;&#039; inklusive Developer-Forum für Mods&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.rrgames.org Offizielle Website]&lt;br /&gt;
* [https://deepslatesmp.de DeepslateSMP]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>130.180.44.249</name></author>
	</entry>
	<entry>
		<id>https://sms-wiki.rrgames.org/index.php?title=Vorlage:Infobox_Unternehmen&amp;diff=59</id>
		<title>Vorlage:Infobox Unternehmen</title>
		<link rel="alternate" type="text/html" href="https://sms-wiki.rrgames.org/index.php?title=Vorlage:Infobox_Unternehmen&amp;diff=59"/>
		<updated>2026-10-17T18:50:39Z</updated>

		<summary type="html">&lt;p&gt;130.180.44.249: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;toccolours infobox float-right toptextcells&amp;quot; style=&amp;quot;font-size:90%; max-width:25em; margin-top:0;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-size:110%; background-color: #eaecf0;&amp;quot; | {{{Name|{{PAGENAME}}}}}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center; padding:1em 0;&amp;quot; | [[Datei:{{{Logo}}}|250x175px|rahmenlos|zentriert]]&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{Unternehmensform|}}} |&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;font-weight:bold; text-align:left;&amp;quot; | Rechtsform&lt;br /&gt;
| {{{Unternehmensform}}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{ISIN|}}} |&lt;br /&gt;
{{#ifeq: {{{ISIN}}} | nicht vorhanden | |&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;font-weight:bold; text-align:left;&amp;quot; | ISIN&lt;br /&gt;
| [https://www.boerse-frankfurt.de/aktie/{{{ISIN}}} {{{ISIN}}}]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{Gründungsdatum|}}} |&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;font-weight:bold; text-align:left;&amp;quot; | Gründung&lt;br /&gt;
| {{{Gründungsdatum}}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{Auflösungsdatum|}}} |&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;font-weight:bold; text-align:left;&amp;quot; | Auflösung&lt;br /&gt;
| {{{Auflösungsdatum}}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{Auflösungsgrund|}}} |&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;font-weight:bold; text-align:left;&amp;quot; | Auflösungsgrund&lt;br /&gt;
| {{{Auflösungsgrund}}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{Sitz|}}} |&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;font-weight:bold; text-align:left;&amp;quot; | Sitz&lt;br /&gt;
| {{{Sitz}}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{Leitung|}}} |&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;font-weight:bold; text-align:left;&amp;quot; | Leitung&lt;br /&gt;
| {{{Leitung}}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{Mitarbeiterzahl|}}} |&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;font-weight:bold; text-align:left;&amp;quot; | Mitarbeiterzahl&lt;br /&gt;
| {{{Mitarbeiterzahl}}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{Umsatz|}}} |&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;font-weight:bold; text-align:left;&amp;quot; | Umsatz&lt;br /&gt;
| {{{Umsatz}}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{Branche|}}} |&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;font-weight:bold; text-align:left;&amp;quot; | Branche&lt;br /&gt;
| {{{Branche}}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{Homepage|{{{Website|}}}}}} |&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;font-weight:bold; text-align:left;&amp;quot; | Website&lt;br /&gt;
| [https://{{{Homepage|{{{Website}}}}}} {{{Homepage|{{{Website}}}}}}]&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{Stand|}}} |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-size:80%;&amp;quot; | Stand: {{{Stand}}}&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>130.180.44.249</name></author>
	</entry>
	<entry>
		<id>https://sms-wiki.rrgames.org/index.php?title=API-Dokumentation&amp;diff=48</id>
		<title>API-Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://sms-wiki.rrgames.org/index.php?title=API-Dokumentation&amp;diff=48"/>
		<updated>2026-09-11T18:09:56Z</updated>

		<summary type="html">&lt;p&gt;130.180.44.249: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Mit dieser API-Schnittstelle kommuniziert der Client (Frontend) des Social Media Simulators mit dem Spring Boot-Backend, um Spielstände zu initialisieren und abzurufen.&lt;br /&gt;
{{#version:1.0}}&lt;br /&gt;
== Endpunkte Übersicht ==&lt;br /&gt;
[[#POST|POSTs]] &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; [[#GET|GETs]]&lt;br /&gt;
=== GET ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; border-radius: 8px; overflow: hidden;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 15%;&amp;quot; | Methode&lt;br /&gt;
! style=&amp;quot;width: 35%;&amp;quot; | Endpunkt&lt;br /&gt;
! Beschreibung&lt;br /&gt;
! style=&amp;quot;width: 20%;&amp;quot; | Parameter (falls vorhanden)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #28a745; color: white; font-weight: bold; text-align: center;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/active&amp;lt;/code&amp;gt;&lt;br /&gt;
| Gibt, wenn der Backend-Prozess läuft, immer true zurück.&lt;br /&gt;
| ---&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #28a745; color: white; font-weight: bold; text-align: center;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/game?id={id}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Gibt, wenn der Backend-Prozess läuft, immer true zurück.&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;id | String | Spiel-UUID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #28a745; color: white; font-weight: bold; text-align: center;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/init&amp;lt;/code&amp;gt;&lt;br /&gt;
| Generiert eine neue Spieler-UUID (UTF-16).&lt;br /&gt;
| ---&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #28a745; color: white; font-weight: bold; text-align: center;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/game/stream?id={id}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Gibt SSE-Stream der Updates zurück.&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;id | String | Spiel-UUID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== POST ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; border-radius: 8px; overflow: hidden;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 15%;&amp;quot; | Methode&lt;br /&gt;
! style=&amp;quot;width: 35%;&amp;quot; | Endpunkt&lt;br /&gt;
! Beschreibung&lt;br /&gt;
! style=&amp;quot;width: 35%;&amp;quot; | Parameter (falls vorhanden)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/game/init_recall?id={id}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initialisiert ein neues Spiel mit einer Konfiguration, gespeichert mit `id` als Key.&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/shop/buy?id={id}&amp;amp;item={item}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Kauft dem Spieler das Item, welches angegeben ist.&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID | item | String | Shop-Item-ID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/tech/unlock?id={id}&amp;amp;tech={tech}&amp;amp;cost={cost}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Schaltet Technologie aus dem Tech-Tree frei.&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID | tech | String  Tech-Item-ID | cost | Integer | FP Kosten&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/infrasctructure/build?id={id}&amp;amp;lat={lat}&amp;amp;lng={lng}&amp;amp;name={name}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Errichtet nach Parametern ein Data Center. Standort wird nicht mitgeliefert!&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID | lat | Zahl mit Nachkommastelle | Latenz | lng |  Zahl mit Nachkommastelle | Sprache | name | String | Name des Rechenzentrums&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/infrasctructure/repair?id={id}&amp;amp;index={index}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Repariert ein defektes Rechenzentrum.&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID | index | Integer | Index der Liste der Rechenzentren&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dokumentation der Endpunkte ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Spieler-UUID generieren ===&lt;br /&gt;
* &#039;&#039;&#039;Endpunkt:&#039;&#039;&#039; &amp;lt;code&amp;gt;/api/init&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Methode:&#039;&#039;&#039; &amp;lt;span style=&amp;quot;background-color: #28a745; color: white; padding: 2px 6px; border-radius: 4px; font-weight: bold; font-size: 12px;&amp;quot;&amp;gt;GET&amp;lt;/span&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; &amp;lt;code&amp;gt;text/plain;charset=utf-16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Methode generiert eine neue, eindeutige V4-UUID, registriert sie im RAM des Servers in der aktiven Spielerliste und gibt sie als Byte-Array im UTF-16-Format zurück.&lt;br /&gt;
&lt;br /&gt;
==== Rückgabe (Response) (Bsp.!) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
4f3b89a2-1e4d-4c6a-9b88-123456789abc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
=== 2. Spielstand abrufen ===&lt;br /&gt;
* &#039;&#039;&#039;Endpunkt:&#039;&#039;&#039; &amp;lt;code&amp;gt;/api/game&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Methode:&#039;&#039;&#039; &amp;lt;span style=&amp;quot;background-color: #28a745; color: white; padding: 2px 6px; border-radius: 4px; font-weight: bold; font-size: 12px;&amp;quot;&amp;gt;GET&amp;lt;/span&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; &amp;lt;code&amp;gt;application/json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gibt den aktuellen Zustand der laufenden Simulation für die übergebene UUID zurück. Der Client nutzt diesen Endpunkt für den regelmäßigen Sync oder beim Neuladen des Dashboards.&lt;br /&gt;
&lt;br /&gt;
==== Query-Parameter ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Typ&lt;br /&gt;
! Pflichtfeld&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&lt;br /&gt;
| UUID&lt;br /&gt;
| Ja&lt;br /&gt;
| Die eindeutige Kennung des Spielers, die über &amp;lt;code&amp;gt;/api/init&amp;lt;/code&amp;gt; generiert wurde.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Rückgabe (Response) ====&lt;br /&gt;
* &#039;&#039;&#039;Status 200 (Erfolgreich):&#039;&#039;&#039; Gibt das &amp;lt;code&amp;gt;GameResponse&amp;lt;/code&amp;gt;-JSON-Objekt zurück, wenn die UUID existiert. Falls die ID nicht in der aktiven Spielerliste registriert ist, wird &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;playerId&amp;quot;: &amp;quot;4f3b89a2-1e4d-4c6a-9b88-123456789abc&amp;quot;,&lt;br /&gt;
  &amp;quot;companyName&amp;quot;: &amp;quot;QuatschStudio Tech&amp;quot;,&lt;br /&gt;
  &amp;quot;money&amp;quot;: 50000,&lt;br /&gt;
  &amp;quot;employees&amp;quot;: 1,&lt;br /&gt;
  &amp;quot;researchPoints&amp;quot;: 0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Parameter-Spezifikation =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feld&lt;br /&gt;
! Typ&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;playerId&amp;lt;/code&amp;gt;&lt;br /&gt;
| String (UUID)&lt;br /&gt;
| Die UUID des Spielers zur Validierung auf Client-Seite.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;companyName&amp;lt;/code&amp;gt;&lt;br /&gt;
| String&lt;br /&gt;
| Der Name des Social-Media-Unternehmens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;money&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Der aktuelle Kontostand des Unternehmens im Spiel.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;employees&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Die Anzahl der derzeit eingestellten Mitarbeiter.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;researchPoints&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Die aktuell angesammelten Forschungspunkte für neue Features oder Algorithmen-Upgrades.&lt;br /&gt;
|}&lt;br /&gt;
---&lt;br /&gt;
=== 3. Spiel initialisieren ===&lt;br /&gt;
* &#039;&#039;&#039;Endpunkt:&#039;&#039;&#039; &amp;lt;code&amp;gt;/api/game/init_recall&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Methode:&#039;&#039;&#039; &amp;lt;span style=&amp;quot;background-color: #007bff; color: white; padding: 2px 6px; border-radius: 4px; font-weight: bold; font-size: 12px;&amp;quot;&amp;gt;POST&amp;lt;/span&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; &amp;lt;code&amp;gt;application/json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialisiert die Spielmechaniken für eine bereits generierte UUID auf Basis der übergebenen Unternehmenseinstellungen im Request-Body.&lt;br /&gt;
&lt;br /&gt;
==== Query-Parameter ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Typ&lt;br /&gt;
! Pflichtfeld&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&lt;br /&gt;
| UUID&lt;br /&gt;
| Ja&lt;br /&gt;
| Die ID des Spielers, für den das Spiel gestartet wird.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Payload (Request Body) ====&lt;br /&gt;
Übergabe des &amp;lt;code&amp;gt;GameConfigDTO&amp;lt;/code&amp;gt; als JSON-Objekt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;companyName&amp;quot;: &amp;quot;QuatschStudio Tech&amp;quot;,&lt;br /&gt;
  &amp;quot;infiniteMoney&amp;quot;: false,&lt;br /&gt;
  &amp;quot;startMoney&amp;quot;: 50000,&lt;br /&gt;
  &amp;quot;startEmployees&amp;quot;: 1,&lt;br /&gt;
  &amp;quot;startResearch&amp;quot;: 0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Parameter-Spezifikation =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feld&lt;br /&gt;
! Typ&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;companyName&amp;lt;/code&amp;gt;&lt;br /&gt;
| String&lt;br /&gt;
| Der Name des zu gründenden Social-Media-Unternehmens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;infiniteMoney&amp;lt;/code&amp;gt;&lt;br /&gt;
| Boolean&lt;br /&gt;
| Sandbox-Modus. Wenn &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, ist das Startkapital unbegrenzt.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;startMoney&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Das verfügbare Startkapital bei Spielbeginn.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;startEmployees&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Die Anzahl der Mitarbeiter, mit denen das Unternehmen startet.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;startResearch&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Der initiale Wert für bereits generierte Forschungspunkte.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Server-Log (SLF4J) ====&lt;br /&gt;
Beim Aufruf triggert der Controller einen Log-Eintrag auf dem Server (Bsp.!):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2026-06-16T20:23:28.789+02:00  INFO 523700 --- [nio-8080-exec-6] o.r.smsim.api.controller.GameController  : Setting up Game for 737e1e57-3e1d-4f0e-b1a8-1fcad8c145d0:GameConfigDTO [companyName=adsf, infiniteMoney=false, startMoney=1000, startEmployees=1, startResearch=0]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[index.php?title=Kategorie:Entwickler-Dokumentation]]&lt;/div&gt;</summary>
		<author><name>130.180.44.249</name></author>
	</entry>
	<entry>
		<id>https://sms-wiki.rrgames.org/index.php?title=API-Dokumentation&amp;diff=47</id>
		<title>API-Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://sms-wiki.rrgames.org/index.php?title=API-Dokumentation&amp;diff=47"/>
		<updated>2026-09-11T18:08:21Z</updated>

		<summary type="html">&lt;p&gt;130.180.44.249: /* POST */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Mit dieser API-Schnittstelle kommuniziert der Client (Frontend) des Social Media Simulators mit dem Spring Boot-Backend, um Spielstände zu initialisieren und abzurufen.&lt;br /&gt;
{{#version:1.0}}&lt;br /&gt;
== Endpunkte Übersicht ==&lt;br /&gt;
[[#POST|POSTs]] &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; [[#GET|GETs]]&lt;br /&gt;
=== GET ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; border-radius: 8px; overflow: hidden;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 15%;&amp;quot; | Methode&lt;br /&gt;
! style=&amp;quot;width: 35%;&amp;quot; | Endpunkt&lt;br /&gt;
! Beschreibung&lt;br /&gt;
! style=&amp;quot;width: 20%;&amp;quot; | Parameter (falls vorhanden)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #28a745; color: white; font-weight: bold; text-align: center;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/active&amp;lt;/code&amp;gt;&lt;br /&gt;
| Gibt, wenn der Backend-Prozess läuft, immer true zurück.&lt;br /&gt;
| ---&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #28a745; color: white; font-weight: bold; text-align: center;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/game?id={id}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Gibt, wenn der Backend-Prozess läuft, immer true zurück.&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;id | String | Spiel-UUID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #28a745; color: white; font-weight: bold; text-align: center;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/init&amp;lt;/code&amp;gt;&lt;br /&gt;
| Generiert eine neue Spieler-UUID (UTF-16).&lt;br /&gt;
| ---&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #28a745; color: white; font-weight: bold; text-align: center;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/game/stream?id={id}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Gibt SSE-Stream der Updates zurück.&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;id | String | Spiel-UUID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== POST ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; border-radius: 8px; overflow: hidden;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 15%;&amp;quot; | Methode&lt;br /&gt;
! style=&amp;quot;width: 35%;&amp;quot; | Endpunkt&lt;br /&gt;
! Beschreibung&lt;br /&gt;
! style=&amp;quot;width: 35%;&amp;quot; | Parameter (falls vorhanden)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/game/init_recall?id={id}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initialisiert ein neues Spiel mit einer Konfiguration, gespeichert mit `id` als Key.&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/shop/buy?id={id}&amp;amp;item={item}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Kauft dem Spieler das Item, welches angegeben ist.&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID item | String  Shop-Item-ID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/tech/unlock?id={id}&amp;amp;tech={tech}&amp;amp;cost={cost}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Schaltet Technologie aus dem Tech-Tree frei.&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID tech | String  Tech-Item-ID cost | Integer | FP Kosten&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/infrasctructure/build?id={id}&amp;amp;lat={lat}&amp;amp;lng={lng}&amp;amp;name={name}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Errichtet nach Parametern ein Data Center. Standort wird nicht mitgeliefert!&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID lat | Zahl mit Nachkommastelle | Latenz | lng  Zahl mit Nachkommastelle  Sprache | name String | Name des Rechenzentrums&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/infrasctructure/repair?id={id}&amp;amp;index={index}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Repariert ein defektes Rechenzentrum.&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID index | Integer | Index der Liste der Rechenzentren&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dokumentation der Endpunkte ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Spieler-UUID generieren ===&lt;br /&gt;
* &#039;&#039;&#039;Endpunkt:&#039;&#039;&#039; &amp;lt;code&amp;gt;/api/init&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Methode:&#039;&#039;&#039; &amp;lt;span style=&amp;quot;background-color: #28a745; color: white; padding: 2px 6px; border-radius: 4px; font-weight: bold; font-size: 12px;&amp;quot;&amp;gt;GET&amp;lt;/span&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; &amp;lt;code&amp;gt;text/plain;charset=utf-16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Methode generiert eine neue, eindeutige V4-UUID, registriert sie im RAM des Servers in der aktiven Spielerliste und gibt sie als Byte-Array im UTF-16-Format zurück.&lt;br /&gt;
&lt;br /&gt;
==== Rückgabe (Response) (Bsp.!) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
4f3b89a2-1e4d-4c6a-9b88-123456789abc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
=== 2. Spielstand abrufen ===&lt;br /&gt;
* &#039;&#039;&#039;Endpunkt:&#039;&#039;&#039; &amp;lt;code&amp;gt;/api/game&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Methode:&#039;&#039;&#039; &amp;lt;span style=&amp;quot;background-color: #28a745; color: white; padding: 2px 6px; border-radius: 4px; font-weight: bold; font-size: 12px;&amp;quot;&amp;gt;GET&amp;lt;/span&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; &amp;lt;code&amp;gt;application/json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gibt den aktuellen Zustand der laufenden Simulation für die übergebene UUID zurück. Der Client nutzt diesen Endpunkt für den regelmäßigen Sync oder beim Neuladen des Dashboards.&lt;br /&gt;
&lt;br /&gt;
==== Query-Parameter ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Typ&lt;br /&gt;
! Pflichtfeld&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&lt;br /&gt;
| UUID&lt;br /&gt;
| Ja&lt;br /&gt;
| Die eindeutige Kennung des Spielers, die über &amp;lt;code&amp;gt;/api/init&amp;lt;/code&amp;gt; generiert wurde.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Rückgabe (Response) ====&lt;br /&gt;
* &#039;&#039;&#039;Status 200 (Erfolgreich):&#039;&#039;&#039; Gibt das &amp;lt;code&amp;gt;GameResponse&amp;lt;/code&amp;gt;-JSON-Objekt zurück, wenn die UUID existiert. Falls die ID nicht in der aktiven Spielerliste registriert ist, wird &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;playerId&amp;quot;: &amp;quot;4f3b89a2-1e4d-4c6a-9b88-123456789abc&amp;quot;,&lt;br /&gt;
  &amp;quot;companyName&amp;quot;: &amp;quot;QuatschStudio Tech&amp;quot;,&lt;br /&gt;
  &amp;quot;money&amp;quot;: 50000,&lt;br /&gt;
  &amp;quot;employees&amp;quot;: 1,&lt;br /&gt;
  &amp;quot;researchPoints&amp;quot;: 0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Parameter-Spezifikation =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feld&lt;br /&gt;
! Typ&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;playerId&amp;lt;/code&amp;gt;&lt;br /&gt;
| String (UUID)&lt;br /&gt;
| Die UUID des Spielers zur Validierung auf Client-Seite.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;companyName&amp;lt;/code&amp;gt;&lt;br /&gt;
| String&lt;br /&gt;
| Der Name des Social-Media-Unternehmens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;money&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Der aktuelle Kontostand des Unternehmens im Spiel.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;employees&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Die Anzahl der derzeit eingestellten Mitarbeiter.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;researchPoints&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Die aktuell angesammelten Forschungspunkte für neue Features oder Algorithmen-Upgrades.&lt;br /&gt;
|}&lt;br /&gt;
---&lt;br /&gt;
=== 3. Spiel initialisieren ===&lt;br /&gt;
* &#039;&#039;&#039;Endpunkt:&#039;&#039;&#039; &amp;lt;code&amp;gt;/api/game/init_recall&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Methode:&#039;&#039;&#039; &amp;lt;span style=&amp;quot;background-color: #007bff; color: white; padding: 2px 6px; border-radius: 4px; font-weight: bold; font-size: 12px;&amp;quot;&amp;gt;POST&amp;lt;/span&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; &amp;lt;code&amp;gt;application/json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialisiert die Spielmechaniken für eine bereits generierte UUID auf Basis der übergebenen Unternehmenseinstellungen im Request-Body.&lt;br /&gt;
&lt;br /&gt;
==== Query-Parameter ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Typ&lt;br /&gt;
! Pflichtfeld&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&lt;br /&gt;
| UUID&lt;br /&gt;
| Ja&lt;br /&gt;
| Die ID des Spielers, für den das Spiel gestartet wird.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Payload (Request Body) ====&lt;br /&gt;
Übergabe des &amp;lt;code&amp;gt;GameConfigDTO&amp;lt;/code&amp;gt; als JSON-Objekt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;companyName&amp;quot;: &amp;quot;QuatschStudio Tech&amp;quot;,&lt;br /&gt;
  &amp;quot;infiniteMoney&amp;quot;: false,&lt;br /&gt;
  &amp;quot;startMoney&amp;quot;: 50000,&lt;br /&gt;
  &amp;quot;startEmployees&amp;quot;: 1,&lt;br /&gt;
  &amp;quot;startResearch&amp;quot;: 0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Parameter-Spezifikation =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feld&lt;br /&gt;
! Typ&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;companyName&amp;lt;/code&amp;gt;&lt;br /&gt;
| String&lt;br /&gt;
| Der Name des zu gründenden Social-Media-Unternehmens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;infiniteMoney&amp;lt;/code&amp;gt;&lt;br /&gt;
| Boolean&lt;br /&gt;
| Sandbox-Modus. Wenn &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, ist das Startkapital unbegrenzt.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;startMoney&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Das verfügbare Startkapital bei Spielbeginn.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;startEmployees&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Die Anzahl der Mitarbeiter, mit denen das Unternehmen startet.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;startResearch&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Der initiale Wert für bereits generierte Forschungspunkte.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Server-Log (SLF4J) ====&lt;br /&gt;
Beim Aufruf triggert der Controller einen Log-Eintrag auf dem Server (Bsp.!):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2026-06-16T20:23:28.789+02:00  INFO 523700 --- [nio-8080-exec-6] o.r.smsim.api.controller.GameController  : Setting up Game for 737e1e57-3e1d-4f0e-b1a8-1fcad8c145d0:GameConfigDTO [companyName=adsf, infiniteMoney=false, startMoney=1000, startEmployees=1, startResearch=0]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[index.php?title=Kategorie:Entwickler-Dokumentation]]&lt;/div&gt;</summary>
		<author><name>130.180.44.249</name></author>
	</entry>
	<entry>
		<id>https://sms-wiki.rrgames.org/index.php?title=API-Dokumentation&amp;diff=46</id>
		<title>API-Dokumentation</title>
		<link rel="alternate" type="text/html" href="https://sms-wiki.rrgames.org/index.php?title=API-Dokumentation&amp;diff=46"/>
		<updated>2026-09-11T18:07:25Z</updated>

		<summary type="html">&lt;p&gt;130.180.44.249: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Mit dieser API-Schnittstelle kommuniziert der Client (Frontend) des Social Media Simulators mit dem Spring Boot-Backend, um Spielstände zu initialisieren und abzurufen.&lt;br /&gt;
{{#version:1.0}}&lt;br /&gt;
== Endpunkte Übersicht ==&lt;br /&gt;
[[#POST|POSTs]] &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; [[#GET|GETs]]&lt;br /&gt;
=== GET ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; border-radius: 8px; overflow: hidden;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 15%;&amp;quot; | Methode&lt;br /&gt;
! style=&amp;quot;width: 35%;&amp;quot; | Endpunkt&lt;br /&gt;
! Beschreibung&lt;br /&gt;
! style=&amp;quot;width: 20%;&amp;quot; | Parameter (falls vorhanden)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #28a745; color: white; font-weight: bold; text-align: center;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/active&amp;lt;/code&amp;gt;&lt;br /&gt;
| Gibt, wenn der Backend-Prozess läuft, immer true zurück.&lt;br /&gt;
| ---&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #28a745; color: white; font-weight: bold; text-align: center;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/game?id={id}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Gibt, wenn der Backend-Prozess läuft, immer true zurück.&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;id | String | Spiel-UUID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #28a745; color: white; font-weight: bold; text-align: center;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/init&amp;lt;/code&amp;gt;&lt;br /&gt;
| Generiert eine neue Spieler-UUID (UTF-16).&lt;br /&gt;
| ---&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #28a745; color: white; font-weight: bold; text-align: center;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/game/stream?id={id}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Gibt SSE-Stream der Updates zurück.&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;id | String | Spiel-UUID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== POST ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; border-radius: 8px; overflow: hidden;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 15%;&amp;quot; | Methode&lt;br /&gt;
! style=&amp;quot;width: 35%;&amp;quot; | Endpunkt&lt;br /&gt;
! Beschreibung&lt;br /&gt;
! style=&amp;quot;width: 20%;&amp;quot; | Parameter (falls vorhanden)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/game/init_recall?id={id}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initialisiert ein neues Spiel mit einer Konfiguration, gespeichert mit `id` als Key.&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/shop/buy?id={id}&amp;amp;item={item}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Kauft dem Spieler das Item, welches angegeben ist.&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID item | String  Shop-Item-ID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/tech/unlock?id={id}&amp;amp;tech={tech}&amp;amp;cost={cost}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Schaltet Technologie aus dem Tech-Tree frei.&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID tech | String  Tech-Item-ID cost | Integer | FP Kosten&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/infrasctructure/build?id={id}&amp;amp;lat={lat}&amp;amp;lng={lng}&amp;amp;name={name}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Errichtet nach Parametern ein Data Center. Standort wird nicht mitgeliefert!&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID lat | Zahl mit Nachkommastelle | Latenz | lng  Zahl mit Nachkommastelle  Sprache | name String | Name des Rechenzentrums&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #007bff; color: white; font-weight: bold; text-align: center;&amp;quot; | POST&lt;br /&gt;
| &amp;lt;code&amp;gt;/api/infrasctructure/repair?id={id}&amp;amp;index={index}&amp;lt;/code&amp;gt;&lt;br /&gt;
| Repariert ein defektes Rechenzentrum.&lt;br /&gt;
|&amp;lt;nowiki&amp;gt; id | String | Spiel-UUID index | Integer | Index der Liste der Rechenzentren&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dokumentation der Endpunkte ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Spieler-UUID generieren ===&lt;br /&gt;
* &#039;&#039;&#039;Endpunkt:&#039;&#039;&#039; &amp;lt;code&amp;gt;/api/init&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Methode:&#039;&#039;&#039; &amp;lt;span style=&amp;quot;background-color: #28a745; color: white; padding: 2px 6px; border-radius: 4px; font-weight: bold; font-size: 12px;&amp;quot;&amp;gt;GET&amp;lt;/span&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; &amp;lt;code&amp;gt;text/plain;charset=utf-16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Methode generiert eine neue, eindeutige V4-UUID, registriert sie im RAM des Servers in der aktiven Spielerliste und gibt sie als Byte-Array im UTF-16-Format zurück.&lt;br /&gt;
&lt;br /&gt;
==== Rückgabe (Response) (Bsp.!) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
4f3b89a2-1e4d-4c6a-9b88-123456789abc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
=== 2. Spielstand abrufen ===&lt;br /&gt;
* &#039;&#039;&#039;Endpunkt:&#039;&#039;&#039; &amp;lt;code&amp;gt;/api/game&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Methode:&#039;&#039;&#039; &amp;lt;span style=&amp;quot;background-color: #28a745; color: white; padding: 2px 6px; border-radius: 4px; font-weight: bold; font-size: 12px;&amp;quot;&amp;gt;GET&amp;lt;/span&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; &amp;lt;code&amp;gt;application/json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gibt den aktuellen Zustand der laufenden Simulation für die übergebene UUID zurück. Der Client nutzt diesen Endpunkt für den regelmäßigen Sync oder beim Neuladen des Dashboards.&lt;br /&gt;
&lt;br /&gt;
==== Query-Parameter ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Typ&lt;br /&gt;
! Pflichtfeld&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&lt;br /&gt;
| UUID&lt;br /&gt;
| Ja&lt;br /&gt;
| Die eindeutige Kennung des Spielers, die über &amp;lt;code&amp;gt;/api/init&amp;lt;/code&amp;gt; generiert wurde.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Rückgabe (Response) ====&lt;br /&gt;
* &#039;&#039;&#039;Status 200 (Erfolgreich):&#039;&#039;&#039; Gibt das &amp;lt;code&amp;gt;GameResponse&amp;lt;/code&amp;gt;-JSON-Objekt zurück, wenn die UUID existiert. Falls die ID nicht in der aktiven Spielerliste registriert ist, wird &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;playerId&amp;quot;: &amp;quot;4f3b89a2-1e4d-4c6a-9b88-123456789abc&amp;quot;,&lt;br /&gt;
  &amp;quot;companyName&amp;quot;: &amp;quot;QuatschStudio Tech&amp;quot;,&lt;br /&gt;
  &amp;quot;money&amp;quot;: 50000,&lt;br /&gt;
  &amp;quot;employees&amp;quot;: 1,&lt;br /&gt;
  &amp;quot;researchPoints&amp;quot;: 0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Parameter-Spezifikation =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feld&lt;br /&gt;
! Typ&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;playerId&amp;lt;/code&amp;gt;&lt;br /&gt;
| String (UUID)&lt;br /&gt;
| Die UUID des Spielers zur Validierung auf Client-Seite.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;companyName&amp;lt;/code&amp;gt;&lt;br /&gt;
| String&lt;br /&gt;
| Der Name des Social-Media-Unternehmens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;money&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Der aktuelle Kontostand des Unternehmens im Spiel.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;employees&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Die Anzahl der derzeit eingestellten Mitarbeiter.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;researchPoints&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Die aktuell angesammelten Forschungspunkte für neue Features oder Algorithmen-Upgrades.&lt;br /&gt;
|}&lt;br /&gt;
---&lt;br /&gt;
=== 3. Spiel initialisieren ===&lt;br /&gt;
* &#039;&#039;&#039;Endpunkt:&#039;&#039;&#039; &amp;lt;code&amp;gt;/api/game/init_recall&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Methode:&#039;&#039;&#039; &amp;lt;span style=&amp;quot;background-color: #007bff; color: white; padding: 2px 6px; border-radius: 4px; font-weight: bold; font-size: 12px;&amp;quot;&amp;gt;POST&amp;lt;/span&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; &amp;lt;code&amp;gt;application/json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialisiert die Spielmechaniken für eine bereits generierte UUID auf Basis der übergebenen Unternehmenseinstellungen im Request-Body.&lt;br /&gt;
&lt;br /&gt;
==== Query-Parameter ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Typ&lt;br /&gt;
! Pflichtfeld&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&lt;br /&gt;
| UUID&lt;br /&gt;
| Ja&lt;br /&gt;
| Die ID des Spielers, für den das Spiel gestartet wird.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Payload (Request Body) ====&lt;br /&gt;
Übergabe des &amp;lt;code&amp;gt;GameConfigDTO&amp;lt;/code&amp;gt; als JSON-Objekt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;companyName&amp;quot;: &amp;quot;QuatschStudio Tech&amp;quot;,&lt;br /&gt;
  &amp;quot;infiniteMoney&amp;quot;: false,&lt;br /&gt;
  &amp;quot;startMoney&amp;quot;: 50000,&lt;br /&gt;
  &amp;quot;startEmployees&amp;quot;: 1,&lt;br /&gt;
  &amp;quot;startResearch&amp;quot;: 0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Parameter-Spezifikation =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feld&lt;br /&gt;
! Typ&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;companyName&amp;lt;/code&amp;gt;&lt;br /&gt;
| String&lt;br /&gt;
| Der Name des zu gründenden Social-Media-Unternehmens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;infiniteMoney&amp;lt;/code&amp;gt;&lt;br /&gt;
| Boolean&lt;br /&gt;
| Sandbox-Modus. Wenn &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, ist das Startkapital unbegrenzt.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;startMoney&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Das verfügbare Startkapital bei Spielbeginn.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;startEmployees&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Die Anzahl der Mitarbeiter, mit denen das Unternehmen startet.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;startResearch&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integer&lt;br /&gt;
| Der initiale Wert für bereits generierte Forschungspunkte.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Server-Log (SLF4J) ====&lt;br /&gt;
Beim Aufruf triggert der Controller einen Log-Eintrag auf dem Server (Bsp.!):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2026-06-16T20:23:28.789+02:00  INFO 523700 --- [nio-8080-exec-6] o.r.smsim.api.controller.GameController  : Setting up Game for 737e1e57-3e1d-4f0e-b1a8-1fcad8c145d0:GameConfigDTO [companyName=adsf, infiniteMoney=false, startMoney=1000, startEmployees=1, startResearch=0]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[index.php?title=Kategorie:Entwickler-Dokumentation]]&lt;/div&gt;</summary>
		<author><name>130.180.44.249</name></author>
	</entry>
	<entry>
		<id>https://sms-wiki.rrgames.org/index.php?title=Social_Media_Simulator_Wiki:Datenschutz&amp;diff=42</id>
		<title>Social Media Simulator Wiki:Datenschutz</title>
		<link rel="alternate" type="text/html" href="https://sms-wiki.rrgames.org/index.php?title=Social_Media_Simulator_Wiki:Datenschutz&amp;diff=42"/>
		<updated>2026-07-10T05:19:26Z</updated>

		<summary type="html">&lt;p&gt;130.180.44.249: Die Seite wurde neu angelegt: „= Datenschutzerklärung =  == Allgemeine Hinweise == Der Schutz Ihrer persönlichen Daten ist uns ein wichtiges Anliegen. In dieser Datenschutzerklärung informieren wir Sie darüber, welche personenbezogenen Daten bei der Nutzung dieses Wikis erhoben und wie diese verwendet werden.  == Verantwortliche Stelle == Verantwortlich für die Datenverarbeitung in diesem Wiki ist:  :&amp;#039;&amp;#039;&amp;#039;Betreiber:&amp;#039;&amp;#039;&amp;#039; RailRoad Games :&amp;#039;&amp;#039;&amp;#039;E-Mail:&amp;#039;&amp;#039;&amp;#039; info@rrgames.org  == Erhebung und…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Datenschutzerklärung =&lt;br /&gt;
&lt;br /&gt;
== Allgemeine Hinweise ==&lt;br /&gt;
Der Schutz Ihrer persönlichen Daten ist uns ein wichtiges Anliegen. In dieser Datenschutzerklärung informieren wir Sie darüber, welche personenbezogenen Daten bei der Nutzung dieses Wikis erhoben und wie diese verwendet werden.&lt;br /&gt;
&lt;br /&gt;
== Verantwortliche Stelle ==&lt;br /&gt;
Verantwortlich für die Datenverarbeitung in diesem Wiki ist:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Betreiber:&#039;&#039;&#039; RailRoad Games&lt;br /&gt;
:&#039;&#039;&#039;E-Mail:&#039;&#039;&#039; info@rrgames.org&lt;br /&gt;
&lt;br /&gt;
== Erhebung und Speicherung personenbezogener Daten ==&lt;br /&gt;
&lt;br /&gt;
=== Beim Besuch des Wikis ===&lt;br /&gt;
Beim Aufrufen dieses Wikis werden automatisch Informationen durch die Server erfasst. Diese sind:&lt;br /&gt;
&lt;br /&gt;
* IP-Adresse&lt;br /&gt;
* Datum und Uhrzeit der Anfrage&lt;br /&gt;
* Browsertyp und Browserversion&lt;br /&gt;
* Verwendetes Betriebssystem&lt;br /&gt;
* Referrer-URL&lt;br /&gt;
&lt;br /&gt;
Diese Daten dienen ausschließlich der Sicherstellung eines störungsfreien Betriebs der Seite sowie der Verbesserung unseres Angebots.&lt;br /&gt;
&lt;br /&gt;
=== Bei Registrierung und Bearbeitung ===&lt;br /&gt;
Wenn Sie sich in diesem Wiki registrieren, werden folgende Daten gespeichert:&lt;br /&gt;
&lt;br /&gt;
* Benutzername&lt;br /&gt;
* E-Mail-Adresse (sofern angegeben)&lt;br /&gt;
* Zeitstempel von Bearbeitungen&lt;br /&gt;
* IP-Adressen bei Bearbeitungen (intern gespeichert)&lt;br /&gt;
&lt;br /&gt;
Bitte beachten Sie, dass Bearbeitungen öffentlich einsehbar und dauerhaft gespeichert werden.&lt;br /&gt;
&lt;br /&gt;
== Cookies ==&lt;br /&gt;
Dieses Wiki verwendet Cookies, um grundlegende Funktionen bereitzustellen (z. B. Login-Status, Spracheinstellungen). Sie können die Speicherung von Cookies in Ihrem Browser einschränken oder deaktivieren.&lt;br /&gt;
&lt;br /&gt;
== Weitergabe von Daten ==&lt;br /&gt;
Eine Weitergabe personenbezogener Daten an Dritte erfolgt nicht, außer wenn dies gesetzlich vorgeschrieben ist.&lt;br /&gt;
&lt;br /&gt;
== Speicherdauer ==&lt;br /&gt;
Personenbezogene Daten werden nur so lange gespeichert, wie dies für den jeweiligen Zweck erforderlich ist oder gesetzliche Aufbewahrungsfristen bestehen.&lt;br /&gt;
&lt;br /&gt;
== Ihre Rechte ==&lt;br /&gt;
Sie haben das Recht auf:&lt;br /&gt;
&lt;br /&gt;
* Auskunft über Ihre gespeicherten Daten&lt;br /&gt;
* Berichtigung unrichtiger Daten&lt;br /&gt;
* Löschung Ihrer Daten&lt;br /&gt;
* Einschränkung der Verarbeitung&lt;br /&gt;
* Datenübertragbarkeit&lt;br /&gt;
* Widerspruch gegen die Verarbeitung&lt;br /&gt;
&lt;br /&gt;
Zur Ausübung Ihrer Rechte wenden Sie sich bitte an die oben genannte verantwortliche Stelle.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Wir setzen technische und organisatorische Sicherheitsmaßnahmen ein, um Ihre Daten vor Verlust, Manipulation oder unbefugtem Zugriff zu schützen.&lt;br /&gt;
&lt;br /&gt;
== Änderungen dieser Datenschutzerklärung ==&lt;br /&gt;
Wir behalten uns vor, diese Datenschutzerklärung bei Bedarf anzupassen. Es gilt die jeweils aktuelle, im Wiki veröffentlichte Version.&lt;/div&gt;</summary>
		<author><name>130.180.44.249</name></author>
	</entry>
</feed>