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

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

77

Зависит от того, что понимать под физикой.

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

А вот состояния игрока (в прыжке ли, падает ли, где сейчас находится, куда и как движется) и всю стрельбу лучше обсчитывать гибридно. Типа, клиент всё равно будет постоянно транслировать данные об этом серверу, чтобы сервер передал это другим игрокам. Так что нужно просто сделать проверку входящих данных на их валидность, чтобы игрок не мог заморозить хп, или накрутить себе скорость бега и высоту прыжка каким-нибудь чит энджином. В случае стрельбы же всё зависит от её механики. C хитскан-пушками (даже если нанесение урона после выстрела производится с задержкой дабы сымитировать время полёта пули) можно тупо проверять, была ли цель в прицеле у игрока, когда он стрелял, этого хватит (вместо более сложных проверок лучше потратить время и силы на разработку мониторящего геймплей античита, или заюзать существующие типа BattlEye). А вот если у тебя в игре есть сложная баллистическая модель, то её придётся считать сервером, иначе пингующие игроки окажутся на дне, а это херовая идея, ибо в необъятных просторах нашей страны мнение игроков с плохим пингом лучше учитывать.

2
Ответить