A to ti nevadi, ze vysledek vypoctu zalezi na tom, co jsi oznacil za panaka 1 a za panaka 2?
To mi vůbec nevadí, pro mě je důležité mít svět v konzistentním stavu, což je vždy zaručeno.
Jak uz bylo receno, pokud muzes kdekoli ten svet zmenit, tak s nim fakticky vsude pracujes, akorat to explicitne nerikas. Uplny analog tomu je pouzivat vsude stavovou monadu se stavem celeho sveta pro skladani tech zmen stavu. Pak samozrejme pouzitim FP nic neziskas
S tím naprosto souhlasím.
Vyhodu ti to prinese az v momente, kdy nahlednes, ze existuji i jine zpusoby, jak skladat stavy jednotlivych prvku sveta, nez mutovat cely svet; pak je muzes vhodne funkcionalne abstrahovat.
Já ty jiné způsoby vidím a vidím je i bez FP, problém je jinde. Řeším svět tak složitý, že ho nedokážu rozumně rozdělit na nezávislé části. Proto volím imperativní přístup s mutable světem a postupným výpočtem. Tím ten problém zredukuju na výpočet interakce jednoho objektu s okolním (v tu chvíli konstantním) světem. Pokud provedu nezávislé výpočty a snažím se je dát dohromady, je to problém řádově složitější, každý objekt je v interakci s každým.
Zatím všechny velké hry, které jsem viděl, to dělají právě takto, např. v Unreal Engine:
https://udn.epicgames.com/Three/ActorTicking.htmlPrakticky nic paralelního tam není. Některé entity se dají pustit paralelně se simulací fyziky, ale to je dost slabá optimalizace, hodí se to jen pro jednoduché entity bez fyziky. Oni by to taky rádi udělali paralelně, protože update entit v game threadu bývá dost často slabým místem z hlediska výkonu, ale prostě to neumí líp. A nemyslím si, že FP jim s tím pomůže.
A z toho co rikas mi tak trochu pripada, ze to vlastne delat nechces, kdyz rikas, ze by to "bylo slozite".
Ano nechci, z mého pohledu je to složité.