Выкладываю у себя на блоге интереснейшую статью Артура Хачатурова, руководителя отдела по локализации и запуску Aion в России, опубликованную в Сообществе русских игроков Aion в ЖЖ.
Вчера был запущен этап закрытого бета-тестирования (ЗБТ) игры, на которое было приглашено в сумме около 30 тысяч участников.
Запуску ЗБТ предшествовало 9 месяцев кропотливой работы большого количества людей, что заслуживает отдельной заметки, которую я рассчитываю написать при первом же удобном случае. Сегодняшний пост я хочу посвятить первым суткам, прошедшим с момента открытия доступа участникам ЗБТ, что произошло 12 октября 2009 года ровно в 20-00 по московскому времени.
В воскресение альфа-тестирование, к которому было привлечено 300 участников, выявило критическую проблему лагов в игре (до этого дня все было нормально). Это поставило под угрозу начало ЗБТ. Иными словами, если бы нам не удалось найти способ устранить эту неприятность, ЗБТ было бы отложено. Проанализировав ситуацию, наши инженеры нашли и устранили причины лагов уже в первой половине понедельника. Все дело оказалась в настройках сетевого оборудования, закупленного специально для Aion – сказался фактор его новизны. Ведь на текущий момент в мире существует всего несколько аналогов задействованного у нас “железа”. Да и теми пользуются лишь компаниями уровня Google и Yandex. Особо любознательным мы планиуем рассказать о технических деталях проекта в будущем ;).
Другая проблема, которая была выявлена при альфа-тестировании, и которую мы очень хотели исправить до запуска ЗБТ – нестабильная работа стороннего модуля защиты, известного в народе под названием GameGuard. В данном случае было принято радикальное решение о полном его отключении. Решить эту задачу в полном объеме на текущий момент нам пока не удалось: здесь мы зависим от наших корейских партнеров, которые должны подготовить для нас новую версию клиента Aion в ближайшее время. Тем не менее, несмотря на то, что GameGuard запускается при старте игры, программа не осуществляет никаких проверок. Это определенно снизило количество конфликтов у игроков, хоть и не решило проблему в полном объеме.
Довольно неприятно на ситуации сказываются глобальные проблемы Рунета в общем и российских операторов связи в частности. В связи с “войной”, которую ведут некоторые отечественные провайдеры, пользователи фактически оказались заложниками ситуации. Связь с серверами “Корбины” и “Стрима” оставляет желать лучшего, поскольку наши серверы обслуживаются “противоположной” стороной. Мы ищем пути решения данной проблемы; в данный момент готовится процедура, которая позволит подключать практически любые локальные сети России к нашему каналу фактически напрямую. Причем делать мы это сможем довольно быстро и, что немаловажно, бесплатно. В понедельник мы успели подключить несколько пиров через “Совинтел”.
Итак, примерно к 18 часам стало понятно, что ключевые проблемы решены, и запуск ЗБТ мы можем не откладывать. Вновь утвердив время запуска на 20 часов, мы дружно перепроверили еще разок все, с чем тестерам предстояло столкнуться: скачали клиент, установили, вошли в игру, создали персонажа и т.д. Убедившись, что все нормально, за 15 минут до старта вся команда собралась в комнате у инженеров, которую мы в шутку назвали “центром запуска ЗБТ”. В 19-55 главный инженер проекта нажал на “волшебную кнопку”, запустив скрипт активации аккаунтов пользователей. Выполнение скрипта заняло примерно 5 минут.
После этого главный инженер открыл панель управления сервера авторизации. Все взоры были прикованы к полю количества игроков, находящихся онлайн. И циферка начала расти! Убедившись что все нормально и увидев первых пользователей в стартовой локации (думаю, многие из вас заметили персонажей с расправленными крыльями на стороне Элийцев? 😉 ), мы всей толпой спустились на второй этаж, где у нас расположены большие мониторы. На них мы вывели текущий “онлайн” и продолжили наблюдение за тем, как он растет. Примерно через 15 минут в игре уже было около 400 человек, и я решил, что запуск состоялся. Причем состоялся успешно. Ну а это дело, как вы понимаете, стоило отметить.
Пока я ходил за заблаговременно приобретенными бутылками шампанского, онлайн вырос до 500. Стало даже немного страшновато, потому что я ожидал онлайн порядка 2-3 тысячи пользователей сразу после запуска. А тут всего 500 через 20 минут после открытия. Хотя стоило учесть, что время начала ЗБТ не было озвучено заранее, и новость о запуске появилась постфактум.
Разлили шампанское по бокалам. Произнесли тост за запуск и будущее проекта и продолжили наблюдение. В это время мне позвонил партнер из NCSoft (к слову, у них в это время было уже пол второго ночи). Я рассказал о запуске, о цифрах. Пока мы говорили онлайн дорос до 800. Народ стал потихоньку расходиться. Инженеры, Данила Стрелков, Борис Radiant и я отправились в “центр управления запуском”. На другом конце Skype с нами осталась служба тех. поддержки (они находятся в другом офисе).
Все шло гладко ровно до нашего возвращения в “центр”. В этот момент произошло необъяснимое. Наш уникальный игровой сервер, возомнив себя еще и самым умным, самостоятельно и без какого-либо подтверждения с нашей стороны принял решение о “кике” всех пользователей и перезапуске. До сих пор мы не выяснили, в чем причина. Случившееся не смогли объяснить ни наши инженеры, ни специалисты NCSoft. Сам я склонен считать, что в момент закрытия окон на “больших” мониторах мы дали команду завершения работы сервера. Другого логического объяснения найти не удается. К тому же сведений об аналогичном происшествии в Европе, Корее и Китае у нас тоже нет.
Видя, что не все так гладко, как хотелось бы, Борис Radiant принимает решение об открытии страницы live статуса сервера в “Контакте”. Изначально было установлено ограничение онлайна в 3000 пользователей. Данное значение предполагалось увеличить впоследствии по результатам первых дней игры, а также тестирования производительности сервера. Увидев, что количество желающих поиграть будет явно больше, а также проанализировав загрузку сервера при 1 тысяче тестеров онлайн, принимаем радикальное решение увеличить допустимый лимит до 5000. Борис публикует первую запись в live-статусе:
20:00 Серверы запущены
20:45 Кратковременная перезагрузка серверов, связанная с тонкими настройками и увеличением количества игроков на серверах.
На перегрузку игровых серверов в среднем уходит 15-30 минут. За это время анализируем обратную связь от пользователей. Обращаем внимание на проблему, которая фигурирует в сообщениях достаточно часто: многие не могут обновить клиент, т.к. ланчер не может скачать и установить файл CrySystem.dll. Борис готовит временное решение в виде файла на rapidshare и короткой инструкции. Следующие записи в статус-журнале:
21:00 Серверы запущены максимальный онлайн на серверах теперь повышен до 5000 человек.
21:20 Всем у кого возникает проблема со скачиванием файла crysystem.dll необходимо скачать файлик http://www.rapidshare.ru/1207667 и поместить его в папку Игра//bin32 предварительно удалив старый файлик. После у вас возникнет проблема с файлом DC1-path.dat который можно скачать тут http://www.rapidshare.ru/1208021
За 15-20 минут на сервере уже около 2000 игроков! Начинают поступать первые сообщения о лагах в игре. В начале мы относимся к ним с осторожностью: возможно проблема локальная. Данила качает своего перса, и тут начинает лагать уже и его. Запахло жаренным. Лаги все жестче. Вал сообщений от ребят из службы поддержки. Коллеги из NC Soft тоже на нашем сервере и испытывают те же проблемы.
21:25 Обнаружена проблема с высокими пингами в игре. Наши технические специалисты совместно с инженерами компании NCsoft анализируют возможные причины возникновения этих проблем, а так же пытаются их устранить.
Первая идея о возможной причине поступает из NC Soft – на сервере установлено лишь 3 параллельных канала. Практически все 2000 игроков находятся на стартовой локации, концентрация пользователей очень высокая. Потому предполагаем, что проблема в этом. Принимаем решение увеличить количество каналов до 7. Осуществляем необходимые настройки конфигурации серверного софта. Служба поддержки уведомляет всех игроков о планирующейся перегрузке серверов. Перегружаем.
21:30 Возможно причина возникновения проблем найдена – скорее всего это недостаточно количество игровых каналов. В течении 20 минут сервера в очередной раз будут перезагружены для увеличения игровых каналов до 7шт.
21:50 Серверы перезагружаются.
На перегрузку уходит около 15 минут.
22:05 Серверы запущены, количество каналов на серверах увеличено до 7.
Стартанули. Пока все нормально. За 15 минут онлайн уже 2000. Не помогло! Лаги! Наши инженеры анализируют возможную причину проблемы. И обнаруживают ее – не хватает ширины канала под игровой трафик. Он забит на 100%. Принимаем решение: увеличиваем канал игрового трафика в 5 раз, жертвуя каналом скачки клиента. Вроде бы становится полегче…
22:45 Дополнительное изменение настроек игрового сервера постепенно стабилизирует ситуацию. Мы продолжаем корректировку настроек сервера, потому как сервера еще не полностью стабильны и проблема имеет место быть.
Начинает поступать информация о неработающих NPC. Сами находим этому подтверждение в игре. Тех. поддержку заваливают информацией в общем чате. Думаем. Предполагаем, что проблема возникла в момент нехватки канала и для ее решения необходимо осуществить перегрузку игрового сервера. Техподдержка уведомляет 2500 тестеров. Сервера перегружаются.
23:00 Найдены проблемы в работе NPC сервера, ведутся работы по устранению неполадок.
23:05 В течении 20 минут сервера в очередной раз будут перезагружены, для применения новых дополнительных настроек.
23:40 Серверы перезагружаются
23:45 Серверы запущены
Уже через 10 минут – онлайн 2500. Проблема повторяется 1 в 1.
23:55 Применение очередных настроек не дало желаемых результатов, мы продолжаем пытаться найти причины возникновения проблем.
Думаем. Через некоторое время обращаем внимание на то, что ситуация стабилизируется сама по себе. Предполагаем: проблема была в том, что пользователи были сосредоточены на одной локации в ограниченном пространстве. Пользователи “рассосались”, и проблема вместе с ними :). Играем…
00:35 Ситуация постепенно стабилизируется. В ближайшее дни мы будем продолжать пытаться выяснить причины возникновения проблем.
Играем, думаем, курим, опять играем часов до 3 ночи. Корейцы, соответственно, до 8 утра. Расходимся…
Утром в 9-00 меня будит Данила: NPC опять “умерли”. А так хотелось выспаться! Выезжаем в офис. Собираемся в офисе примерно в 10-15. Звоним в NC – еще спят, обещают быть в течение 15 минут на месте. Анализируем серверное ПО. Понимаем, что все серьезно:
09:10 Рестарт серверов не проводится намеренно. В настоящий момент мы пытаемся выяснить причины нестабильности NPC сервера.
10:30 Серверы перезагружены
15 минут все нормально. Онлайн 2000. Пошли лаги. Еще 5 минут. 2500. Лагает! Умерли NPC.
Думаем, идей нет :(. Думаем еще. Анализируем логи, загрузку серверов. Все в норме! Загрузка процессора не превышает нескольких процентов. Из 24 гигабайт памяти занято 5. Нагрузки на жесткий диск нет. Сеть в норме. Тут обращаем внимание на сообщения о проблеме коммуникаций между сервером, отвечающим за NPC, и главным сервером. Принимаем решение перегрузить сервера и посмотреть внимательнее что будет происходить.
12:10 В течении 20 минут сервера в очередной раз будут перезагружены, для применения новых дополнительных настроек.
12:40 В данный момент идет процесс переконфигурации серверов – это займет некоторое время, после чего сервера вновь будут запущены. Для проверки стабильности работы NPC сервера. В случае наличия проблемы сервер будет перезагружен еще раз.
12:55 Сервер запущен, ведется проверка стабильности работы сервера.
15 минут. 2000. Лаги. 2500. Лаги. Умерли NPC. Заказываем пиццу. На обед сходить видимо не получится…
13:25 В результате сбоя работы NPC сервера опять появились лаги. Сервер нестабилен, в ближайшее время сервера будут перезагружаться вновь, возможно неоднократно.
2000-лаги-2500-NPC.Пицца приехала.
Обращаем внимание на интересную деталь. Постепенно лаги рассасываются, а NPC оживают. Держим в курсе происходящего корейских партнеров. Ждем от них поддержки. Не получаем ее в нужном объеме :(.
13:50 Идет поиск причин нестабильности сервера в режиме полноценной нагрузки на сервер.
14:05 Сервера работают стабильно. Ведутся работы по тонкой настройке серверов.
14:20 NPC сервер снова нестабилен. В ближайшее время сервера будет перезагружены для применения новых настроек.
Попутно Борис организует сбор информации от тестировщиков
15:10 Уважаемые участники тестирования, примите участие в обсуждении http://vkontakte.ru/topic-10772150_21582839
Сервера запущены. Ситуация повторяется. Через некоторое время лаги проходят, NPC оживают. Ситуация не устраивает нас в принципе. Для нас критически важно понять корень проблемы и решить ее. Принимаем решение об очередной перегрузке с целью детального анализа проблемы в процессе ее возникновения.
16:55 Несмотря на стабильную работу сервера, он будет перезагружен в рамках очередной модификации настроек.
Все повторяется.
17:30 Сервера запущены, ситуация с лагами не нормализована, ожидаем стабилизации сервера.
17:50 Сервер стабилизирован.
С этого момента сервер ведет себя стабильно. Задерживаемся в офисе до 22-00. Онлайн: 5050! Очереди, как выяснилось, не работают :). Принимаем решение разойтись: утро вечера мудренее.
Подводя итог первого дня:
Во-первых, хочу выразить благодарность всем участникам и болельщикам ЗБТ. Ваша помощь оказалась неоценимой. В первый же день ЗБТ была выявлена серьезная проблема, связанная с высокой нагрузкой на сервера. Ее мы не выявили самостоятельно в рамках закрытого тестирования, ни в рамках альфа тестирования.
Во-вторых, мне лично жаль, что запуск ЗБТ не прошел гладко. До запуска мы самонадеянно считали, что подготовились очень хорошо. Тем не менее, рассчитываю на скорейшее решение всех проблем. Очень хочется отплатить всем тестерам за участие возможностью поиграть в свое удовольствие.
Коротко перечислю важнейшие проблемы, которые предстоит решить в кратчайшие сроки, а также расскажу о самых важных планах на ближайшее будущее:
- Решение проблемы с лагами и NPC. Рестарт серверов не должен вызывать получасовое лагание и недееспособность NPC;
- Решение проблем с GameGuard путем его полного удаления из клиента;
- У многих проявляется проблема с ланчером. Большая часть проблем должна была быть решена сегодня. Завтра мы проанализируем, уменьшилось ли количество сообщений;
- Сразу после стабилизации сервера будет запущен форум ЗБТ и система сбора багов ЗБТ.
Приятное:
- Завершена озвучка всех катсцен! В данный момент идет выверка на соответствие субтитров голосу и наложение эффектов на звуковые файлы. После тщательного тестирования уже в рамках ЗБТ у вас будет возможность насладиться Aion с русской озвучкой;
- На стадии завершения находится работа над видео-туториалами внутри игры. Вы сможете оценить их в самое ближайшее время;
- В ближайшее время будут озвучены и смонтированы видео-прологи.
Мне статья понравилась, очень актуальна. тем более что мне (да и не только), суть кратких записей live-статуса серверов, размещаемых Борисом Радиантом была не очень понятна, а очень хотелось знать по подробнее, что же они там “мутят”. очень радует, что наконец доделали русскую озвучку, хотя для полноты картины конено же не мешали б видео-туториалы. Вчера вечером они справились со всеми лагами – играть было просто приятно, но сегодня что то опять не задалось – пришел с универа, думал чуток поиграю, а хер там, пинги ужасные….
Напоминаю, что постоянно обновляемый статус серверов посмотреть можно тут.
P.S. Надеюсь что скоро будет готова моя собственная статья, где я расскажу про русский Aion со своей точки зрения.
[…] как она решалась можете найти в моем первом посте “По ту сторону Aion: Сутки первые“. ( Да, эта проблема напрягала некоторое время, […]