сообщение от CCP Tanis | 2010.02.10 21:39:29 |
Ух ты, на выходе это превратилось в большой блог, но он наполнен множеством полезной информации, которая, надеюсь, ответит на множество вопросов и проблем людей, учавствовавших в массовом тесте, и покажет, как мы подходим к крупномасштабной деятельности и будущее тестирования в EVE.
Что в нашем арсенале борьбы с лагом?
С ростом EVE, с добавлением новых возможностей, с увеличившимся количеством пилотов, играющих сейчас, со все более усложняющейся системой, мы видим, что наша задача по отсеиванию источников лагов становится все более сложной. На всем протяжении развития EVE мы использовали различные методы идентификации и устранения источников лага, например: мониторинг производительности сервера, специальные целевые группы поиска и уничтожения лагов, отслеживание форумов и петиций, публичный тест сервер и постоянные проверки всего нового кода. Это все конечно хорошо, но этого недостаточно. С годами, с приходом новых дополнений и всеми новшествами и изменениями, которые приходили с ними, стало понятно, что у нас проблема: у нас нет приемлемого способа имитировать высокую нагрузку, как в боях флотилий, фракционных войнах, Жите и т. д. Это особенно тяжелая ситуация для нас. При любой высокой нагрузке, когда производится множество различных действий, происходящих одновременно, на огромном количестве различных конфигураций компьютеров пользователей, всплывают многие мелкие проблемы. Но, на практике, все эти проблемы проявляются очень непредсказуемо и почти случайно.
Например Жита. Подумайте, как много там народа; теперь представьте все эти различнейшие рыночные операции, бои, переписку в чатах, производство и все остальное, что происходит в этой системе одновременно - и вы поймете, что чтобы протестировать эту ситуацию недостаточно просто загрузить 1000 клиентов. Нам нужно выполнить множество различных транзакций, на таком количестве конфигураций компьютеров, на каком только возможно, чтобы наконец с уверенностью сказать, что, да, мы действительно провели тест с высокой нагрузкой.
Больше года назад мы задались этим вопросом и начали изучать различные варианты. Мы перебрали все, от специально настроенных загружаемых тестирующих клиентов (ботов), приема на работу большего количества тестеров, тесты с поддержкой комьюнити, до запуска специальных тест-сайтов и скриптов, и всего прочего. После нескольких разработок и испытаний, свихнувших наши мозги, мы, наконец, пришли к тесту с пользователями и тех. поддержкой (короче масс-тест), огромному апгрейду тест-сервера и изменениям, клиента для проверки загрузки (все еще на ранней стадии разработки), специального кода отладки и регистрацией такого количества данных, которое вы только можете себе представить.
Масс-тест
Краеугольным камнем нашего подхода стала инициатива, называемая Масс-тест. Проще говоря, мы поняли, что лучшим способом симулировать сотни игроков, совершающих множество действий одновременно, будет - собрать реальных игроков вместе и попросить разыграть соответствующий сценарий. Это очень важно, потому что только так мы сможем точно оценить, как новый код ведет себя в таких экстремальных условиях, как бой флотов с несколькими сотнями пилотов. Все обусловлено различными факторами, которые становятся очевидными при высокой нагрузке, такими как увеличивающийся отклик и код масштабирования.
По сути, Масс-тест - основа, которая позволит нам, привлекая сотни, или даже тысячи игроков на тестовый сервер, работать над различными вещами. Это даст нам отличное место, гды мы сможем представить новые функции или изменения людям, и не только увидеть, насколько хорошо все работает, но и получить критические замечания от игроков, которые потратили свое время для проверки всего этого на тест-сервере. Проводя эти мероприятия регулярно, мы получим возможность эмпирически отслеживать изменения клиента, сервера и сетевого кода с течением времени. Это все приведет нас к четкому пониманию того, что мы имеем сейчас, как к этому пришли, и на чем нам сосредоточить свои усилия в будущем.
Можем ли мы сделать это иначе, например проверить вживую на Транквилити?
К сожалению, в тестировании все не так просто, как может показаться. Даже в довольно простых программах, количество возможных комбинаций входящих, необработанных данных, операций и оборудования, на котором все выполняется, быстро увеличивается до того момента, когда на проверку "всего" может уйти несколько человеческих жизней. Ну а то, что Ева постоянно обновляется и изменяется, не облегчает решение данной проблемы. Мы желаем выделить для Евы приоритетные зоны, требующие повышенного внимания, основываясь на истории развития, сложностях системы или изменениях, которые к этому привели; зоны риска кластера/игры, поддержку пользователей и множество других факторов.
Когда идет речь о тестировании Евы, мы всегда должны держать в голове мысль: "Как это повлияет на игру, кластер и игроков?" Конечно, мы можем проверить все прямо на Транквилити, добавить отладки кода, присутствовать на каждом бое и т. д., но транквилити для игроков, а не для тестов. Добавление кодов отладки убьет производительность сервера и сделает боевой лаг гораздо хуже. Присутствие тестеров в одной противоборствующей стороне во время боя, приведет к крикам "Любимчики!" или "DEVH4x". Ничего такого нам бы не хотелось. Мы в ОТК чувствуем, очень сильно чувствуем, что всего, что может отрицательно сказаться на производительности сервера и получению удовольствия от Евы, следует избегать, как чумы.
Какая реально польза будет от этого всего Еве?
Мы уже привлекали пилотов по этой программе в этом году и это, безусловно, сделало свое дело, помогая нам выявить определенные проблемы с производительностью сервера, клиента, сохранением базы данных, а также с нашим сетевым кодом. Эта программа предоставила нам прямую связь между ССР и игроками Евы, чтобы понять как изменения влияют на вас, дала возможность получить от вас несколько конструктивных отзывов о новых изменениях и поменять их в дополнениях. Эта обратная связь помогает разработчикам подобрать и настроить их изменения, и убедиться, что вы даете качественные замечания. Некоторые примеры изменений, которые произошли в результате ваших отзывов:
--- Настройки овервью, такие как возможность легко включать/выключать все брэкеты
--- Усовершенствование Флит файндера (Поиск флота)
--- Устранение некоторых лагов во фракционных войнах
--- Чистка кода ПОСов
--- Исправления в EVE Voice
В дополнение, с помощью обратной связи, мы выявили и убили несколько проблем, прежде чем они повлияли на Транквилити. Например:
--- Утечки памяти со стороны сервера
--- Запуск DB procs
--- Неустойчивость FPS клиента
--- Утечки памяти со стороны клиента
--- Сервисы, вызываемые слишком часто (убивают производительность сервера и клиента)
Я - Гудвин, Великий и Ужасный!
Подобно тому, как это было с Элли и великим Гудвином, самым прискорбным в Масс-тестах является то, что большая часть того, что делается, делается за кулисами, и многие получают неверное впечатление о том, что на самом деле происходит. Но в отличие от Волшебника Изумрудного города мы проделываем больше работы за сценой. У нас есть сотрудники, которые следят за нашим программным обеспечением, обеспечением качества, эксплуатации, есть департамент Игрового Дизайна, плюс наши дорогие Охотники за Багами, все они работают вместе над сбором данных и с обратной связью, анализируют информацию и исправляют ошибки. Вот только часть их работы:
--- Изменения БД
Мы собираем все изменения нашей Базы Данных. Эта информация потом скажет нам какие сделки осуществлялись, какие процедуры вызывались, как часто и сколько времени заняло их выполнение. Кроме того, мы следим за нагрузкой БД, ее здоровьем и производительностью.
--- Слежение за состоянием сервера
Мы собираем подробную информацию об изменениях производительности серверов, особенно подробные данные о загрузке ЦП и использовании памяти отдельными слоями процессорного кода. Кроме того собирается информация о каждой части кода игры, во время его работы, как хорошо происходит взаимодействие, где узкие места и можно ли их устранить.
--- Слежение за состоянием клиента
Еще мы сохраняем изменения, которые происходят с клиентом разработчиков во время тестов, собираются данные об использовании ЦП и памяти, а также такие вещи как значение FPS, время отклика, десинхронизации и т. п. Эти данные позволяют определить куски кода клиента, которые необходимо поправить или рационализировать в целях повышения производительности клиента.
--- Слежение за состоянием сетевого кода
В такой игре как EVE, где используется один сервер с многими тысячами пользователей, сетевым трафиком, пропускной способностью, маршрутизацией и распределением нагрузки - это очень важно. Вот почему мы также собираем полную сетевую информацию о подключенных пользователях и храним данные о том, как хорошо распределение нагрузки справляется с новыми расширениями.
Все эти данные собираются и хранятся от одного теста к следующему, чтобы мы могли сравнить, проанализировать и найти изменение производительности, что, в свою очередь, позволит нам определить области, где мы должны потратить больше времени на чистку и сделать работу EVE такой гладкой, насколько это возможно.
Растем потихоньку
В прошлом году эта программа была в зачаточном состоянии и мы гордились своим малышом, но пришло время ему встать на ноги и начать ходить самостоятельно. Нам нужно чтобы эта программа росла, улучшалась и приносила больше пользы для EVE в целом. Таким образом, мы вступаем в следующий этап программы Масс-теста, где мы будем совершенствоваться по всем направлениям, особенно в планировании, улучшении поддержки, и, позже, в отчетности и информативности.
Призываются все альянсы!
В прошлом у нас были проблемы с получением достаточного количества игроков для наших тестов и мы решаем этот вопрос напрямую. В идеале, на тесте должно присутствовать от 400 до 1500 пилотов, но исторически, мы видели только около 100-200 пилотов на испытании.В попытке улучшить явку, мы сделаем три вещи:
--- Во-первых, мы постараемся перенести эти тесты на выходные дни, чтобы избежать пересечений с учебой/ работой/ реальной жизнью.
--- Во-вторых, мы будем следить за почтовой рассылкой "Mass Testing Info", на которую может подписаться каждый, и который мы будем использовать для информирования вас о датах начала тестов.
--- Наконец, мы призываем всех лидеров альянсов привлечь своих пилотов на тест-сервер для участия в этих мероприятиях. Надеемся, что работая с лидерами альянсов, мы получим больше пилотов для участия в тестах, чем имеем сейчас.
Как это работает?
Перед каждым тестом, мы будем отписываться на форуме и освещать детали, открыто приглашая участвовать все альянсы с числом пилотов превышающим 150 человек, также через почтовую рассылку "Mass Testing Info" в игровой почте будут отправляться письма к лидерам всех альянсов с числом пилотов более 500 человек. Лидер альянса может зарегистрироваться и указать, явку какого примерно количества пилотов он сможет обеспечить; мы будем принимать первые 1800 пилотов, кто первым отписался - тот первым участвует. Если мы не соберем достаточно зарегистрировавшихся пилотов - тест будет отменяться.
Важные предостережения
--- Игроки, не состоящие в альянсах, также могут участвовать. Вам нужно явиться в нужное время и следовать инструкциям.
--- Мы будем принимать все альянсы, пока не достигнем числа пилотов в 1800 человек.
--- Не регистрируйтесь, если вы не уверены, что сможете присоединиться!
Первый из нового поколения
Вы, парни, говорили, что вам нужны тесты проводимые в нужное вам время, и мы вас послушали! Эти тесты действительно требуют так много пилотов, сколько только можно получить, но проведение этих мероприятий в выходные или поздно вечером, на регулярной основе, не так легко координировать, как вы можете подумать. Даже у игровых разработчиков и тестеров есть реальная жизнь, семьи и друзья, с которыми они любят проводить время. Но мы не боимся изменений, мы итак работали сверхурочно, а теперь, и в дальнейшем мы будем проводить тестовые мероприятия в выходные дни, во время близкое к часу пик. Также будут исключения из этого правила, когда будут возникать критические проблемы, которые потребуют отдельного тестирования, но мы все же надеемся, что этот новый график сделает возможность вашего участия в этих событиях намного проще.
Первое мероприятие из новой серии состоится в субботу, 20 февраля, в 20:00 по Гринвичу.
Этот тест вернет нас к стандартному сценарию "бой флотов и осада ПОСа", с некоторыми хитростями и изменениями, которые вы сможете прочитать в официальном объявлении об испытании на форуме General Discussion в ближайшие дни. Мы опубликуем все детали и цели теста там.Информативность и прозрачность
Одним из наших упущений после предыдущих тестов, было отсутствие докладов и информации, предоставленных вам, игроки EVE. Чтобы исправиться, мы начнем публикацию результатов каждого испытания. Со временем, мы добавим к этому отчеты, и, возможно, даже сделаем под-сайт на eveonline.com для размещения всех результатов этих тестов, так что любой сможет просматривать результаты как недавних, так и давно минувших тестов.
И я закругляюсь...
Тестирование в EVE - это постоянно развивающийся процесс, который мы стремимся постоянно совершенствовать. Одним из важнейших критериев качества, по крайней мере для нас, заключается в том, насколько хороший игровой опыт мы предоставляем игрокам EVE. И хотя это, наверное, трудно определить количественно, но даже горькие пилюли от вас, полученные по обратной связи, помогут сделать EVE лучше.
В заключении, я рад предложить всем вам делиться с нами данными о качестве и производительности EVE. Расскажите нам, настройка какой области EVE, по вашему мнению, принесет наибольшую пользу, какие новые вещи мы могли бы добавить, чтобы позволить вам лучше контролировать ваш игровой опыт, какие наши изменения и добавления помогли вам и т. д.
Масс-тест - это непрерывный процесс, и он тесно связан с сообществом EVE, так давайте использовать это вместе как еще один способ улучшить EVE.
P.S.: Слегка подредактировал, для удобства чтения
Сообщение отредактировал Stepan25: 12 February 2010 - 9:47

Вход
Регистрация

Тема закрыта

Наверх





