Table of Contents

Simulace

Cílem práce je vytvořit simulační framework představující prostředí, ve kterém například žijí ruzná zvířata lišící se svými vlastnostmi. Součástí vypracované práce bude i několik implementovaných zvířat demonstrující funkce a možnosti simulačního frameworku. Simulátor bude obsahovat i vizualizaci ukazující aktuální stav světa se základními statistikami (počty zvěře a podobně). Tato statistika by se měla přiblížit reálnému světu.

Simulace musí mít možnost nastavení parametrů jednotlivých objektů, jejichž životní cyklus se simuluje. Pro výše uvedená zvířata tedy třeba rychlost pohybu, délka života, parametry ovládající hladovost a podobně.

Je možné zvolit i jiné téma simulace například simulace zahlcení dopravy na křižovatkách v definované mapě.

Distribuovaná diskrétní simulace

Prostředí (reprezentované pravidelnou mřížkou) obsahuje aktuální polohu a stav jednotlivých zvířat. Na základě tohoto stavu se spočítá stav reprezentující následující den - změny probíhají v krocích.

Pravidla pro jednotlivá zvířata mohou být např.:

Simulace bude podporovat hodně velké světy, které budou udržovány distribuovaně. Na každém počítači bude část světa. Když tento simulátor dostane přes síť povel, odsimuluje další kolo, poté potvrdí provedení simulace. Pokud se bude něco dít na hranici světa, synchronizaci zajišťuje server

GUI je samostatná aplikace, která se připojí ke všem simulátorům a přijímá od nich informace o aktuálním stavu světa (pouze tu část, kterou právě zobrazuje) a posílá jim instrukce na provedení dalšího kroku simulace.

Veškerá síťová komunikace bude v textovém formátu a dotazy na různé simulátory budou obslouženy pomocí vláken (jedno na jeden simulátor, se kterým se komunikuje).

Real-time simulace

Real-time simulace se od diskrétní simulace, liší v tom, že se stav světa neaktualizuje po dni, ale každé zvíře má své vlákno a kdykoliv může provést nějakou akci. Tato simulace také není distribuovaná. V této práci je hlavně důležité správně navrhnout práci s vlákny.

Požadavky na práci ve dvojici