Насколько я понимаю, большинство больших игр используют фиксированный временной интервал для стабильной симуляции.
Что касается игрового сервера , какую «частоту кадров» они навязывают? Или сказал по-другому, какой фиксированный временной интервал они используют?
Я знаю, что многие скажут: «Так быстро, как они могут сойти с рук». Я хотел бы знать, насколько это быстро, если у вас есть непосредственный опыт создания MMORPG.
mmo
fixed-timestep
Fabio
источник
источник
Ответы:
Second Life реализует физику на стороне сервера с помощью Havok и блокирует обновления до 45 в секунду.
https://community.secondlife.com/t5/General-Discussions/SIM-FPS-is-maxed-out-at-45/td-p/181120
Более ранние версии около 2005-2006 гг. Позволяли обновлениям физики перемещаться настолько высоко, насколько позволял сервер. Неосложненная область с небольшим количеством скриптовых объектов может работать со скоростью 800 обновлений в секунду ... Для большей эффективности и согласованности они позже установили 45.
(В Second Life частота кадров зависит от процессора и графической мощности каждого клиента. Точность в мире зависит от производительности сети.)
источник
Я работал над парой игровых серверов, включая набор из них для MMO.
В общем, у них вообще нет физики. В тех немногих ситуациях, когда физика необходима (в первую очередь, прыжки), мы позволяем клиентам вычислять свою физику, и мы просто отрицаем все, что слишком диковинно (игроки слишком быстро двигаются слишком долго, намного выше, чем они могли бы прыгнуть, и т.д).
Серверы также обычно не имеют «временных шагов». Они обычно не думают в «кадрах в секунду» вообще. Вместо этого мы знаем, когда мы в последний раз слышали от кого-то и что они делали тогда, а затем, когда через некоторое время мы снова слышим от них, мы слышим о том, что они делают сейчас, и поэтому мы обновляем наше внутреннее состояние, чтобы соответствовать , Там нет необходимости строго моделировать все на стороне сервера; мы можем просто записывать то, что говорят нам клиенты, и делать некоторые проверки, чтобы убедиться, что то, что говорят клиенты, выглядит правдоподобно для нас.
источник
perTick * ticksSinceLastUpdated
- просто, эффективно.Помимо других хороших ответов, я хочу добавить тот факт, что некоторая физика обычно не управляется сервером или даже не знает сервером и является обычной уловкой, чтобы сделать мир более богатым без дополнительных затрат на работу сети или сервера. боковая обработка.
Например, там могут быть обломки, которые вы можете пнуть на земле или развеваться на ветру, который взаимодействует с другими объектами, или, может быть, вы можете толкать мертвые тела вокруг.
Если физика носит чисто декоративный характер и никак не влияет на движение или игровой процесс, это может произойти на стороне клиента полностью.
Разные игроки будут смотреть на вещи по-разному (например, если вы выстрелите из банки в банку, и она улетит, другие игроки могут не увидеть, что может улететь), но есть много случаев, когда это не имеет значения, что опыт не ' То же самое для всех игроков, и симуляции на стороне клиента могут реально улучшить внешний вид онлайн-игры.
источник
EVE Online, MMO с одним осколком и несколькими тысячами табличек в больших космических битвах, использует физику на такте 1 Гц, который называется тик «судьба».
http://community.eveonline.com/news/dev-blogs/fixing-lag-drakes-of-destiny-part-1-1/
Так называемая «Кровавая баня B-R5RB» - это крупнейшая новая битва игроков, когда-либо случавшаяся в онлайн-играх («конфликт продолжительностью 21 час вовлек в себя более 7 548 персонажей в целом и максимум 2670 игроков в системе B-R5RB»). в одно время ", сообщает https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RB ).
источник