Для звичайного користувача відеогра – це кінцевий додаток, який дає йому певний ігровий процес (геймплей). Але що означає відеогра для розробника?
Для розробника відеогра – це трудомісткий процес повний неточностей, які здатні постійно змінюватися протягом усього процесу розробки. У книзі Джейсона Шрейера «Кров, піт і пікселі» можна виділити кілька пунктів, які призводять до нерівномірності процесу розробки:
- Інтерактивність ігор підводить розробників до бажання досконало розвивати всі деталі гри, що в свою чергу забирає більше і без того обмежених ресурсів;
- Технічний прогрес завжди приносить в процес розробки як позитивні аспекти (нові інструментарії, спрощення вже існуючих можливостей), так і негативні (ускладнення процесу оптимізації, дефекти через недоробки або конфлікту нових функцій);
- Якість гри можливо оцінити тільки погравши в неї, що в свою чергу не дає створити точний план дій.
Мобільна гра
У чому ж головна відмінність мобільної гри від звичайної відеогри? Щоб дати вичерпну відповідь на це питання, потрібно декомпозувати гру на наступні частини:
- Геймплей
- Керування
- Графіка
- Продуктивність/Результативність
Так як мобільна платформа обмежена у ресурсах, ідеально потрапити під усі чотири пункти – неможливо. Під час створення складної сучасної графіки у мобільній грі ставиться під загрозу продуктивність, при старанній роботі над детальним геймплеєм можна прийти до проблематики з керуванням. Ігноруючи ці особливості, є ризик створити не дружній до гравця продукт.
В цілому, мобільна гра дає порядком менше можливостей для команди, аніж проєкт на ПК, що у свою чергу ускладнює процес розробки.
Жанри та механіки
Умовно конфлікт чотирьох пунктів створив певну жанрову та під-жанрову палітри. Можна назвати наступні жанри мобільних ігор:
- Платформери
- Шутери
- Гонки
- Adventure/Пригоди
- RPG
- Аркади
- Настільні ігри
- Match 3
- Hidden Object
Відповідно існують особливі механіки які можуть використовуватися у мобільних іграх:
- Touch/Swipe/Multi Touch – основні механіки управління на мобільних пристроях, які призводять до схожих простих механік з ПК індустрії (click, drag and drop). Частіше, ці механіки зустрічаються у настільних іграх, в деяких адаптованих RPG, аркадах, Match 3 та Hidden object.
- Віртуальні геймпади – ця механіка керування дуже відрізняється від механіки звичайного геймпада, з якою можна ознайомитись на консолях або ПК. Оскільки вона створюється з окремих активних елементів, з величезною ймовірністю механіка може конфліктувати з іншими елементами інтерфейсу. Крім того, в більшості реалізацій віртуальні геймпади мають широку кастомізацію, що може тільки збільшити ризики створення дефекту. Дана механіка універсальна та може бути застосована в таких жанрах як RPG, Adventure, Аркади, Гонки, Платформери.
- Механіки, засновані на гіроскопічних датчиках. Реалізаціями можуть бути як і звичайний автоповорот, який впливає на розташування елементів інтерфейсу, так і повноцінна механіка допомоги прицілювання в деяких шутерах.
Особливості тестування мобільних ігор
На відміну від родичів ПК, на мобільних девайсах є певні умовності, які у малому або у великому об'ємі здатні впливати на якість кінцевого продукту.
Перша особливість мобільних платформ – розмір екрану.
Зараз існує величезна кількість мобільних девайсів з унікальними розмірами екранів. І якщо умовна текстура моделі в грі на девайсі з маленьким екраном HD дозволу буде відображена цілком добре, то на великому екрані на умовному таблеті з уже FHD дозволом текстура може виглядати посередньо.
Сюди також можна віднести адаптацію інтерфейсу, так як більшість елементів розміщується з точністю по пікселях, в результаті є ймовірність, що на якомусь девайсі зустрінеться накладення об'єктів через інший дозвіл.
А після новаторського кроку від Apple існують ще й унікальні вирізи на екранах, через які певні елементи інтерфейсу можуть стати недоступними і перекритими.
Перекриття елементів керування вирізом
Друга особливість мобільних ігор – жести, та й сам Touch-інтерфейс у цілому.
Використовуючи відомі механіки Touch/Swipe/Multi Touch, розробники отримують можливість зробити інтуїтивне та зрозуміле керування. Але з великими можливостями приходить велика відповідальність. Кожен елемент управління – це окремий модуль, який може зламатися за допомогою найнесподіваніших способів. Наприклад: кнопка може виявитися не клікабельною, або вічно затиснутою; анімація скрола після свайпа може відображатися ривками; після багаторазового або одночасного натискання декількох різних елементів можна отримати конфлікт функцій.
Накладення елементів керування
Третя особливість мобільних ігор – порушення у роботі з боку системи.
До цієї категорії можна віднести:
- Системні жести:
- виклик навігаційної панелі;
- виклик статус-бару;
- виклик панелі повідомлень;
- фізичні кнопки;
- рicture in picture;
- split screen.
- Системні переривання:
- вихід з програми;
- згортання додатку;
- дзвінки;
- будильники;
- увімкнена музика;
- сповіщення;
- розрядження батареї.
На жодному із цих пунктів додаток не повинен крешитись. У разі діяльності поза грою повинна включатися пауза, а прогрес гравця повинен відразу ж завантажуватися в хмару або на сервери гри. Після повернення в гру не повинно спостерігатися проблем з продуктивністю, а ігровий прогрес повинен бути таким як і був.
Гра обрізана у режимі Split Screen
Четверта особливість мобільних ігор – якість мобільного інтернету.
Важливо розуміти, що мобільні пристрої мають два основних типи підключення для виходу в інтернет: WiFi та Mobile Data (Edge, 2G, 3G, 4G і т. д.). Розбираючи кожен тип підключення, можна прийти до висновку, що принцип роботи досить схожий. Фактично, якість і надійність мережі повною мірою залежить від покриття і навантаження, як наслідок – тестувати потрібно як хороші сценарії, так і найгірші. Наприклад, після успішної транзакції користувач може не отримати бажаний контент через те, що робота з сервером була нестабільною, хоча по документації додаток не повинен створювати такі випадки. Або, наприклад, функція програми стає недоступною через обрив зв'язку з сервером при гарній якості мережі.
П’ята особливість – продуктивність. Найважливіший, але іноді ігнорований розробниками до останніх стадій розробки, пункт. Сюди можна віднести швидкість запуску ігрових локацій, фреймрейт під час idle сцен, фреймрейт під час завантажених сцен, фреймрейт на складних локаціях.
Процес оптимізації не завжди легкий і вже точно не може бути реалізованим на швидкоруч.
Щоб копнути глибше в складність процесу оптимізації, можна поцікавитися досвідом CD Project Red та їх легендарним портуванням The Witcher 3 під платформу Nintendo Switch. Команда витратила цілий рік на переробку багатьох аспектів, щоб найкраща гра 2015 року без геймплейного вирізання змогла перебратися на мобільну платформу. Стаття на IGN.
Провести тестування продуктивності можна за допомогою спеціально написаних локаційних бенчмарків, або зробити виміри вручну. Для замірів фреймрейта в мобільних іграх використовують вбудований функціонал движка, або ж різного роду FPS monitor додатки, які вимагають детального налаштування. Одиниця виміру фреймрейта – FPS (Frame Per Second, Фрейм/Кадр за секунду).
Вимоги до тестування мобільних ігор
Пристрій, на якому буде проводитися тестування, має бути скинуто до заводських налаштувань, щоб повністю переконатися, що воно не конфліктує з попередньо встановленими програмами.
У разі, якщо в мобільній грі є функція взаємодії з іншими додатками, встановлення цих додатків дозволяється, тому що дане тестування відповідає нормам end to end.
Обовязкові до перевірки пункти:
- Структура білда:
- у структурі білда присутні іконки під усі актуальні або заявлені у специфікації дозволи екрану;
- версія SDK, з допомогою якого була зібрана мобільна гра,співпадає із версією SDK максимально підтримуваного девайсу.
- Під час першого запуску обов'язково перевіряємо:
- Landing Page – сторінку після запуску програми, де відображаються пропозиції від розробника;
- Splash Screen – зображення, яке з'являється під час завантаження гри, найчастіше логотип студії розробника або ж видавця;
- Loading screen – завантажувальний екран, на якому відображаються найчастіше тематичні арти з прогрес баром (іноді розробники додають в цей компонент хинти-підказки по грі).
- Після завантаження додатку перевіряємо:
- меню;
- профіль;
- налаштування;
- допомогу;
- інформацію про видавця.
- Всередині гри перевіряємо :
- коректність відтворення звуку;
- механіки гри;
- збереження гри.
- У випадку наявності функції прив’язки соціальних мереж та інших сторонніх сервісів, в обов'язковому порядку необхідно перевірити прив'язку до кожного сервісу.
Приклади багів
Автомобіль провалився під текстури. GTA SA
Автомобіль застряг у дереві. PUBG Mobile
Гравець провалився під текстури. PUBG Mobile
Тестування ігор – складний, але тим не менш цікавий процес, який потребує якісної підготовки перед проведенням. Сподіваємося, що ця стаття допомогла вам розібратися у багатьох моментах та особливостях, пов’язаних з цією областю тестування.