Сражение при Asakai: как EVE Online справляется с гигантскими битвами

в 12:43, , рубрики: EVE Online, game development, Блог компании «Apps4All», игры, кластер, Серверная оптимизация

Битва у Asakai стала второй по количеству столкнувшихся кораблей в истории EVE Online (об этом прекрасно написал комрад madmaxcorp, там же вы можете посмотреть без преувеличения галактической красоты видео очевидца). История сражения интересна сама по себе (человеческая ошибка), но нас традиционно больше интересует что же было с серверами игры во время этой сумасшедшей битвы, как CCP (создатель EVE Online) удается справляться с такими нагрузками?

«Наша команда поддержки (игровые мастера, GMs) следит за гигантскими битвами, подобными этим», — говорит один из разработчиков. «У нас есть веб-страница со статусом кластера, на которой появляются большие красные цифры в случае перегрузки нод в сражениях. Так что довольно легко видеть что происходит». Более интересно то, что стоит за этими цифрами.

Сражение при Asakai: как EVE Online справляется с гигантскими битвами

Доступные варианты

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

Трудно заметить, но иногда админы изменяют само игровое пространство. «Мы перемещаем другие солнечные системы с ноды, на которой идет сражение. Это временно отключает всех, кто находится в этих системах, но избавляет их от симптомов, присущих перегруженному серверу». – объясняет разработчик. «Это немного помогает системе, в которой идет сражение, особенно если флоты подкрепления проходят через переносимые системы. Это было сделано и в случае прошедшего сражения, но такое случается редко».

Есть и более значительное оружие для поддержки работоспособности серверов под экстремальной нагрузкой, но они уже компромиссные. «У нас есть пара машин с самым лучшим железом, лучше среднего в кластере».

«Эти машины вступают в действие, когда игрокам это нужно. К сожалению, тут происходит та же вещь, что была описана выше – все, находящиеся в системе, при переносе отключаются. Из-за этого в основном мы такой ход никогда не применяем», — продолжает он. «В таком случае сражение просто развалится, так как Титан выйдет на случайную позицию. Если бы мы пошли этим путем и перенесли систему, Титан и его друзья просто не вернулись бы обратно, прервав сражение. Так что да, мы этого не сделали».

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

Замедление времени

Это уже давно знакомая ветеранам EVE Online функция, но любопытный способ борьбы с высокой нагрузкой и лагами в ситуации, когда игра должна работать. В тот момент, когда нагрузка на сервер достигает критической точки, игра автоматически замедляет время на определенную величину для борьбы с перегрузкой. Время в битве на 3000 игроков запущено на 10% от реального, что составляет максимально возможное замедление. Вот видео, которое демонстрирует замедление времени на практике.

«Это очень изящный способ справиться с лагами в ситуации, когда сервера других игр просто плавятся», — пишет автор. «На самом деле время в системе замедляется для того, что бы запросы к серверу и его ответы реализовывались и реализовывались правильно. В этом случае люди, вступающие в игру, получают постепенно замедляющееся до предельного уровня в 10% время — на самом деле мир медленный, но вполне работоспособный с точки зрения геймплея и тактики».

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

«Для клана HoneyBadgers потери составили 6 Дредноутов, 11 Авианосцев и один Суперавианосец. Для Clusters все обернулось хуже — 4 Дредноута, 29 Авианосцев, 5 Суперавианосцев и три Титана», — пишет PC Gamer. Битву при Asakai называют полным разгромом.

Ориентировочно потери составили 700 миллиардов в игровой валюте или 24 000 долларов. И именно поэтому так важно, чтобы такие сражения проходили на стабильных серверах. К счастью, CCP была готова к такому событию. И EVE Online продолжает оставаться увлекательной игрой.

Автор: DaryaZ

Источник

Поделиться