fire64 писал: Соответственно, либо придется на клиенте еще раз создавать физический каркас мира, дублируя код с сервера, что скажем прямо не супер, либо передавать матрицу костей с сервера на клиент, а это 12 float на кость, т.е. 48 байт на кость каждый фрейм.
Для примера, у hgrunt.dll 71кость, т.е. 3408 байт за фрейм.
ниче передовать ненадо, рагдольный человечек чисто клиенсткая часть, для более менее синхронизации, нужно передать импульс на хитбоксы либо на конкретные кости.
для лимитов, я бы копал в сторону макса и извлечения информации из их бипеда скелета и дальше сопоставлял бы с оригинальным скелетом.
marikcool писал: ниче передовать ненадо, рагдольный человечек чисто клиенсткая часть, для более менее синхронизации, нужно передать импульс на хитбоксы либо на конкретные кости.
для лимитов, я бы копал в сторону макса и извлечения информации из их бипеда скелета и дальше сопоставлял бы с оригинальным скелетом.
В результате придется делать физику и на клиенте, а это гарантированное снижение fps.
А если игрок по нему выстрелит, либо же нужно будет, чтобы падающий регдол свои телом сместил объект?
В HL2 например реголами можно было сбивать пропы.
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
В ХЛ2 раггдолы клиентовские насколько я помню, только когда у игрока появляется супер-гравицапа и в модах вроде Блек-Месы и Смода их сделали серверными чтобы с ними можно взаемодействовать, брать гравицапой и разрывать на части.
А в волатиле регдолл серверный.
Лучше передавать кучу флоатов по сети (кстати, для этого есть оптимизации), чем ломать голову над проблемой "регдолл толкнул ящик на клиенте, как теперь переместить этот ящик на сервере??"
Мне кажется рэгдолл на клиенте с бсп-коллизией - предельно достаточно, какие-то ящики двигающиеся - лишнее. А если будет на сервере, то сгодится только в сингле, мне страшно представить что будет с рэгдоллом, если по сети так адски тормозит лазер рпг, ракета, плевок буллсквида.
Рагдолы в рилэйбл буфере? Мсье знает толк в извращениях.
Впрочем, в волатиле вообще нет рилэйбл буфера. Это чтобы поставить извращенцев в тупик.
Добавлено 23-07-2013 в 17:58:
Цитата:
PLut писал: А если будет на сервере, то сгодится только в сингле
Его для сингла и делают. Кому какое дело до того, как умирают игроки в мультиплеере? А вот в сингле - это развлечение для эстетов, убивать мобов и смотреть, насколько кривой рагдолл получился.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
fire64 писал: либо передавать матрицу костей с сервера на клиент, а это 12 float на кость, т.е. 48 байт на кость каждый фрейм.
Ну ктоже в здравом уме будет передавать матрицы по сети?
Таких даже на гей-деве высмеивают.
Сжимать надо. Сначала до локальных координат, чтобы в шорт умещалось. А угол - в три байта. И вот уже вместо 48 байт у нас девять байт. Потом персональную дельту на 8 позиций (больше ИМХО смысла нет). 71 кость * 9 байт = 639 байт на кадр. И слать не каждый кадр, а чтоб залерпилось, т.е. 10 раз в секунду. Нам же лучше - плавнее дыргаться будет, а не как хл2-шные рогноллы.
И слать не все кости, а только выбранные + 1 байт на номер кости, минус несколько десятков байт на исключенные кости.
И на клиенте принимать, налиту строить из принятого оффсеты и кватернионы и БЛЕНДИТЬ С ОСНОВНОЙ АНИМАЦИЕЙ.
Вот тогда будет толк. А так нет.
Но лично я скажу, что в ксаше такую стройную систему не сделаешь - совместимость слишком мешает. Но вообще - можно.
Добавлено 23-07-2013 в 18:50:
Цитата:
marikcool писал: ниче передовать ненадо, рагдольный человечек чисто клиенсткая часть
Это устаревший подход. Да, это просто и общепринято, но кто сказал что мы ищем простые, лёгкие пути?
Мы же всё-таки не Юнити какой делаем.
Цитата:
fire64 писал: В результате придется делать физику и на клиенте, а это гарантированное снижение fps.
Какая связь?
Цитата:
fire64 писал: В HL2 например реголами можно было сбивать пропы.
Так там пропы тоже клиентские.
Цитата:
PLut писал: мне страшно представить что будет с рэгдоллом, если по сети так адски тормозит лазер рпг, ракета, плевок буллсквида.
Серверный рагдолл нужен в первую очередь для сингла. Для мульта придется написать таки клиентский, там некритично.
Дядя Миша писал: Для мульта придется написать таки клиентский, там некритично.
Я придумал хитрее. Сделать опцию для мульта, mp_ragdolls или типа того. Если у игроков слабый коннект, то сервер ставит эту опцию и вместо рог нолла обычные анимации смерти. Если игра по локалке или толстый инет-канал - то опцию не ставим и наслаждаемся ногами, заезжающими в жопу, и прочими рогнольными прелестями.