Новая технология меняет EVE Online кардинальным образом. Представлена платформа Quasar

Разработчики подготовили большой техноблог про улучшение серверной архитектуры игры

16373
21

В прошлом месяце команда CCP Games совершила прорыв в основах работы серверов MMORPG EVE Online, который ознаменует начало новой эпохи. Студии удалось внедрить современные технологии, позволяющие не только снизить нагрузку, но и открыть огромные возможности для улучшения вселенной Нового Эдема.

Последний раз сетевой уровень кардинально изменялся в 2011 году, когда компания CCP представила реализацию IOCP под названием CarbonIO, которая в конечном итоге стала основой печально известного замедления времени. Позже разработчики приступили к созданию чернового варианта Project Sanguine для решения проблем среды CarbonIO. Каждая оптимизация в EVE Online сводится к тщательному согласованию с Python Global Interpreter Lock (GIL). Просто Python может делать только одну вещь за раз. Принятие EVE Stackless Python, реализация IOCP через StacklessIO, затем CarbonIO и совместное проектирование с учетом замедления времени - все это поддерживает невероятную иллюзию о том, что Новый Эдем живой. Но что, если бы GIL не приходилось использовать для каждой возникающей идеи? Как можно извлечь выгоду из стремительного роста числа ядер в отрасли по сравнению с тактовой частотой отдельных процессоров?

В этом отношении было проведено множество экспериментов, имеющих непосредственное отношение к Project Sanguine, наиболее публичным из которых является EVE: Aether Wars. Цель заключалась не в том, чтобы коренным образом изменить модель коммуникации в EVE Online, а вместо этого изменить симуляционную модель. Project Sanguine же сконцентрировался на решении скучных элементов, которые представляют собой набор функций EVE. Симуляция почти 9 000 игроков в одном пространстве могла бы быть быстрее, если бы Новый Эдем не занимался обслуживанием огромного количества других вещей. Таким образом, Project Sanguine преследовал две цели: обойти GIL и создать условия для новых возможностей.

Первая форма Project Sanguine появилась с ESI и презентацией EVE Portal в конце 2016 года. Благодаря этим проектам в серверной архитектуре EVE Online была создана новая парадигма - сервисная шина. С ее помощью заново были обнаружены слабые места GIL, но с более четкой картиной, включая маршрутизацию сообщений, сериализацию и передачу данных. Если один корабль запускает один лазер среди 1000 кораблей, это 1000 сообщений, которые необходимо немедленно отправить по всему миру. Симуляция должна адресовать это сообщение 1000 адресатам как копию (маршрутизация сообщений), преобразовать эти данные в проводной формат (сериализация), а затем отправить их (передача). В большинстве случаев CarbonIO решает каждую из этих проблем, но в рамках полномочий GIL. CarbonIO уже довольно долгое время хорошо обслуживает EVE Online, но с 2011 года многое изменилось в бурных морях интернета.

Увидев эволюцию шаблонов в этой новой экосистеме стало ясно, что для использования парадигмы необходим более стандартизованный протокол. Благодаря интеграции удаленного вызова процедур (gRPC) разработчики смогли объединить возможности маршрутизации сообщений сервисной шины с мгновенной сериализацией буферов протокола (стандарт сообщений gRPC). По-прежнему необходимо планировать данные с помощью GIL для передачи, но теперь они буферизуются на более высоком уровне в отдельном потоке. Это означает, что вся передача, сериализация и маршрутизация сообщений происходят вне GIL, за исключением копии памяти, которая должна происходить между ними. Быстрее этого быть не может.

Новая технология меняет EVE Online кардинальным образом. Представлена платформа Quasar

Теперь Новый Эдем может обрабатывать значительно больше данных. Когда началось создание ESI, CCP Games приступили к внедрению большего количества облачных технологий, таких как Kubernetes. По мере того, как стала очевидной потребность в простых примитивах синхронизации для обработки этой информации, был сделан большой шаг в сторону языка Go. Со временем эти технологии накапливались в отдельную экосистему и началась работа по созданию функций, позволяющих использовать преимущества новой способности работать с Новым Эдемом в соответствии с современными стандартами. Многие из них уже доступны игрокам.

Новая технология меняет EVE Online кардинальным образом. Представлена платформа Quasar
Новая технология меняет EVE Online кардинальным образом. Представлена платформа Quasar

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

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

Новая технология меняет EVE Online кардинальным образом. Представлена платформа Quasar

Почему так важен обход Tranquility и базы данных? Чтобы понять это, необходимо поговорить о неудачах. Часть пути привела к появлению множества новых техник и инструментов, с помощью которых можно увидеть Новый Эдем. Одна из концепций - распределенная трассировка с использованием новой любимой игрушки: Honeycomb.io. Вооружившись всеми новыми инструментами стало ясно, что именно происходит с планами навыков, когда они были запущены на основном сервере:

Новая технология меняет EVE Online кардинальным образом. Представлена платформа Quasar

Несмотря на существование множества возможностей для улучшения в целом с производительностью все было в порядке:

Новая технология меняет EVE Online кардинальным образом. Представлена платформа Quasar

Но уже на следующее утро ситуация начала выходить из под контроля:

Новая технология меняет EVE Online кардинальным образом. Представлена платформа Quasar

Да, это 500 тысяч миллисекунд или 8 минут 20 секунд, чтобы отправить сообщение. Tranquility продолжал работать и большинство игроков не пострадали. Это потому, что разработчики не взаимодействуют с Tranquility в традиционном смысле этого слова. Больше нет CarbonIO для традиционных прокси, которые затем отправляются на серверный узел, а затем в базу данных. Вместо этого Tranquility сосредотачивается на том, что более важно, а клиент EVE обменивается данными через gRPC с новой экосистемой, где сервис планирования навыков живет со своей собственной базой данных.

Новая технология меняет EVE Online кардинальным образом. Представлена платформа Quasar

Одна из самых сильных сторон новой экосистемы - отсутствие простоев. Чтобы спасти механику планирования навыков, не нужно перезагружать сервер. Также нету необходимости выпускать патч для сервера или клиента игры. Таким образом Project Sanguine эволюционировал в новую технологическую платформу под названием EVE: Quasar. Не зря разработчики называли текущий квадрант Gateway, поскольку он предвещает прямое использование шлюзов gRPC.

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

Другие публикации по теме
Состоялся анонс дополнения Equinox для EVE Online
Состоялся анонс дополнения Equinox для EVE Online
Анонсировано следующее расширение EVE Online, Equinox, в котором появятся новые структуры консорциума “Апвелл”, включая футуристический космический лифт, новые ресурсы и многое другое
Сегодня в 13:00
459
0
Форум
Разработчики EVE Online обновили лаунчер игры, заменив старый на совершенно новый.
Разработчики EVE Online обновили лаунчер игры, заменив старый на совершенно новый.
Команда EVE Online выпустила лаунчер, который позволяет игрокам выбирать персонажа прямо в нем, а это значит, что теперь можно попасть в Новый Эдем быстрее, чем раньше
9 февраля в 16:00
4995
13
Форум
 EVE Online станет настольной игрой — нужную для EVE: War for New Eden сумму собрали за час
EVE Online станет настольной игрой — нужную для EVE: War for New Eden сумму собрали за час
Судя по всему, существует огромный спрос на настольную игру EVE Online, учитывая, насколько быстро была профинансирована ее кампания на Kickstarter.
27 января в 12:01
4098
5
Форум
Пользователи:
Steam:
88/100
Оценка редакции: