Як часто великий MMORPG оновлює фізику? [зачинено]


12

Наскільки я розумію, більшість великих ігор використовують фіксований часовий крок для стабільного моделювання.

Щодо ігрового сервера , яку "частоту кадрів" вони накладають? Або сказано це по-іншому, який фіксований графік часу вони зазвичай використовують?

Я знаю, що багато хто би сказав: "Якнайшвидше вони можуть втекти". Мені хотілося б знати, наскільки це швидко, якщо у вас є прямий досвід створеної MMORPG.


Не варто приділяти занадто багато уваги тому, що роблять інші. Те, що працює для когось іншого, не обов'язково також має працювати для вас.
Філіп

6
EVE Online оновлює його моделювання раз на секунду, але його система незвичайна. Дивіться першу частину цієї статті для більш детальної інформації: themittani.com/features/understanding-eve-online-server-tick
Ross Ridge

1
Отже, це "запитання про дрібниці щодо чужих ігор, які вже існують", а не питання про розробку гри?
Тревор Пауелл

2
Я б не назвав це дрібницею - це досить важливо. Те, що деякі ігри можуть використовувати 1-секундні кліщі, про які я не знав, або які фізики взагалі не використовують, для мене це дуже важливо (і це повинно бути будь-якому розробнику). У той же час моя відповідь до Філіппу була обумовлена ​​його невисловленим наслідком, що я просив це, тому що хотів визначитися зі своїми FPS. Це не мало б сенсу, оскільки мій двигун має багато обмежень, і я вже знаю межу FPS, яку я можу використовувати (як нижню, так і верхню межу).
Фабіо

1
Я пам'ятаю, як читав статтю про зміну Blizzard про зміну швидкості обробки сервера WoW для бойових подій від одного разу на 400 мс до "кожного разу, коли вони заходять". Однак це не пов'язано з фізикою, оскільки WoW насправді не сильно перешкоджає фізиці через свій вік. Я також не можу знайти джерело для цього.
Nzall

Відповіді:


7

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 частота кадрів залежить від процесора та потужності графіки кожного клієнта. Світова точність залежить від продуктивності мережі.)


Дійсно, це здається розумним. Я виявив навіть низькі 30 FPS, щоб зробити гідну роботу, якщо інтегратор хороший і виявлення зіткнень досить розумне. Чи знаєте ви інших ММО, які мають належну фізику та їх часові кроки?
Фабіо

2
Були прийняті як єдиний, хто наводив приклад у реальному світі, але всі вони були гарною їжею для роздумів. Спасибі, хлопці.
Фабіо

24

Я працював на декількох ігрових серверах, включаючи набір їх для MMO.

Взагалі, у них взагалі немає фізики. У кількох ситуаціях, коли фізика необхідна (стрибки, в першу чергу), ми дозволяємо клієнтам обчислювати власну фізику, і ми просто заперечуємо все, що є занадто чужим (гравці рухаються занадто швидко занадто довго, ідучи набагато вище, ніж повинні були вміти стрибати, тощо).

Сервери також зазвичай не мають "часових кроків". Вони взагалі не думають "кадрів за секунду" взагалі. Натомість ми знаємо, коли ми востаннє чули від когось і що вони тоді робили, а потім, коли ми чуємо їх знову трохи пізніше, ми чуємо про те, що вони зараз роблять, і тому ми оновлюємо свій внутрішній стан, щоб він відповідав . Не потрібно жорстко моделювати все на сервері; ми можемо просто записати те, що нам розповідають клієнти, і зробити деякі перевірки, щоб переконатися, що те, що, за словами клієнтів, трапляється, нам правдоподібно.


4
Це спрацює лише в тому випадку, якщо середовище не зробить ніякого моделювання без входу гравців, правда? Я був на насправді припускаючи , що він взагалі зробив , але , ймовірно , це не важливо для більшості ММО , як це на самому ділі не «живими». Дякую, це була несподівана відповідь.
Фабіо

2
@Fabio Більшість ММО нічого не роблять, коли немає жодного спостерігача - навіть Ultima Online, у якого раніше була реальна, жива економіка (та екологія), відпустила її до звільнення (хоча не з технічних причин). Є ігри, де речі трапляються, навіть коли ви не граєте (наприклад, Хейвен і Харт), але хитрість полягає в тому, що нічого не відбувається, поки його не спостерігають - кожен активний предмет запам'ятовує останній раз, коли його спостерігали, і підраховує, що сталося в тим часом, коли ти знову побачиш це. Тож замість значення, що оновлює кожну галочку, ви робите perTick * ticksSinceLastUpdated- просту, ефективну.
Луань

1
Не розумій мене; Сервери MMO часто матимуть періодичні завдання, які вони виконують. Перевірте наявність монстрів, які потрібно відновити, відновити нерестові вузли ресурсів, створити резервну копію ігрового стану. Можливо, навіть щось більш фантазійне, якщо у вашій грі є якась процедурна діяльність. Але це не так, як фізика, коли ти працюєш "х" разів на секунду, навіть коли нікого немає. Ви можете перевірити на нерест монстрів кілька разів на хвилину, зверху (або, швидше за все, маєте зовнішню програму, яка це робить, і просто натискає на сервер, щоб він знав, що настав час, тому сам сервер може зосередитись на обробці запитів клієнта) .
Тревор Пауелл

11

Окрім інших наведених хороших відповідей, я хочу додати той факт, що деякі фізики зазвичай не керуються сервером або навіть знають про це, і це загальна хитрість зробити світ здаватися більш багатим, не додаючи накладних витрат на мережу чи сервер бічна обробка.

Наприклад, там може бути сміття, яке ви можете бити по землі або дмухати вітром, який взаємодіє з іншими предметами, або, можливо, ви можете штовхати трупи навколо.

Якщо фізика суто декоративна і не впливає ні на рух, ні на геймплей, це може статися на стороні клієнта повністю.

Різні гравці бачитимуть речі по-різному (наприклад, якщо ви стріляєте з бантика на землю, і вона летить далеко, інші гравці можуть не бачити, що вони можуть полетіти), але є маса випадків, коли це не має значення, що досвід не є ' t те ж саме для всіх гравців, а моделювання фізики на стороні клієнта може реально покращити зовнішній вигляд онлайн-гри.


У деяких іграх, якщо це може вилетіти досить швидко, це може когось вбити. Я бачив відео з ігор Halo, де когось вбиває конус руху, що рухається на них вибухом.
Випадково832

Якщо ви хочете, щоб може вплинути на геймплей, ви можете додати його до світу синхронізованої фізики, але ви також можете мати не синхронізований світ фізики в тому ж просторі! В основному, на не синхронізований світ фізики можуть впливати гравець та синхронізований світ фізики, але він не може вплинути на них назад (:
Алан Вулф

3

EVE Online, MMO з одинарним осколком і до кількох тисяч плаунів у великих космічних битвах виконує свою фізику на 1 Гц, що називається кліщем "долі".

http://community.eveonline.com/news/dev-blogs/fixing-lag-drakes-of-destiny-part-1-1/

Так звана "Bloodbath B-R5RB" - це найбільша боротьба гравців, що коли-небудь трапляється в онлайн-грі на сьогоднішній день ("21-годинний конфлікт залучав понад 7,548 символів гравців загалом і максимум 2670 гравців у системі B-R5RB" за один раз », відповідно до https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RB ).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.