Тестування продуктивності в іграх, поняття FPS
Тестування продуктивності в іграх, поняття FPS
- 16.05.2023
- Опубліковано: Admin

Продуктивність – це швидкість виконання комп'ютером поставленого завдання.
Можна виділити два основні завдання, які необхідно виконувати комп'ютеру, консолі або мобільному пристрою під час гри:
- відмальовка та підтримання ігрового світу, в якому знаходиться користувач;
- реакція на дії гравця.
В іграх фактор продуктивності має дуже велике значення: якщо показник продуктивності низький, комп'ютер не встигає обробити всі завдання швидко і своєчасно, як підсумок ми отримуємо фризи, лаги, гальмування і т. ін. Якщо ж продуктивність висока, то, відповідно, гра йде плавно і нашому зануренню в гру нічого не заважає. У випадках, коли продуктивність пристрою недостатньо висока для стабільної гри, можна зменшити навантаження на нього, знизивши якість графіки.
Сама продуктивність є збірною величиною, так як вона залежить від наступних факторів:
- Процесор (CPU). Чим вище тактова частота процесора і чим більше в ньому паралельно працюючих ядер, тим вище швидкість виконання завдань.
- Графічний процесор (GPU). Відеокарти з більш високими характеристиками дозволяють обробляти та виводити картинку швидше, що збільшує продуктивність. Також, такі відеокарти дозволяють грати з високими налаштуваннями графіки.
- Оперативна пам'ять (RAM). Під час роботи пристрою оперативна пам'ять зберігає в собі виконуваний код програм, а також деякі дані процесора. Більший обсяг оперативної пам'яті дозволить зберігати більше даних і збільшить продуктивність.
Види дефектів продуктивності
Зависання/Фризи (Freeze) – тимчасове зависання у грі.
Зависання бувають двох видів:
- Система зависає повністю. Картинка статична і гра перестає реагувати на дії користувача. Після закінчення зависання гра триває з того самого моменту, на якому зависла. Даний дефект більш характерний для одного користувача або одиночних ігор (single-player game).
- Зависання конкретного гравця. За всіма симптомами нагадує попередній дефект, але після цього фриза гра триває з більш пізнього моменту, ніж на якому фриз почався. Тобто зависає тільки даний конкретний гравець, ігровий світ продовжує свою активність. Цей вид дефекту більш характерний для онлайн ігор, де інші користувачі продовжують обмінюватися даними з сервером, в той час як завислий гравець не може цього зробити.
Падіння/Креш (Crash) – екстрене завершення гри з подальшим виходом на головний екран системи або перезавантаженням пристрою, пов'язаний з помилками в коді гри.
Низький рівень кадрової частоти. Кадрова частота (Frames per Second, FPS) – кількість змінюваних кадрів за одиницю часу в комп'ютерних іграх, телебаченні та кінематографі. У комп'ютерних іграх під кадровою частотою розуміється частота, з якою процес гри оновлює зображення в кадровому буфері.
Відображення кадрової частоти можна включити в налаштуваннях самої гри, якщо ж така опція не передбачена, то можна використовувати додаткове програмне забезпечення (наприклад, Fraps). Даний вид дефектів пов'язаний з тимчасовим (наприклад, в момент анімації вибуху) або постійним низьким рівнем змінюваності кадрів в грі. 30 кадрів в секунду це мінімально допустиме значення FPS в іграх. Різке зниження даного показника нижче 30 кадрів є показником дефекту і сигналом, що в даному місці код необхідно оптимізувати.
Витік пам'яті (Memory Leak) – зменшення обсягу вільної пам'яті пристрою. Виникає через помилки в програмі, коли виділена оперативна або віртуальна пам'ять не очищується після використання.
Через деякий час безперервної роботи кількість не звільненої пам'яті може перевищити доступну пам'ять на пристрої, в цей момент пристрій може зависнути або додаток може крешнутися без збереження робочих даних.
Всі перераховані вище дефекти негативно позначаються на ігровому досвіді геймера. Велика кількість таких дефектів призведе до того, що гравець захоче повернути за неї гроші і почне влаштовувати антирекламу для свого кола друзів та знайомих. Для того, щоб захистити користувача від цього негативного досвіду, проводиться тестування продуктивності.
Як можна тестувати продуктивність?
Без використання інструментів – один з самих ненадійних способів тестування продуктивності. Креш і фризи можна знаходити у грі навіть без використання інструментів, проте баги з низькою кадровою частотою будуть помічені тільки якщо справи йдуть зовсім погано, і тільки в такому випадку низьку швидкість зміни кадрів можна побачити "на око" та записати на відео. Витік пам'яті так і зовсім можна не помітити та пропустити під час тестування без інструментів.
Тестування з використанням інструментів – даний вид тестування складається з двох етапів: безпосередньо тестування з використанням інструменту та аналіз отриманих даних. Під час аналізу тестувальник звертає увагу на наступні параметри:
- кадрову частоту (FPS);
- витрату батареї – при високих навантаженнях телефон починає споживати більше енергії, щоб підвищити продуктивність у відповідь на велике навантаження. При тривалому високому навантаженні температура девайса може рости і досягати критичних значень, при яких подальша робота на пристрої може призвести до втрат даних і/або виходу девайса з ладу;
- споживання пам'яті – відстежується в першу чергу для пошуку витоків пам'яті в додатках;
- навантаження CPU і GPU – спостерігаючи за тим, що відбувається зараз в додатку і за графіком використання CPU і GPU можна зробити висновки, які процеси та функції споживають велику кількість ресурсів і повинні бути по можливості оптимізовані.
Грунтуючись на цих даних, тестувальник може знайти потенційно проблемні місця, які необхідно перевірити повторно, і місця, які можуть привести до крешу при більш тривалій роботі.
Для даного виду тестування на платформах iOS і Android відмінно підійде програма GameBench. З її допомогою можна робити запис екрану паралельно з графіками, це дозволяє розуміти, що відбувається на екрані в той чи інший момент навантаження.
Інтерфейс програми GameBench
Метрики програми GameBench
Тестування з лічильником FPS – креш і фризи при даному виді тестування будуть відслідковані так само, як і при тестуванні без інструментів, проте тут використовується лічильник частоти кадрів, за допомогою якого можна явно відстежувати, в яких місцях падає FPS нижче допустимого рівня.
Для відстеження FPS на ПК відмінно підійде програма FRAPS.
Інтерфейс інструменту FRAPS
Вона дозволяє як відстежувати FPS в реальному часі, так і робити запис даних в файл для подальшого аналізу. Також з її допомогою можна знімати відео і робити скріншоти.
На наступному скріншоті в лівому верхньому кутку можна спостерігати лічильник FPS. Для зручності його можна перемістити в будь-який інший кут.
Використання FRAPS у грі
Тестування продуктивності має велике значення при випуску гри. Збої в роботі через погану продуктивність створюють незабутнє загальне враження про гру на кінцевого користувача. З цієї причини тестувальники приділяють велику увагу даному виду тестування, щоб показники були в нормі для тих чи інших пристроїв і, головне, щоб кінцеві користувачі отримували задоволення від гри без фризів та крешів.
