Ukoliko se bavite game developmentom na bilo kom nivou, sigurno ste nekada pomislili kako bi bilo dobro napraviti multiplayer igru.
Međutim, pravljenje multiplayer igre je daleko teže nego pravljenje singleplayer igre jer, pored vaših veština pravljenja samih mehanika za igre, potrebno je znati kako optimizovati samu igru da šalje što manje saobraćaja kroz mrežu, kako da svi klijenti budu u sinhronizaciji konstantno, kako rešiti problem ljudi koji kasnije ulaze u sam meč i još mnogo, mnogo toga.
Firma Photon, koja je veteran u pravljenju frameworka za razvoj multiplayer igara, pre nekoliko dana je izbacila svoj najnoviji proizvod - Photon Quantum.
Photon Quantum predstavlja potpuno determinističk framework, baziran na ECS šablonu (za ljude koji koriste Unity, ovo nema nikakve veze sa Unityevim ECSom 😄) , za pravljenje multiplayer igara.
Šta tačno znači to deterministički?
Znači da za određeni input koji korisnik kreira, identičan (što je najbitnije, u decimalu) će se taj input reflektovati na svakoj mašini koja se trenutno nalazi u tom meču. Zašto je to inače teško proizvesti? Zbog same prirode floating-point aritmetike na modernim računarima gde se većina decimalnih brojeva ne može prikazati baš takvi kakvi jesu već se zaokružuju na nekoj od poslednjih decimala.
Inženjeri iz Photona su to rešili tako što su napravili potpuno novu numeričku strukturu podataka koja se koristi umesto standardnih floating-point struktura kao što su float i double. Time se osigurava upravo to, da svaki otkucaj (eng. tick) simulacije na svim računarima izgleda isto.
Takođe, Photon je morao da napravi i svoj endžin za fiziku baš iz tog razloga što svi komercijalni endžini za fiziku mahom koriste float i double za svoja računanja, pa je ipak bilo lakše da naprave svoj od nule nego da neki postojeći prilagode svojim potrebama.
Pored toga, baš zato što sama simulacija prihvata samo input, mogućnost cheat-ovanja je sveden na minimum, a ukoliko se koristi još i neki custom server, prema rečima Photonovih ljudi, ta mogućnost je ravna nuli.
Photon Quantum trenutno postoji samo za Unity, ali se aktivno razvija framework i za Unreal.
2 komentara