Simulationen von Städten, Volkswirtschaften und Gesellschaften
PolisEngine ist eine Open-Source-Simulationsbibliothek zur Modellierung von Städten, Volkswirtschaften und Gesellschaften. Sie kann Fragen beantworten wie: Was passiert, wenn der Staat die Steuern erhöht, Unternehmen verstaatlicht oder die Warenlieferungen unterbrochen werden? Sie entsteht als Backend für Aufbaustrategiespiele, ist aber überall dort einsetzbar, wo eine Gesellschaftssimulation ohne Spiel und Benutzeroberfläche erforderlich ist.
PolisEngine ist eine in C# für .NET 10 geschriebene Simulationsbibliothek. Sie simuliert Wirtschaft, Bevölkerung, Gesellschaft, Verkehr und Infrastruktur, wobei sich all diese Systeme gegenseitig beeinflussen – Warenknappheit mindert die Zufriedenheit, sinkendes Vertrauen untergräbt die Legitimität der Regierung, ein wirtschaftlicher Zusammenbruch löst Migration aus.
Die Engine ist bewusst „headless“. Sie kennt den Zustand der Welt und die Simulationsregeln, kümmert sich jedoch nicht darum, wie etwas aussieht – die gesamte visuelle Gestaltung obliegt dem Frontend, das die Engine als Abhängigkeit einbindet. So kann dieselbe Simulation sowohl von einem 3D-Spiel als auch von einer Weboberfläche oder einer Konsolenanwendung genutzt werden.
Keine Abhängigkeit von einer Spiel-Engine oder einer Benutzeroberfläche
Die gleiche Eingabe führt immer zum gleichen Ergebnis
Sowohl der Inhalt als auch das Verhalten lassen sich ohne Eingriff in den Code erweitern
Der Inhalt ist in den Datendateien definiert
PolisEngine modelliert mehrere miteinander verknüpfte Domänen. Jede davon funktioniert eigenständig, doch die eigentliche Dynamik entsteht erst durch ihr Zusammenspiel über die einzelnen Simulations-Ticks hinweg.
Märkte, Preise, Unternehmen, Steuern, Staatshaushalt und Staatsverschuldung, Zentralbank, Privatisierung und Verstaatlichung, Kapitalströme und Planwirtschaft. Wirtschaftsmodelle sind austauschbar – die kapitalistische Umsetzung lässt sich durch eine andere ersetzen, ohne den Kern zu verändern.
Einwohner als Einzelpersonen oder als aggregierte Gruppen, je nach erforderlichem Detaillierungsgrad. Demografie, Bildung, Bedürfnisse, soziale Schichten und Migration.
Vertrauen in die Regierung, Legitimität, soziale Indikatoren und deren Wechselwirkungen, kulturelle Werte und Normen. Die Indikatoren werden anhand eines Abhängigkeitsdiagramms berechnet, sodass sie beliebig miteinander verknüpft werden können.
Gebäude, Verkehrsnetze, Fahrzeuge und Fahrpläne, Lieferketten, Lager und Erkennung von Versorgungsengpässen.
Eine Rasterwelt, die in Chunks unterteilt ist, mit Gelände, natürlichen Ressourcen und Zonen. Der Detaillierungsgrad der Simulation wird pro Chunk gesteuert, sodass große Karten ohne Leistungseinbußen berechnet werden können.
Die Modding-API ermöglicht es, neue Gebäudetypen, Güter und soziale Indikatoren hinzuzufügen, eigene Wirtschaftsmodelle zu registrieren und die Spiellogik in Lua zu programmieren.
Die Engine wurde nicht nur für Spiele entwickelt. Da sie weder an die Grafik noch an Benutzereingaben gebunden ist, kann sie überall eingesetzt werden, wo eine Gesellschaft oder eine Wirtschaft simuliert werden soll.
Das Frontend sendet Befehle und empfängt Ereignisse, während die Engine im Hintergrund die gesamte Simulation ausführt.
Ein Vergleich, wie verschiedene Wirtschaftsordnungen auf denselben externen Schock reagieren.
Eine deterministische Headless-Schleife, mit der der Agent mit der vollen Geschwindigkeit der Hardware arbeiten kann.
Simulation wirtschaftlicher und gesellschaftlicher Übergänge und Beobachtung der daraus resultierenden Entwicklungen.
PolisEngine befindet sich in einer frühen Entwicklungsphase und ist derzeit noch nicht einsatzfähig. Die grundlegende Infrastruktur wird gerade aufgebaut, die meisten Simulationssysteme existieren noch nicht. Die öffentliche API ist noch nicht stabil und kann sich ohne Vorankündigung ändern. Für einen Einsatz ist das System daher derzeit noch nicht bereit.
Frühes EntwicklungsstadiumPolisEngine wird offen auf GitHub entwickelt. Der Quellcode, die Architekturdokumentation und der Entwicklungsplan sind öffentlich zugänglich – zum Einsehen, zur Nutzung und für Anmerkungen.
Aktueller Stand: frühes Entwicklungsstadium
PolisEngine ist ein Open-Source-Projekt. Die Nutzungsbedingungen finden Sie in der Lizenz im Repository.