Физика на стороне клиента или сервера в мморпг?

Всем привет, в данный момент веду разработку собственного ммо проекта. И хотелось бы понять для себя, что лучше реализовать. Обработку физики на клиентах игроков, или все же на авторитарном сервере.

77

Ну, давайте подумаем.
Если это шутер, значит будет много рейкастов для обсчета попаданий. Считать все это на сервере очень затратно, но полностью отдать это на откуп клиенту — значит расплодить читеров.
Я вижу два подхода:
- считать попадания на клиенте, при этом на сервере вести статистику попаданий и, если кто-то будет сильно выбиваться из нее, то это читер. Иными словами, тут нужно немного дата сайенс отсыпать.
- считать попадания на клиенте, при этом слать на сервер баллистику (тип оружия, углы, скорость и т.п.), чтобы иметь возможность раз в какой-то период времени (т.е., не каждый выстрел) валидировать.
Про валидацию тут тоже есть варианты. Можно валидировать каким-нибудь отдельным от основного сервера сервисом для обсчета физики, можно валидировать другими клиентами (шлешь N клиентам исходные данные, истина — по большинству голосов).

Теперь про общую физику коллизий. Тут нужно с заданной периодичностью слать на сервер данные по скоростям и пр. игроков и валидировать их, но не на каждый кадр, а так, чтобы было возможно отбросить условного читера на нужную позицию без драматических скачков для других.

Вероятно, можно и еще придумать варианты, но такими пользовался лично я (опыт разработки игровых серверов около 3х лет).

1
Ответить

Читера легко вычислить по среднему времени между появлением цели на в зоне видимости и ее поражением.  Всякие wall hack и aim помощники их нехило так сокращают. 
Приэтом видимость можно сразу у обоих игроков сразу. За истину брать время у подстреленного игрока. Ибо ему читеть скорее всего нет смысла

Ответить

Стрельба будет аркадной, без сложной баллистики. Поэтому мы все же будет делать примерно что то тип того. Будет храниться статистика игрока за некоторое время(Статистика в плане все события с игроком и временные метки этих событий), и уже можно будет смотреть аномальные значения. Физику вынесу на клиент, и будет збс думаю.

Ответить