layered-waves-haikei (1)-svg-svg

PolisEngine

Simulace měst, ekonomik a společností

PolisEngine je open-source simulační knihovna pro modelování měst, ekonomik a společností. Umí odpovědět na otázky typu co se stane, když stát zvýší daně, zestátní podniky nebo se přeruší dodávky zboží. Vzniká jako backend pro budovatelské strategie, ale použitelný je všude, kde je potřeba simulovat společnost bez hry a UI okolo.

O projektu


PolisEngine je simulační knihovna napsaná v C# pro .NET 10. Simuluje ekonomiku, obyvatelstvo, společnost, dopravu a infrastrukturu, přičemž se všechny tyto systémy navzájem ovlivňují – nedostatek zboží sráží spokojenost, klesající důvěra podrývá legitimitu vlády, ekonomický kolaps spouští migraci.

Engine je záměrně headless. Zná stav světa a pravidla simulace, ale neřeší, jak co vypadá – veškerá vizuální stránka je věcí frontendu, který si engine připojí jako závislost. Stejnou simulaci tak může pohánět 3D hra, webové rozhraní i konzolová aplikace.

Headless

Žádná závislost na herním enginu ani UI

Deterministický

Stejný vstup vždy dá stejný výsledek

Moddovatelný

Obsah i chování lze rozšířit bez zásahu do kódu

Datově řízený

Obsah je definovaný v datových souborech

Co engine simuluje


PolisEngine modeluje několik provázaných domén. Každá z nich funguje samostatně, ale skutečná dynamika vzniká teprve jejich vzájemným působením napříč simulačními ticky.

Ekonomika

Trhy, ceny, podniky, daně, státní rozpočet a dluh, centrální banka, privatizace i zestátnění, toky kapitálu a plánované hospodářství. Ekonomické modely jsou vyměnitelné – kapitalistickou implementaci lze nahradit jinou bez zásahu do jádra.

Obyvatelstvo

Obyvatelé jako jednotliví agenti nebo jako agregované skupiny podle potřebné úrovně detailu. Demografie, vzdělání, potřeby, sociální vrstvy a migrace.

Společnost

Důvěra ve vládu, legitimita, sociální indikátory a jejich zpětné vazby, kulturní hodnoty a normy. Indikátory jsou počítané přes graf závislostí, takže je lze libovolně propojovat.

Infrastruktura a doprava

Budovy, dopravní sítě, vozidla a jízdní řády, dodavatelské řetězce, sklady a detekce výpadků v zásobování.

Svět a prostor

Svět v mřížce rozdělený na simulační chunky, terén, přírodní zdroje a zóny. Úroveň detailu simulace se řídí per chunk, takže lze počítat velké mapy bez ztráty výkonu.

Modding

Moddingové API umožňuje přidávat nové typy budov, zboží i sociálních indikátorů, registrovat vlastní ekonomické modely a psát herní logiku v Lua.

K čemu se dá použít


Engine nevzniká jen pro hry. Protože nemá žádnou vazbu na grafiku ani vstup uživatele, dá se pustit kdekoliv, kde je potřeba simulovat společnost nebo ekonomiku.

Budovatelská strategie

Frontend posílá příkazy a přijímá události, engine pod tím běží celou simulaci.

Ekonomický sandbox

Porovnání toho, jak různá ekonomická uspořádání reagují na stejný vnější šok.

Trénink AI

Deterministická headless smyčka, se kterou může agent pracovat plnou rychlostí hardwaru.

Modelování scénářů

Simulace ekonomických a společenských přechodů a pozorování toho, co z nich vzejde.

Technické specifikace


Knihovna

Jazyk: C#
Cílová platforma: .NET 10
Licence: LGPL v3
Konfigurace: fluent builder nebo TOML
Distribuce: .NET class library

Kvalita a testování

Testy: xUnit, FluentAssertions
Benchmarky: BenchmarkDotNet
Návrh: SOLID, data-driven, oddělené vrstvy
Módy: real-time a headless

Stav projektu


PolisEngine je v rané fázi vývoje a zatím není použitelný. Základní infrastruktura se staví, většina simulačních systémů ještě neexistuje. Veřejné API není stabilní a bude se měnit bez ohlášení. Na nasazení dnes to tedy zatím není.

Rané stádium vývoje

Kód a vývoj


PolisEngine vzniká otevřeně na GitHubu. Kód, architektonická dokumentace i plán vývoje jsou veřejné – k nahlédnutí, k použití i k připomínkám.

Aktuální stav: rané stádium vývoje

PolisEngine je open-source projekt. Podmínky použití najdete v licenci v repozitáři.