GameDev

Оптимизация: ТОП-8 способов повысить производительность игры

Способы повысить производительность игры

ТОП-8

Способы повысить производительность игры ТОП-8

В эпоху чрезвычайно мощных компьютеров, когда «под капотом» обычного домашнего ПК десятки ядер и видеокарта, способная трассировать лучи в реальном времени, многие разработчики забывают про оптимизацию. Зачем тратить время, ведь у геймера наверняка продвинутое устройство, и разницы, скорее всего, он даже не заметит? 

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

Способ 1. Удаление лишних объектов

Способ 1. Удаление лишних объектов

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

На практике в игровом процессе всегда можно найти, что удалить. Например, это могут быть:

  • осколки;
  • гильзы;
  • следы выстрелов на стенах;
  • поверженные враги;
  • пройденные препятствия, если говорить про различные раннеры и многое другое.

Если оставить все как есть, то спустя несколько минут геймплея, по мере заполнения оперативной памяти, игра начнет заметно зависать и в итоге просто вылетит с уведомлением «Close programs to prevent information loss».

Что именно удалять — зависит от особенностей каждого отдельного проекта. Например, в шутере Half-Life от гильз можно смело избавляться — там они играют только декоративную роль, а вот в детективных играх, связанных с расследованиями они могут играть ключевую роль.

Однако бывают случаи, когда решить эту проблему «легальными» способами практически невозможно, например в играх с возможностью перемотки времени, где память должна хранить всю информацию за период, куда персонаж может переместиться в прошлое. Здесь есть несколько решений: сократить доступный период перемещения во времени, минимизировать количество объектов, ну или пойти на «грязные» приемы, как поступили создатели игры Super Time Force.

Оптимизация: ТОП-8 способов повысить производительность игры

Способ 2. Отключение отображения объектов

Способ 2. Отключение отображения объектов

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

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

Например, если выключить отображение объекта в момент его падения, когда игрок отворачивается — он никогда не упадет, пока персонаж на него снова не посмотрит.

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

Оптимизация: ТОП-8 способов повысить производительность игры

Способ 3. Снижение детализации

Даже в реальной жизни человеку сложно рассмотреть что-либо на отдаленном объекте, например царапину на доме, стоящем за горизонтом. Поэтому тратить драгоценные ресурсы видеокарты и процессора на такую высокую детализацию тоже не имеет смысла.

С технической точки зрения здесь есть несколько подходов:

  • уменьшение числа полигонов;
  • снижения разрешения текстур;
  • отключение шейдеров и прочее.

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

Способ 4. Расстановка приоритетов качества

Продолжая тему декораций можно добавить, что не все объекты на экране геймера должны быть одинаково высокого качества. К примеру, главный герой может быть проработан максимально, а вот второстепенные вещи, такие как трава, ограждения и прочее — можно сделать более низкого расширения.

Оптимизация: ТОП-8 способов повысить производительность игры

Способ 5. Оптимизация ассетов

В играх всегда стоит отдавать приоритет использованию ассетов, которые занимают меньше всего места: сжатые текстуры, low-poly объекты и так далее.

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

Способ 6. Экономичная работа с тенями, светом и отражениями

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

Если говорить про тени, то лучше постараться сократить количество объектов с динамичными тенями.

Оптимизация: ТОП-8 способов повысить производительность игры

Способ 7. Кэширование

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

Способ 8. Распределение нагрузки

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

Что еще нужно знать при оптимизации игры

Что еще нужно знать при оптимизации игры

Оптимизация игры возможна только до каких-то разумных пределов. То есть, портировать Elden Ring в компьютер с оперативной памятью 2 Гб — у вас просто физически не получится. 

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

Свежие работы

Создаем космические проекты

Свежие работы

Лучшим подтверждением нашей квалификации и профессионализма являются истории успеха наших клиентов и различия в их бизнесе до и после сотрудничества с нами.

Наши клиенты

Что о нас говорят

Наши клиенты Что о нас говорят

Успешные проекты создаются только командой

Наша команда

Успешные проекты
создаются только командой Наша команда

Photo 11
Photo 10
Photo 9
Photo 8
Photo 7
Photo 6
Photo 5
Photo 4
Photo 3
Photo 2
Photo 1
Photo 12

Свяжитесь с экспертами

Появились вопросы?

Свяжитесь с экспертами Появились вопросы?

+
@
Согласие на обработку персональных данных

Пользователь, оформляя заявку на сайте https://avada-media.ua/ (далее – Сайт), соглашается с условиями настоящего Согласия на обработку персональных данных (далее — Согласие) в соответствии с Законом Украины «Про захист персональних даних». Принятием (акцептом) оферты Согласия является отправка заявки с Сайта или заказ у Оператора по телефонам Сайта.

Пользователь дает свое согласие на обработку своих персональных данных со следующими условиями:

  1. Данное Согласие дается на обработку персональных данных как без, так и с использованием средств автоматизации.
  2. Согласие распространяется на следующую информацию: ФИО, телефон, электронная почта.
  3. Согласие на обработку персональных данных дается в целях предоставления Пользователю ответа на заявку, дальнейшего заключения и выполнения обязательств по договорам, осуществления клиентской поддержки, информирования об услугах, которые, по мнению Оператора, могут представлять интерес для Пользователя, проведения опросов и маркетинговых исследований.
  4. Пользователь, предоставляет Оператору право осуществлять следующие действия (операции) с персональными данными: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), использование, обезличивание, блокирование, удаление и уничтожение, передача третьим лицам, с согласия субъекта персональных данных и соблюдением мер, обеспечивающих защиту персональных данных от несанкционированного доступа.
  5. Персональные данные обрабатываются Оператором до завершения всех необходимых процедур. Также обработка может быть прекращена по запросу Пользователя на электронную почту: info@avada-media.com.ua
  6. Пользователь подтверждает, что, давая Согласие, он действует свободно, своей волей и в своем интересе.
  7. Настоящее Согласие действует бессрочно до момента прекращения обработки персональных данных по причинам, указанным в п.5 данного документа.
Присоединяйся к нам

Отправить резюме

+
@

Свяжитесь с нами любым удобным для Вас способом:

+ 38 (097) 036 29 32