Оптимизация использования оперативной памяти | EVE Online

Оптимизация использования оперативной памяти

2020-11-13 - EVE Development Team

Добрый день, капсулёры!

В Новом Эдеме снова война, и снова сражения бьют все мировые рекорды по числу участников. В одной из систем одновременно сразилось 6557 пилотов, а всего в битве участвовало 8825 игроков.

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

Бои в EVE Online необычайно динамичны и непредсказуемы. Ваш игровой клиент не «знает», какие корабли сейчас появятся в системе, и загружает ресурсы по мере их появления. Для каждого игрока нужно загрузить большой объём данных, включая модель корабля, текстуры, звуки, виды оружия, анимацию и графические эффекты. Неудивительно, что с таким количеством кораблей, окрасок, типов оружия и боеприпасов клиенту EVE требуется много памяти.

В рамках работы по улучшению игры мы продолжаем оптимизировать производительность клиента. Это повысит производительность в целом и особенно в ситуациях, упомянутых выше: когда клиент загружает много разных ресурсов в сражениях многочисленных флотов.

Для устранения проблем с доступностью таких боёв были созданы специальные стресс-тесты. Этот стресс-тест был ласково назван «Кубом смерти» (Cube of Death):

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

А теперь о цифрах!

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

Видеопамять используется для хранения текстур сцены, полигональных сеток и других графических данных. Обычно на настольных ПК видеопамять находится непосредственно на выделенной видеокарте. Когда вы выбираете улучшенные настройки графики в игре, она использует больше видеопамяти.

Системная память отведена под хранение всех остальных данных игры: интерпретатора Python, пользовательского интерфейса, звуков, сетевых настроек, данных ввода для клавиатуры и мыши, а также файлов локализации.

Улучшения повлияют на работу обоих типов памяти, но в первую очередь освободят системную.

В текущей версии клиента EVE сцена «Куб смерти» использует примерно 3600 Мбайт системной памяти. После изменений объём упал приблизительно до 3000 Мбайт, то есть примерно на 17%.

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

В заключение

Постоянные вложения в новые технологии и процессы — появление 64-битного клиента, улучшение отчётов о сбоях, а теперь и уменьшение нагрузки на оперативную память — помогают EVE шагать в ногу со временем все годы её существования. Многое уже было сделано, но мы продолжаем искать новые возможности и создавать проекты по улучшению игры.

Бои с участием многочисленных флотов и масштабные войны Нового Эдема имеют особую важность в EVE. Последние изменения — это один из этапов улучшения игрового опыта и производительности для всех игроков, которые пишут историю EVE и создают её будущее.