Чому MMORPG все ще використовують декілька серверів?


18

MMORPG, деякі MOBA, такі як League of Legends або навіть StarCraft 2, зазвичай змушують вас вибрати сервер. Зазвичай вони в США, ЄС та СЕО, в MMORPG багато на місце. Я можу бачити, що це було необхідно кілька років тому, але тепер з появою AWS та подібних пропозицій, які дозволяють вам безперешкодно масштабувати свою "потужність сервера", чому все ще існують окремі сервери?

Мій потяг думок такий (використовуючи Зоряні війни: Стара Республіка як приклад): - Ви завжди на одній планеті, ізольованому "екземплярі" від інших планет. - Якщо на одній планеті занадто багато людей, SW: TOR створює новий екземпляр світу і поміщує туди гравців. - Якщо ви залишаєте світ / перемикання екземплярів, у вас є екран завантаження

То чому гра не може створити екземпляр для цієї планети. Цей примірник (і лише цей) містить ваші поточні дані у своїй базі даних та управляє x-програвачами. Як тільки гравці x-50 опиняться в цьому екземплярі, новий сервер запуститься, і нові люди будуть нереститися в цьому екземплярі. 50 плям зарезервовано для переходу на вашу групу тощо.

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

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

Коли ви виходите з системи або сервери втрачають зв’язок, дані можуть бути перенесені в масивну базу даних, оптимізовану для зберігання даних. Потім сервери примірників можуть бути оптимізовані для високої пропускної здатності.

Чи є якась конкретна причина, що це не вийде? Чи є інші проблеми, яких я пропускаю?


А що з тим, що багатьом з цих ігор доведеться переписати середні на великі розділи своїх двигунів, щоб підтримати це? І цей час і гроші можна було б краще витратити, додавши більше вмісту.
Xavon_Wrentaile

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

Відповіді:


12

MMORPG, деякі MOBA, такі як League of Legends або навіть StarCraft 2, зазвичай змушують вас вибрати сервер. Зазвичай вони в США, ЄС та СЕО, в MMORPG багато на місце. Я можу бачити, що це було необхідно кілька років тому, але тепер з появою AWS та подібних пропозицій, які дозволяють вам безперешкодно масштабувати свою "потужність сервера", чому все ще існують окремі сервери?

AWS не настільки очевидне рішення, як здається. Це може бути дорого, в деяких випадках більше, ніж використання власних центрів обробки даних (наприклад, для видавця ціна може бути амортизована на кілька продуктів, наприклад). Крім того, може виникнути занепокоєння щодо збереження чутливих бінарних файлів та журналів на апаратному забезпеченні, що не знаходиться під контролем. Нарешті, фактична обчислювальна потужність не завжди є причиною відокремлення сукупності "сервера" в MMO.

Мій потяг думок такий (використовуючи Зоряні війни: Стара Республіка як приклад): - Ви завжди на одній планеті, ізольованому "екземплярі" від інших планет. - Якщо на одній планеті занадто багато людей, SW: TOR створює новий екземпляр світу і поміщує туди гравців. - Якщо ви залишаєте світ / перемикання екземплярів, у вас є екран завантаження

Guild Wars 2, насправді, робить щось дуже подібне до цього. Карти моделюються окремими серверними процесами, а екземпляри переповнення створюються у міру необхідності на основі обмеження кількості населення карти та деяких евристик для продуктивності карти.

У Guild Wars 2 є два основні центри обробки даних, один у США та один у Європі - між цими центрами обробки даних є перехресні чати (в першу чергу для торгових постів та торговельних систем), але загалом вони існують у цій конфігурації, тому гравці в Німеччині, Франції та ін. Не потрібно переносити більш високу затримку на ігрові сервери в США. У межах центрів обробки даних гравці сортуються у "домашні світи" (або "черепки" у просторічному вираженні); але одна з причин цього робиться - мінімізувати кількість гравців, які клієнт може бачити та потребувати доповіді про них. Аспект цієї проблеми на стороні клієнта не вирішиться шляхом масштабування більшої кількості апаратних засобів сервера. Комбінаторний вибух додаткових шляхів звітування на стороні сервера може бути,

Чи є якась конкретна причина, що це не вийде? Чи є інші проблеми, яких я пропускаю?

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


@Josh, ви б сказали, що права на розповсюдження також є важливим фактором у рішенні створити та підтримувати окремі сервери для окремих регіонів світу?
Тревор Пауелл

Я не впевнений, що ви маєте на увазі, чи говорите ви про те, щоб представити версію ЄС як іншу СКУ для цілей коригування цін (а отже, хочете і так, щоб сервер не був виразним?).

7

Переважно йдеться про затримку.

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

По-друге, такі сервіси, як AWS, не розроблені для роботи в режимі реального часу. Вони розроблені для високої пропускної здатності за рахунок трохи затримки. Якщо ваша веб-сторінка займе 250 м більше часу, ніж зазвичай, для завантаження одного разу, ніхто не піклується, але якщо на обробку повідомлення гра займає 250 мс довше, ніж зазвичай, на геймплей можуть серйозно вплинути. Ось чому MMO майже завжди розміщуються на спеціальному обладнанні.

Але також мова йде про ігровий дизайн. Якщо вам здається, що всі в одному світі, але вам доведеться розділити зону, коли вона стає занадто повною, люди засмучуються, що не можуть знайти своїх друзів у визначених місцях зустрічей. Ця проблема поширюватиметься на гільдії, масові PvP-битви тощо. Гравці використовуються для екземплярів в ці дні, але є певні області, які, як очікується, будуть спільними. Якщо у вас є повністю окремі сервери, то принаймні сюрпризів тут немає.

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


"Якщо у вас є повністю окремі сервери, то принаймні сюрпризів тут немає." Ну, тоді ти просто не можеш грати зі своїми друзями. У SW: TOR вказує, який саме лідер групи, і ви можете негайно перейти на неї. Я (особисто) вважаю, що цього достатньо. Дякую за технічну інформацію, це дійсно допомагає мені зрозуміти проблеми, які є у нас!
mmlac

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

І як було сказано в моєму коментарі до Філіппу, я не думаю, що ви могли б керувати столицями та головними містами без інстанцій.
mmlac

3

насправді я вважаю, що відповідь пов’язана не з мережею чи архітектурою, а скоріше з ігровими стосунками, як правило, в цьому типі ігор є події, і ці події приурочені відповідно до найзручніших часових кадрів для людей, які грають на сервері, і це, як правило, пов'язані з часовим поясом, де люди живуть, отже, ЄС та США тощо.

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

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


Добре, щонайменше, у SW: TOR є лише вплив на поточний екземпляр, на якому ви перебуваєте. Що означає, що, наприклад, світові боси, яких ви вбиваєте в одному з випадків, все одно будуть неушкоджені / породжені в екземплярі 2. Отже, розлука вже існує. Я бачу причину для різних серверів з боку живлення, але під поясом вони також можуть масштабуватись так, щоб у вас не було штучних обмежень кількості населення. Час не повинен турбувати, адже місцеві заходи відвідують місцеві жителі. Якщо у вас в Інтернеті, чому вам не дозволять приєднатися? Він просто не підходить для вашого часового поясу.
mmlac

Я грав у Lineage2 на американському сервері, перебуваючи в часовому поясі ЄС (до того, як вони створили сервери ЄС), і можу вам сказати, що це сука! Мені довелося прокинутися о 3 ранку, якщо я хотів брати участь у рейдах та облогах замку, тому що тоді це все відбулося. Тож час, безумовно, хвилює.

Ну так, час викликає занепокоєння, коли у вас лише один сервер у неправильному часовому поясі. З моєї ідеї, у вас є люди в усьому світі. Якщо ви хочете взяти участь у тому рейді о 3 ранку, продовжуйте! Прямо зараз ви є SOL і вам доведеться чекати, поки "рейди" вашого сервера не завершаться - що може бути у кожного Saturady о 22:00 - там, де у вас немає часу. Тож вирушайте на рейди ЄС о 15:00. Чи має це сенс?
mmlac

2

Що не так з автоматичним інстанцією? Коли місце розташування стає занадто населеним, ви просто ставите 1000 гравців у 10 різних примірників.

Проблема в тому, що онлайн-ігри стосуються спільноти. Уявіть, що ви домовились про зустріч з людьми, яких ви зустрічали раніше, і коли ви в даний момент всі там, ви не бачите один одного, тому що ви всі в різних випадках? Це дратує, і це порушує занурення.

Як це можна запобігти? Це можна зробити, поставивши кожного гравця в один і той же екземпляр постійно, так що коли ви зустрінетесь з іншим гравцем один раз, ви можете бути впевнені, що зустрінете цього гравця знову, коли ви обидва в одному місці. Ви ніколи не зустрінете тих гравців, які призначені в інші інстанції.

Але що робити, коли ти хочеш зустріти когось поза грою? Як друг із реального життя, якого ти запросив пограти з вами у гру? Щоб дозволити це статися, вам знадобиться можливість вибрати примірник під час створення вашого персонажа. Як зі списку екземплярів, які легко запам'ятовують імена. На жаль, ім'я "екземпляр" здається заплутаним для пересічного користувача. Вони не звикли до цього слова. Чи не було б краще використовувати термін, до якого вони звикли? Такий термін, як ... Сервер ?


1
Не плутайте термін екземпляр і сервер. Примірники дозволяють перемикатися між собою. Сервери зазвичай атомні. Не входити і виходити. До зустрічі з людьми: покладіть всіх на один примірник, і у ваших столицях буде 20 000 людей. В той самий час. Це не буде ні працювати, ні бажано, тому вам все одно потрібно створювати екземпляри. Моя думка думок полягала в тому, щоб ці випадки були глобальними, а не обмежувались сервером.
mmlac

Але я думаю, що справа в тому, що ти, як правило, хочеш, щоб люди мали передбачуваний досвід у свідомо спільних районах. Ви повинні розділити їх з міркувань продуктивності, але вони повинні бути спільними з «усіма», тому в ідеалі ви маєте фіксований розділ (наприклад, сервер), а не змінний (наприклад, екземпляр). Дуже мало ММО, про які я знаю, буде застосовувати цей тип області, тому що це вважається важливим з причин спільноти та групування, що всі можуть бачити всіх там.
Килотан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.