Потихоньку переписываю рендер моделей на шейдеры и VBO. База общая с параноей, поэтому вы в дальнейшем сможете самостоятельно подключить туда бамп и вообще провести рад занятных экспериментов. Из моего опыта у народа основное затруднение возникает вот как раз с написанием этой базы, чтобы всё корректно создавалось\выгружалось.
2 Дядя Миша:
Ну, состояние физического движка обычно приватное и если нужно синхронизироваь состояние на сервере и клиенте, то нужно его как-то передать. Так что по идее у физдвижка должна быть своя дельта
Да вообщем-то нет, если ты внимательно изучишь имплементацию физикса, то заметишь, что я там по сути даже не пользуюсь встроенными средствами сериализации - достаточно сохранить основные характеристики каждого физ. тела. Этого достаточно для полного восстановления работы, какого-то особого глобального состояния у симулятора нет. Есть тела - есть их масса, скорости, кладёшь в сцену - на, симулируй. А если что-то такое где-то и есть, это признак плохой архитектуры.
2 Дядя Миша:
Этого достаточно для твёрдых тел. А если считается физика с искажением скелета или формы? Впрочем, рыгдоллы можно не синхронизировать, а без остального обойтись, тогда скорости-массы хватит
2 mittorn: ты никак не передашь по сети софтбоди адекватным образом. Равно как и симуляцию жидкости и всего прочего.
Post automatically merged:
Но вообще говоря на настоящий момент от физики до сих пор не требуют многого.
Немножко катающихся бочек, рагдолл (самое важное), физику машинки и занавески по вкусу.
2 Дядя Миша:
ну по идее можно передавать время, силу и координаты начальных возмущений. Само тело то на клиенте есть. Разве это не адекватный способ? Да, нужно больше трафика, но не сильно. Это всего лишь координаты и пара чисел для каждого возмущения.
2 mittorn: большинство физ.двигов очень не любят когда их всё время поправляют. Т.е. механизм прямой поправки есть у всех, но ни один двиг не предполагает что это будет делаться несколько раз в секунду.
2 Дядя Миша:
То есть оно не ориентировано на постоянную синхронизацию. Вообще по идее можно прям передавать сетку деформации при подключении, а дальше только внешние воздействия. В таком случае не будет коррекции и оно может банально разъехаться при большом пинге например.
2 mittorn: именно. Да посмотри как в том же сорсе в чисто мультиплеерных играх всячески душат симуляцию хавока, оставляя только клиентские рагдоллы без синхры.
2 Дядя Миша: зачем вообще физика на клиентах, которую необходимо синхронизировать? Почему бы не просчитывать физику серверу и не передавать координаты и углы объектов клиентам. А клиенты в свою очередь передавать серверу свои столкновения для обработки?
Есть. Можно хоть банан какой-нибудь сделать физически-общим для всех, зависит от маппера. Но обычно делают бочки и всякие большие объекты общими, а мелочевку чисто клиентской.
Ragdoll в Rust'е тоже общий, трупы лутают и разделывают игроки.
2 Raid:
А вот от машинки я бы не отказался, точнее от надувной лодки. Пытался сделать на базе пушабли, но она зараза то застревает, то улетает, то вообще ведёт себя неподобающим образом. (ага, последняя версия стопает сервер.длл)
Я вот не знаю, читает ли это кто-нибудь, но хочу отметить следующие моменты.
Это не просто тупое копирование со второй паранои, т.к. лично для меня осталось еще несколько неясных моментов, которые бы лучше всего проверить на максимально упрощённом рендерере без бампов-параллаксов, но не ломать же параною ради этого. Вот ксаш мод и станет такой тестовой платформой.
В принципе модельки уже рисуются и производительность выросла в несколько раз, но всплыл оч. интересный момент. На той тестовой карте с аликс я нипочём не мог получить более 220 фпс в параное, грешил на сложность шейдеров. Теперь тестирую в ксаш-моде с максимально простыми шейдерами и чтоже? Те же самые 220 фпс
Так что еще есть над чем поэкспериментировать.
Post automatically merged:
Важная мелочь: декали на моделях с повертексным освещением тоже берут освещение повертексно. Слева общий амбиент, справа точное.