To je dost zavádějící… Přinejmenším AI, vykreslování a input události (periferie) jsou už na systémových úrovních rozdělené zpracováním do různých vláken. Druhá věc je, že ty události se nesmí větvit příliš, aby se události na obrazovce „děly“ ve správný čas – tzn. nepředbíhalo se vykreslování stavu scény, který ještě není přepočítán a podobně… U real-time her jako online FPS je to dost zásadní.Z vlastní zkušenosti můžu zmínit například game development pro iOS, kde má scéna nějaký časovač (např. 60 fps) a každou šedesátinu vteřiny se plánuje nad scénou selektor step: – jakmile v něm jsem, musím přepočítat pozici a pohyb objektů, vyhodnotit AI a herní pravidla a o víc se nestarám, tahle fáze moc výkonu nesebere – vykreslování se řeší po dokončení step: na vrstvě Quartz (OpenGL, vykreslování atd.) a vstupy uživatele (tlačítka na obrazovce, akcelerometr apod.) vyvolávají další separátní vlákno, tzn. se stav ovládání při změně připraví pro další step:.Pokud zpracování v nějakém kroce zabere více času, začne samozřejmě klesat FPS – tady už je to ale hodně o vyvažování toho, jak náročné věci se vyhodnocují ve scéně a jak náročné objekty musí jít poté na vykreslení. Lehce tu plácnout, že „se má všechno naprcat do víc vláken“ tak snadno opravdu nefunguje… Největším zdržovákem je ale skoro jistě grafika, efekty apod., přičemž mi nepřijde moc myslitelný, že by nevyužívaly potenciál grafik naplno – u toho už ale jádra procesoru moc nepomůžou…
Názor byl 2× upraven, naposled 16. 06. 2013 21:48