August 30th, 2012

Искусство обмана

Это немного причесанная версия моего рассказа по аське про особенности геймдева. Везде, где можно было соврать для красного словца, я так и делал :)

Мой коллега правил адский баг в сетевой игре Splinter Cell Conviction. Следует сделать небольшое отступление и рассказать, как сейчас пишутся все сетевые игры. Считают одно и то же детерминировано на разных машинах, подавая в движок на обоих ввод от обоих машин. Если в игре происходит лаг, то детерминировано откатывают движок на какое-то число шагов и подают снова все данные, как будто лага не было. В процессе игры, чтобы убедиться, что все считается, как положено и никто не читерит, считаются хэш-суммы от состояния мира и сравниваются. Если отличаются, происходит рассинхронизация, и игра прекращается.

Collapse )