➡️
4) Самое интересное начинается, когда повреждение объекта столь большое, что надо объект сломать, а заодно сломать всё то, что от него зависит. То есть если ломаем стенку, то заодно что-нибудь ещё вокруг. Нюанс в том, что во время такого разрушения создается десятки и сотни частей здания, каждый из которых должен отлететь и упасть по физике, взаимодействуя с окружением и другими обломками. А у нас тут мультиплеерная игра, а значит есть ограничения по скорости обмена информации и ширине пропускного канала. Если сервер начнет слать информацию про каждый кусок, то это забьет канал. К тому же есть тема пинга, то есть времени на обмен информацией между клиентом и сервером. В случае взрыва всё происходит в доли секунды и нет времени ждать, когда сервер всё просчитает и будет постепенно отдавать. Поэтому нужно доставать дым и зеркала, чтобы создать иллюзию разрушения и влезть в технические ограничения.
Поэтому тут применяется две системы разрушения:
а) Одна система обрабатывается прямо на клиенте и показывает красивый разлет сотен обломков. Но как как сервер ничего не знает про эти обломки, то значит между клиентами эти обломки не синхронизированы, так что надо их поскорей убрать и вообще они не должны влиять на геймплей. Поэтому на этом видео видно как игрок проходит сквозь обломки (нет коллизии) и как они исчезают, чтобы игрок видел то состояние, которое на сервере.
б) Вторая система разрушения живет на сервере. И она простая как пробка. Например, что-то в духе построек в Fortnite, где всё состоит из крупных примитивов, которые просто исчезают, если попали в радиус взрыва или как-то связаны с элементами, которые попали под взрыв. Никакой красоты, обрабатываются только те элементы, которые важны для геймплея. Ведь чем сложней будут вычисления на сервере, тем дороже будет выходить сервер в расчете на одного игрока. А мы бы хотели, чтобы одна серверная стойка в датацентре держала X матчей по Y игроков в каждом и считали бы из этого финансовую модель проекта.
5) И последнее, если игрок прям решил снести здание под корень. В этом случае должны же остаться обломки. Можно на видео пронаблюдать этот момент, когда здание целиком рассыпается на обломки и падает, создавая много пыли, а затем мы видим кучу обломков. Вот только эти обломки появились не по физике разрушения, а вылезли из под земли. На другом видео из Battlefield 6 на 10-ой секунде можно пронаблюдать как гора обломков вылезает из под земли, пытаясь прикрыться облаком пыли.
Post #100
209