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

Если наряду со странными решениями авторы делают что-то хорошее, было бы несправедливо освещать только странное. Поэтому с удовольствием сообщаю, что в CCP занялись оптимизацией работы игрового клиента с памятью. И добились в этом вопросе явных успехов. Передаю слово разработчикам.


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

Так как крупное сражение — событие, которое не возникает просто по нашему желанию, мы создали специальный полигон для тестирования. Стресс-тест, скриншот которого вы видите ниже, был ласково назван «Куб Смерти»:

EVE Online: Оптимизация использования памяти игровым клиентом

«Куб Смерти» — это сцена, на которой расположено 1000 неподвижных кораблей. Именно его мы использовали для того, чтобы сделать замеры производительности игрового клиента до и после оптимизации.

Перейдём к числам
Есть два вида памяти, которую использует клиент EVE Online: графическая (GPU) и системная. Когда люди говорят о количестве памяти компьютера, они, как правило, имеют в виду системную память. Но важно понимать, в чём разница.

Графическая память хранит в себе текстуры, полигональную сетку и другие связанные с 3D-графикой сущности. В обычном PC с отдельной видеокартой графическая память расположена на этой самой карте. Когда вы выбираете высокие графические настройки, они используют больше графической памяти видеокарты, соответственно.

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

Сейчас мы оптимизировали использование и графической и системной памяти, но больший эффект был достигнут именно в использовании системной памяти.

В текущей версии клиента EVE Online сцена «Cube of Death» использует около 3 600 мегабайт оперативной памяти. После внесённых изменений это значение упало до 3 000 мегабайт. То есть на стороне клиента освободилось около 17% памяти.

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

Вот, собственно, этого я и жду от авторов любой MMO — оптимизации клиентской и серверной части под нужды ими же созданных игровых ситуаций. Понятно, что при нехватке ресурсов у конкретного PC, было бы круто предоставлять возможность изменения настроек, понижающих качество отрисовки. Можно и отключение графики считать такой «экстремальной настройкой», поскольку она тоже остаётся всего лишь опцией на стороне клиента. Но желательно до такого не доводить, если компьютер соответствует минимальным требованиям. Иначе в чём был смысл всей затеи с графической MMO?

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.