Перейти к публикации
soorock

Убрать коллизию с мобами на клиенте (разбор фидбека)

Рекомендованные сообщения

 Хотел бы немного разъяснить суть петишки, так как на стриме с Саферо произошла явная дискоммуникация.


 Саферо аргументировал невозможность реализации тем что это усложнит выделение таргета. Но во-первых я не просил менять размеры хитбоксов, во вторых выделение таргета никак не может зависеть от размеров физического тела моба. Ниже разберем как это работает.


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


 Что происходит когда мы хотим выделить в таргет моба? Есть такая штука как рейкастер - это луч который проецируется из камеры в определенную точку, в нашем случае - это 2д координаты мыши сконвертированные в 3д позицию (скриншот 1).  Каждый раз когда луч пронзает какой-то объект - он добавляет его в список и возвращает этот список программе, которая ищет в нём выделяемый объект. Если он там присутствует - мы успешно выделяе моба. Физическое тело для этого не нужно, рейкастер может работать непосредственно с самой моделькой моба. Чаще всего от модели абстрагируются вовсе и используют для этого какой-то примитив типа невидимого куба. Я не могу знать конкретную реализацию которую использовали корейцы, но вышеописанный способ применяется в 99% случаев.


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


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

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

 В общем хотелось бы получить более развернутый ответ на то возможно ли что-то с этим сделать, чем тот что был дан на стриме. Возможно, непосредственно от одного из техников?

raycast.jpg

Screenshot_9.png

Ссылка на сообщение
Поделиться на других сайтах

  • 1 месяц спустя...
10.05.2024 в 11:54, soorock сказал:

 Хотел бы немного разъяснить суть петишки, так как на стриме с Саферо произошла явная дискоммуникация.


 Саферо аргументировал невозможность реализации тем что это усложнит выделение таргета. Но во-первых я не просил менять размеры хитбоксов, во вторых выделение таргета никак не может зависеть от размеров физического тела моба. Ниже разберем как это работает.


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


 Что происходит когда мы хотим выделить в таргет моба? Есть такая штука как рейкастер - это луч который проецируется из камеры в определенную точку, в нашем случае - это 2д координаты мыши сконвертированные в 3д позицию (скриншот 1).  Каждый раз когда луч пронзает какой-то объект - он добавляет его в список и возвращает этот список программе, которая ищет в нём выделяемый объект. Если он там присутствует - мы успешно выделяе моба. Физическое тело для этого не нужно, рейкастер может работать непосредственно с самой моделькой моба. Чаще всего от модели абстрагируются вовсе и используют для этого какой-то примитив типа невидимого куба. Я не могу знать конкретную реализацию которую использовали корейцы, но вышеописанный способ применяется в 99% случаев.


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


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

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

 В общем хотелось бы получить более развернутый ответ на то возможно ли что-то с этим сделать, чем тот что был дан на стриме. Возможно, непосредственно от одного из техников?

raycast.jpg

Screenshot_9.png

Ну теперь хоть понятно на каком моменте мы разошлись в понимании.
Не размер коллизии модели, а ее прозрачность. Разные сущности.
Господин Papanda накинет по этой теме :)

Ссылка на сообщение
Поделиться на других сайтах

15.06.2024 в 18:58, НечтоХрустящее сказал:

Лучше поздно, чем никогда 

PersikWily

Нет ну ты даже порадоваться нормально не можешь. Одно слово = Хруст.
Я ТАК ЛЮБЛЮ И НЕНАВИЖУ (с)

:blobDance:

Ссылка на сообщение
Поделиться на других сайтах

Вот я так ето и знал-написал когда толька зашол сервер МW, сичас нету возможнасти играть из за войни ну я рад за то што у MW-Linege все чики-пики image.png.ef0cd4741305c6659e11e122397c356b.pngimage.png.5db1560e6544398f1613ebe3e39bc198.png

Ссылка на сообщение
Поделиться на других сайтах

подумать о введение фейк епика как есть на других серверах без продаж и передачи на других персонажей. пресмотреть бонусы от евентов я застал евент Мясо мне непонравелось. Прведения твт ctf по желанею регестрация с стадиями под уровень напремер 60-70 70-75 и так далие
Ссылка на сообщение
Поделиться на других сайтах

ТВТ нто точна зайдет в ожитданиях между лаба какма и тд .А ви уже все подкриктируюте. Почему спросять меня скажу (ИДИ на)) шутка в етот момент ти как индиви диуальний игрок и ришаеш што делать. Ити дальше в пати спойлить и тд или показать себя на Арене ПВП и дать знать што я соло ну ебашу как трое

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...