Gamedev
Artyom Kaleev
2905

«Что-то обязательно пойдёт не так»: как авторы Dauntless справились со сложностями кроссплея в первый день релиза Материал редакции

И почему превентивный перенос серверов в облако — это полезно.

В закладки
Аудио

Даже сейчас лишь немногие игры поддерживают кроссплей — возможность играть с пользователями других платформ. В одних случаях это не получается реализовать из-за архитектуры, в других — из-за ограничений и политики платформодержателей.

Разработчики мультиплеерной RPG Dauntless же ещё до релиза объявили, что кроссплей будет доступен в первый же день — между PS4, Xbox One и ПК. Во время стрима на GDC Twitch они рассказали, с какими сложностями им пришлось столкнуться: за неделю игра привлекла более 2,5 миллионов человек, что стало настоящим стресс-тестом.

По словам главы маркетинга Phoenix Labs Ника Клиффорда, как только студия получила первый «вертикальный срез» игры, её онлайн-составляющую сразу же перенесли в облако — чтобы не запускать сервера каждый раз с локального сервера в офисе.

Полезно это было в том числе потому, что так разработчики могли продолжать играть в неё и дома — рабочий билд получили накануне Рождества, и на протяжении всех новогодних праздников авторы могли не ездить на работу.

Инвентарь, квесты, прогрессия, разные охоты на Бегемотов (чудовищ в мире Dauntless — DTF) — всё это обрабатывалось на серверах в облаке. Так что мы могли оперативно устранять все ошибки, даже не находясь в офисе.

Ник Клиффорд
глава маркетинга Phoenix Labs

Для функционирования онлайн-компонентов разработчики использовали комбинацию разных облачных сервисов — вроде Google или Amazon. Также на серверы перенесли обработку матчмейкинга, чтобы избежать проблем P2P. Благодаря тому, что все сетевые функции оказались «снаружи» ещё на ранних этапах производства, создателям удалось правильно выстроить онлайн-инфраструктуру игры.

Главный недостаток [собственных] дата-центров заключается в том, что все в итоге приходят к тебе. Мы же хотели сделать так, чтобы игра сама «приходила» к игрокам. У нас есть сервера в Северной Америке, Южной Америке, Западной и Восточной Европе, Австралии — все они правильно разбросаны по миру, так что вне зависимости от того, где вы находитесь, подключение всегда будет хорошее.

Ник Клиффорд
глава маркетинга Phoenix Labs

Чтобы предугадать возможные ошибки, перед релизом разработчики проводили стресс-тесты облака — с помощью наплыва ботов на сервера. Создатели воссоздавали самые разные ситуации: например, что будет, если скрипт для матчмейкинга одновременно запустят миллион игроков.

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

Настоящее тестирование начнётся, когда реальные игроки начнут в твоей игре реально себя вести — и только в этот момент ты поймёшь, в самом ли деле платформа с этим всем справляется.

Ник Клиффорд
глава маркетинга Phoenix Labs

При этом зачастую проблемы случались не мгновенно, а незаметно копились со временем.

Довольно часто мы имели дело с такими ошибками, которые ты не увидишь сразу — сервера не падают мгновенно. И чтобы распутать такое, порой требовались дни и недели.

Ник Клиффорд
глава маркетинга Phoenix Labs

В офисе Phoenix Labs авторы устроили специальную «штаб-квартиру» для быстрого реагирования — Клиффорд даже сравнил её с командным центром из сериала «24».

У нас было огромное количество мониторов, где отслеживалось «здоровье» игры — и как только мы видели хоть какой-нибудь намёк на то, что что-то идёт не так, инженеры схватывали проблему и чинили её как можно быстрее.

Ник Клиффорд
глава маркетинга Phoenix Labs

Как отметил ведущий геймдизайнер студии Хантер Хоу, даже такая простая вещь, как создание списка друзей, в рамках кроссплея оборачивается большими сложностями. Задача реализовать возможность добавлять кого-то в друзья переходит во множество вопросов: как работает система друзей в PSN? Как она будет интегрирована в твой список? А что насчёт остальных платформ, каждая из которых работает по-своему?

У всех компаний есть очень строгие инструкции [по интеграции в сервисы], которые они требуют от нас исполнять — чтобы поддерживать качество их платформ. Но порой они конфликтуют между собой, у них разная архитектура — поэтому множеству людей приходится тратить кучу времени, чтобы понять, как собрать все эти куски воедино.

Даже интерфейс приходится адаптировать отдельно для каждой из платформ. Например, вы не можете отобразить этот значок, потому что он противоречит другим, но можете этот. Команда, которая занималась кроссплеем — настоящие герои.

Хантер Хоу
ведущий геймдизайнер Phoenix Labs

По словам Клиффорда, чтобы кроссплей на релизе работал более-менее гладко, в студии начали готовиться к этому моменту заранее — почти за полгода. Были команды инженеров «быстрого реагирования» отдельно для кроссплея и отдельно — для каждой из платформ.

Аккуратное планирование, коллаборация — подобные слова это своего рода клише. Но мы потратили огромное количество времени, чтобы подготовиться к одному лишь релизу.

Ник Клиффорд
глава маркетинга Phoenix Labs

Разработчики понимали, что проблемы обязательно случатся — поэтому пытались не просто предугадать их, но ещё и понять заранее, как от них избавиться.

Никогда не планируйте всё так, чтобы ничего плохого не случилось. Потому что просто обязательно что-то пойдёт не так. В первую очередь вам нужно думать: «Как мы будем реагировать, когда это произойдёт?» — потому что оно 100% произойдёт.

И если какой-то модуль упал, и куча людей не может загрузиться с главного меню, как мы можем с этим справиться? Будем ли мы готовы? Как мы сможем увидеть, что происходит, и оперативно заменить модуль? [...]

Сделать всё правильно у вас попросту не получится. Вы не можете предсказать всё, что случится, это невозможно.

Хантер Хоу
ведущий геймдизайнер Phoenix Labs
{ "author_name": "Artyom Kaleev", "author_type": "editor", "tags": ["\u043e\u043f\u044b\u0442","dauntless"], "comments": 30, "likes": 32, "favorites": 42, "is_advertisement": false, "subsite_label": "gamedev", "id": 58643, "is_wide": true, "is_ugc": false, "date": "Tue, 16 Jul 2019 16:41:18 +0300", "is_special": false }
0
{ "id": 58643, "author_id": 17412, "diff_limit": 1000, "urls": {"diff":"\/comments\/58643\/get","add":"\/comments\/58643\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/58643"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "last_count_and_date": null }
30 комментариев
Популярные
По порядку
Написать комментарий...
1

И никаких историй

Ответить
0

Оно вообще стоит смотреть или очередная бесплатная дрлчильня?

Ответить
3

Играл год назад. Мувсеты боссов показались гораздо интереснее, чем в последнем МонХане. Почти не нужно собирать разный мусор на карте, но погриндить боссов для хай-лвл прогресса наверное придется. Попробуйте; не понравится — разрешаю отомстить минусом.

Ответить
1

В ней отсутствует практически всё, за что люди любят МонХан.
Кроме почти бездумной рубки монстров прямо на месте и прокачки эквипа выполнением "ачивок" здесь НИЧЕГО нет, а сами монстры не ощущаются настоящими зверьми, а тупо ВИДЕОИГРОВОЙ БОСС.
Ну и слишком уж она жадная как по мне, а визуал просто отвратный, даже хуже чем в Fortnite.
Это не то, что с МонХаном сравнивать нельзя, с его клонами постыдишься сравнивать.

Ответить
1

Ясно, продолжаю ждать охоты где можно забираться на огромных монстров, аки Dragon's Dogma

Ответить
0

В ней отсутствует практически всё, за что люди любят МонХан.

Кота не завезли?
Для меня в этой игре нет всего того, что бесило в монхане-дурацких хитбоксов,собирания тонн бесполезного мусора, уебищного нечеловеческого интерфейса, отвратного управления на клавомыши, наглухо отбитого матчмейкинга, бесконечных прогрузок между локациями, бесполезных диалогов у торговцев.

Кроме почти бездумной рубки монстров прямо на месте и прокачки эквипа

Ты говоришь так, как будто в монхане помимо этого есть еще что-то

Ответить
1

Как раз таки то, что вас так "бесило" в монхане фанаты и любят (про хитбокс проблемы впервые слышу вообще кстати хз о чём вы): actual hunting, gathering, tracking, learning your prey, все дела, игра ДЕЙСТВИТЕЛЬНО ощущалась всегда как фентезийный, но симулятор охоты, хоть и топорный до World. А ведь ещё помимо этого рыбалка, арены с челленжами, дичайшие эвенты и много ещё чего.
Не понимаю что такого в интерфейсе, он очень даже удобен, по крайней мере в World жу точно.
В MHW матчмейкинга так-то нет и он там нахуй не сдался, о чём вы вообще?
НУ про упавление не знаю, консольной игре консольное управление и это уже не проблема игры, а порта.
КАКИЕ ВООБЩЕ ПРОГРУЗКИ О ЧЁМ ВООБЩЕ ВСЁ АБСОЛЮТНО ПЛАВНО.
А их монологи между прочим неплохо погружают в мир и дают побольше узнать о мире, да и куда торопится, игра всё равно неторопливая.

Ответить
0

про хитбокс проблемы впервые

Скорее он про те моменты когда тебя задевает пикселем, это действительно обидно )
Не понимаю что такого в интерфейсе, он очень даже удобен

Нуууу, его можно было бы улучшить добавив систему вкладок чтобы ускорить лазанье по менюшкам и беготнёй туды-сюды. Меня лично устраивает всё ) но можно было лучше.
В MHW матчмейкинга так-то нет

Месье ошибся со словом, бывает )
про упавление

Вроде на ПК можно менять кнопки не? Или я больной на голову и мне отшибло память за полгода которые я не играл в МХВ?
Монологи

Очень мне блят интересно в сотый раз услышать от кузнеца что-то "интересное".
игра всё равно неторопливая

Ааа... *вставляю видео*

Ответить
0

Даже Bazelgeuse та ещё неторопливая чешучатая курица на самом деле, просто летает много.

Ответить
1

Даже кирин не такая мразина как эта скотина.
Стоишь себе нормально, бьёшь фем.Диабло и тут НА НАХ, А ЧО ЕТА ВЫ ТУТА ДЕЛОЕТЕ? НИПАРЯДАГ!
Ты в расход, диаблос в расход, палико только стреляет по бомбардировщику, а ему хоть бы хны. Вокруг мгла, и битлжусы на деревьях..

Ответить
0

кирин

мразина

ну тут кроме как git gud или ешо чо не скажешь, мы с кониной уже много лет как друзья :^ )

Ответить
1

Кот был бы клёвым дополнением к этому клону )
Собирание чисто опциональное вроде как )
Вот насчёт интерфейса я бы хотел поспорить, типа, не знаю, мне оно кажется вполне удобным, немного нагруженное да, но всё в общем то под рукой.
Управление на клавомыши тоже вполне удобное, к тому же можно же поменять клавиши. А что за матчмейкинг простите?

Ты говоришь так, как будто в монхане помимо этого есть еще что-то

Таки да, таки в МХВ есть красивые пейзажи, таки в МХВ можно побегать поизучать местность и она вполне интересная, местность то эта )
Рыбалка, ловля зверей, соревнование на арене. В общем, заняться есть чем )
По крайней мере я лично провёл в МХВ 400 часов и мне вполне всё понравилось )

Ответить
0

Собирание чисто опциональное вроде как

А хилки и бафы ты из воздуха собрался брать?
полне удобным, но всё в общем то под рукой.

Инвентарь только через сундук, одеваешь шмот в одной вкладке, вставляешь камни в другой вкладке, пояс настраиваешь в третьей, сумку менеджишь в 4ой и тд. Не говоря уже про функциональных нпс, разбросанных по разным местам города, с прогрузкой и необходимостью выслушать несколько бесполезных реплик.
А что за матчмейкинг

Сбор группы, реализованный через коды или крайне не удобный интерфейс.
Надеялся что на пк это изменят, но хрен там плавал. Так же как и с прицеливанием луком, там чтобы целиться специальными атаками нужно пианистом быть на клавомыши
Рыбалка, ловля зверей, соревнование на арене.

Почти бесполезные занятия. Аренка та же самая рубка монстров на месте.

У меня что на пк что на пс4 по 230+ часов отыграно, и я уже ненавижу ее за эти моменты

Ответить
0

А хилки и бафы ты из воздуха собрался брать?

То-есть, другими словами это уже не мусор. Но опять же, даже хилки и бафы опциональны )
и необходимостью выслушать несколько бесполезных реплик.

С этим я могу согласится, а вот с тем что до, не знаю по мне так вполне удобно, хотя конечно было бы неплохо добавить просто переключатель менеджмента вместо того чтобы выходить с одного меню и тыкать в другое, ноо для меня это просто экономия времени.
Сбор группы, реализованный через коды или крайне не удобный интерфейс.

Ааа, ну с этим не знаю, опять же, не сталкивался с проблемами особо, код комнаты и норм..
Почти бесполезные занятия

Ну я загриндил себе точильные плавники+ и норм теперь :D
Зверьки ради очков )

Ну, я тебя понял в принципе, да, можно было бы сделать лучше, но лично для меня видимо это всё не настолько ужасно :D

Ответить
0

Очень интересно. Такая плохая игра, что ты бедный в неё на двух платформах по 230+ часов отыграл и ненавидишь её...

Ответить
0

Геймплейно и в плане развития персонажа, в плане дизайна монстров и красоты локаций мне она очень нравится.
Но это ее делали азиаты, у них по жизни с ui и ux беда.
Я не представляю сколько времени занимала беготня с прогрузками по нпс, и скипанье диалогов, бесконечное переключение по вкладкам, когда это можно было сделать все одной кнопкой.
А какой кайф мотать расходники во время боя(при чем от туда нельзя никаким образом убрать ненужные вещи, например сетку ловли мелких животных).

Ответить
0

Я тебе подскажу, там есть очень удобное круговое меню, куда можно забиндить всё необходимое чтобы не листать. На счёт меню там и правда не удобно.

Ответить
0

лайтовый монстер хантер вроде как, пве сессионка

Ответить
3

Бля, хочу evolve 2, крутая была, а не эти вот мультяшные

Ответить
0

На пс4 слим все очень плохо и бедно

Ответить
1

Плохо в плане графики и бедно в плане игроков?)

Ответить
0

Игроки вроде есть, но скажем так, бюджет у разработчиков был не очень большой, по ощущениям. Все какое то простенькое и кривенькое. Что интерфейс, что графика, что боёвка, что дизайн.

Ответить
0

Каждый раз забавно когда в псн огромный постер какой-то индидрочильни, типа новинка, всем бегом играть. Каждый раз листаю псн и каждый раз там гавно в перемешку с ААА, вот у майков оно как-то не так, особенно когда нарезку инди показывали, прям вот всё захотелось посмотреть, от 8битной дрисни до "игры-это-искусство"

Ответить
0

Я про статью,лол. Игру не играл.

Ответить
0

Тем временем в офисах фэйлсру сидят и ковыряются в носу, когда очередной "модуль игры" отваливается и перестает работать. На все запросы - "соберите данные и мы отправим их разработчикам. починят когда починят"

Ответить
0

а как еще быть если они не разработчики у оперируемого проекта?

Ответить
0

Проблема в том, что они ошибки и баги игры за ошибки и баги не принимают. 3-4 года народ пишет о графических багах, в виде огромных гор и огромных домов - не починили. 5 лет вылеты происходят - не починили (хотя люди и на евро и на корее играют и говорят ,что вылетает только ру клиент). Когда-то они обновили свой античит и ВСЕ игры мыла перестали запускаться и выдавать сообщение "Сиcтеме Windows не удается проверить цифровую подпись этого фаила....". Около месяца это продолжалось и знаешь, что они ответили? Они посоветовали отключить обязательную проверку подписи драйверов через перезагрузку через шифт. В то время это был косяк именно с их античитом и именно они могли и должны были его чинить. Но решение проблемы "пришло" только через месяц, при чем совершенно тихо и спокойно, без всяких объявлений, мол "народ, мы тут починили свой косяк".

И вот сейчас, в том же архейдже они запустили платный ивент (да, вот до чего мы докатились - уже ивенты платные), в котором говорят квесты не засчитываются (аки ивент поломан и не работают). Вот уже сейчас они больше месяца после обновы не чинят один из багов с прокачкой снаряжения и даже не упоминают о нем в известных багах. Сейчас они и вовсе отключили прокачку снаряжения. У них в игре появились зоны 0-1 фпс, когда ты после телепорта или просто пробегая какую-то точку просто варишься минуту в слайдшоу из скриншотов игры с 0-1 фпс. И они об этом не говорят, что "мы знаем о проблеме".

Так что вот где одни сразу берут и решают проблему, пока она еще не развилась - другие сидят и ждут, что "само пройдёт". К сожалению, один из лучших проектов в ру-регионе скоро загнется, ибо мыло, как известно, любой проект убивает. А еще у них на подходе 3 проекта. И уже на встрече с фанами одного из них продюсер проекта так облажался в диалоге, что просто стыд позорный (можешь поискать на ютубе канал Иной и там поискать по мыло и Lost ark).

Ответить
1

Лучше съешь жука

Ответить
0

Статья, конечно, так себе. Что-то в последнее время эти доклады расстраивают.
'Ну, используйте облако, будьте готовы к проблемам. Никогда нельзя угадать поведение живых игроков. А ещё сложно подогнать игры под кроссплей'. И никакой конкретики, тьфу

Ответить
0

например, что будет, если скрипт для матчмейкинга одновременно запустят миллион игроков.

вот это непонятно, как будто у каждого игрока свой матчмейкинг. Может в переводе ошибка. Так-то без разницы сколько игроков участвует в матчмейкинге (с разницей, конечно), для этого не надо запускать какой-то скрипт каждому из них

Ответить

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovz", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "chvjx", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "chfbl", "p2": "gnwc" } } } ]