Способи підвищити продуктивність гри ТОП-8
В епоху надзвичайно потужних комп’ютерів, коли під капотом звичайного домашнього ПК десятки ядер і відеокарта, здатна трасувати промені в реальному часі, багато розробників забувають про оптимізацію. Навіщо витрачати час, адже у геймера, напевно, просунутий пристрій, і різниці, швидше за все, він навіть не помітить?
Однак на практиці такий підхід може стати причиною того, що на слабких, а іноді навіть на потужних комп’ютерах гри починають гальмувати та вилітати. Щоб цього не допустити, розглянемо 8 основних способів підвищення продуктивності.
Спосіб 1. Видалення зайвих об'єктів
Проблема великої кількості об’єктів в іграх існуватиме доти, доки у нас не з’явиться оперативна пам’ять із нескінченним обсягом. Тобто, ще дуже довго. Тому з цієї точки зору оптимізація є просто обов’язковою.
Насправді в ігровому процесі можна знайти, що видалити. Наприклад, це можуть бути:
Якщо залишити все як є, то через кілька хвилин геймплею, у міру заповнення оперативної пам’яті, гра почне помітно зависати і в результаті просто вилетить з повідомленням «Close programs to prevent information loss».
Що саме видаляти залежить від особливостей кожного окремого проєкту. Наприклад, у шутері Half-Life від гільз можна сміливо позбавлятися — там вони грають лише декоративну роль, а ось у детективних іграх, пов’язаних із розслідуваннями, вони можуть відігравати ключову роль.
Однак трапляються випадки, коли вирішити цю проблему «легальними» способами практично неможливо, наприклад в іграх з можливістю перемотування часу, де пам’ять має зберігати всю інформацію за період, куди персонаж може переміститися в минуле. Тут є кілька рішень: скоротити доступний період переміщення в часі, мінімізувати кількість об’єктів, чи піти на «брудні» прийоми, як зробили творці гри Super Time Force.
Спосіб 2. Вимкнення відображення об'єктів
Цей спосіб найчастіше використовується в іграх із відкритим світом. Він передбачає відключення відображення статичних об’єктів ігрового всесвіту, які не можуть бути видалені.
Тут розробники мають два шляхи: відключити тільки рендеринг або об’єкт повністю. У другому випадку буде знижено навантаження не тільки на відеокарту, а й на процесор, оскільки йому не потрібно витрачати ресурси на перевірку колізії та фізики. До речі про фізику, при відключенні об’єктів з нею потрібно бути дуже обережним, щоб уникнути непередбачених ефектів.
Наприклад, якщо вимкнути відображення об’єкта в момент його падіння, коли гравець відвертається, він ніколи не впаде, поки персонаж на нього знову не подивиться.
Однак цей же ефект можна використовувати і в своїх цілях. Хороший практичний приклад у цьому випадку реалізований у грі The Witcher 3: в одній з локацій є статуї, які переміщуються в просторі, поки на них ніхто не дивиться.
Навіть у реальному житті людині складно розглянути щось на віддаленому об’єкті, наприклад подряпину на будинку, що стоїть за обрієм. Тому витрачати дорогоцінні ресурси відеокарти та процесора на таку високу деталізацію теж не має сенсу.
З технічного погляду тут є кілька підходів:
Якщо подивитися на старіші ігри, то можна помітити, що розташовані далеко об’єкти в них взагалі зникають, а на їхньому місці з’являються лише текстури.
Продовжуючи тему декорацій, можна додати, що не всі об’єкти на екрані геймера повинні бути однаково високої якості. Наприклад, головний герой може бути опрацьований максимально, а ось другорядні речі, такі як трава, огорожі та інше, можна зробити нижчого розширення.
В іграх завжди варто віддавати пріоритет використанню ассетів, які займають найменше місця: стислі текстури, low-poly об’єкти тощо. Часто кожен ассет можна додатково оптимізувати, щоб він привабливо виглядав в ігровому просторі, проте для цього може знадобитися допомога досвідченого 3D-художника.
Світло і відображення роблять гру візуально приємнішою і виразнішою, проте їх відмальовування споживає чимало ресурсів. Тут ми можемо порекомендувати створювати мінімальну кількість джерел світла і віддавати перевагу поверхням, що відбивають.
Якщо говорити про тіні, то краще постаратися скоротити кількість об’єктів із динамічними тінями.
При багаторазовому використанні в грі одних і тих же значень краще їх зберегти в кеш, щоб скриптам не доводилося витрачати ресурси пристрою на однакові розрахунки. Те саме стосується і графічної складової: якщо ваш спрайт малюється за допомогою коду – збережіть його у файл або пам’ять, а потім просто виймайте у разі потреби.
Сучасні процесори можуть бути оснащені безліччю ядер, але чи задіяні вони в процесі гри — залежить тільки від розробника. Це означає, що якщо у вашому проєкті є обчислення, які здійснюються незалежно від движка, то вони мають виконуватися паралельно. Як це реалізувати з технічної точки зору залежить від технології, яку ви використовуєте.
Що ще потрібно знати під час оптимізації гри
Оптимізація гри можлива лише до якихось розумних меж. Тобто, портувати Elden Ring в комп’ютер з оперативною пам’яттю 2 Гб – просто фізично не вийде.
Тому ще до початку продакшену потрібно визначитися, для яких пристроїв та якої аудиторії створюється проєкт, і зосередитися саме на них. Так ви зможете досягти оптимальної продуктивності без шкоди для якості.
Останні роботи
Кращим підтвердженням нашої кваліфікації та професіоналізму є історії успіху наших клієнтів і відмінності в їх бізнесі до і після співпраці з нами.
Наші клієнти Що про нас кажуть
Успішні проєкти
створюються тільки командою Наша команда
Зв'яжіться з експертами З'явилися питання?
Користувач, оформляючи заявку на сайті https://avada-media.ua/ (далі – Сайт), погоджується з умовами цієї Згоди на обробку персональних даних (далі – Згода) відповідно до Закону України “Про захист персональних даних”. Прийняттям (акцептом) оферти Згоди є відправка заявки з Сайту або замовлення у Оператора за телефонами Сайту.
Користувач дає свою згоду на обробку своїх персональних даних з наступними умовами:
Надіслати резюме
Долучайтеся до нас
+ 38 (097) 036 29 32