Баги — це дефекти й збої, що впливають на досвід користувача, без яких рідко обходиться будь-який програмний продукт. Ніде правди діти, навіть в іграх VOKI Games трапляються ці дрібні шкідники, попри багатоетапне тестування професіоналами.
Деякі з багів невинні й викликають лише усмішку, інші призводять до катастрофічних наслідків для іміджу розробників. Далі ми розповімо про класифікацію багів, роботу тестувальників і про те, чому баги таки доходять до кінцевого користувача.
Кожна гра є компіляцією різного програмного коду. Вона підпорядковується математичній моделі й містить купу функціональних елементів. Багами називають непередбачувані наслідки коду та інші неприємності, що більшою чи меншою мірою впливають на ігровий процес.
Виявлення «жучків», саме так перекладається англійське слово bugs, — основна мета тестування продукту. Воно проводиться не лише перед релізом гри, а й під час мажорних (із серйозними змінами) і навіть мінорних (із незначними виправленнями та доповненнями) оновлень, щоб команда розробників могла знайти баги, проаналізувати їх та усунути (себто пофіксити).
Недоліки має кожен продукт, особливо перші версії, які, переживши лише тестування, ще не піддавалися вивченню звичайними користувачами. Проблема в тому, що ігровий код — це мільйони та мільярди функцій і сценаріїв, передбачити взаємозв’язок яких дуже складно, а отже, фактично баги ніяк не можна унеможливити.
Тож давайте трохи змінимо думку, озвучену абзацом раніше. Мета тестування продукту — пошук критичних багів, які унеможливлюють використання гри. Тобто дрібні збої можуть залишитися, і це нормально як для розробників, так і для гравців, а ось критичну помилку пропустити зась.
У ролі ентомологів, які виловлюють програмних комах, виступають тестувальники. Це фахівці, які знають, як шукати баги в іграх, що працюють за спеціальними тест-кейсами. Для тестувальника важливими є певні якості:
Тестувальники шукають баги в іграх з позиції кінцевого користувача, саме від них залежить, наскільки якісною буде програма і чи залишаться в ній критичні помилки. При цьому потрібне знання хоча би базових принципів програмування, технологій розробки програмного забезпечення та скриптових мов.
Результати спостережень і випробувань тестери заносять до звітів і надсилають команді. Особисто вони ніяк не впливають на код і його якість, але дають змогу розробникам отримати повноцінне бачення ситуації та вжити заходів для покращення продукту.
Тестування мобільних ігор — багатоетапний процес, особливості якого залежать не тільки від рівня програми, а й від її реалізації. Якщо говорити коротко, то випробування ігор проводять так:
У поміч тестувальникам — численні сценарії, які відтворюють різні умови роботи. Наприклад, для залежних від інтернету ігор тестування проводиться у стресових умовах. Тестувальники стежать за тим, що відбувається під час просідання швидкості, перепідключення до мережі, її недоступності протягом певного часу. Так відбувається і з іншими аспектами розважального ПЗ.
Кожна проблема, знайдена тестувальниками, заноситься до звіту разом із даними про ситуацію, що призвела до неї, прояви збою та оцінкою ризиків. Так, тестувальник повинен вміти оцінювати рівень серйозності проблеми, щоб команда розробників могла грамотно розставити пріоритети.
Одну і ту саму гру можуть тестувати місяцями й навіть роками, якщо йдеться про величезний проєкт. Найчастіше на тести відводять 1–2 місяці, цього цілком достатньо для усунення основних уразливостей до випуску гри.
Щоб наочно показати команді ступінь серйозності бага, тестування ігор відбувається за чітко заданими критеріями. При цьому кожній знайденій помилці присвоюється рівень. Усього є п’ять варіантів серйозності багів:
Пріоритетом для команди є блокуючі та критичні помилки, значні загрози теж виправляють. Мінорні баги часто залишаються в релізних версіях — їх фіксують у регулярних оновленнях.
Крім рівня серйозності, баги поділяються на категорії залежно від типу помилки:
Геймтестувальники послідовно опрацьовують кожну категорію гри та складають один повноцінний звіт. За його підсумками розробники визначають пріоритетні пункти та працюють над покращенням програми.
Після виходу більшості ігор починається шквал повідомлень про виявлені користувачами баги. Отже, постає питання: невже не можна все виправити до релізу, на альфа- й бета-стадіях тестування? Така ситуація має кілька причин:
Розробники завжди мають дедлайн, якого потрібно дотримуватись, тому більшу частину тестування передають гравцям. Це як відкритий тест в альфа- і бета-версіях, так і використання релізного варіанта гри, в якому користувачі часто знаходять недоліки.
Якщо тестувальники працюють над виявленням критичних похибок, то користувачі здатні реалізувати найбожевільніші сценарії. Їхня ефективність набагато вища, але, на жаль, через відсутність системного підходу фіксувати такі баги можуть місяцями.
Періодично геймерська спільнота вибухає новинами та гнівними повідомленнями про недоопрацьованість ігрових продуктів. Насправді все виявляється не так погано, а наявні недоліки неквапливо і ґрунтовно фіксують у процесі оновлень. Але є й своєрідні баголідери, які стали продуктом непередбачуваності коду та поспішного релізу:
Cyberpunk 2077. Так, цей «шедевр» з Кіану Рівзом у світі майбутнього точно може претендувати на верхні рядки в рейтингах забагованості. Крім некритичних, але кумедних збоїв текстур, механіки поведінки персонажів і непромальованих спрайтів, відразу після релізу виникли серйозніші проблеми.
Машини телепортувалися, ключові персонажі починали циклічно ходити, не реагуючи на користувача, а сама гра нещадно фризила та вилітала. Методом оновлень і латок багато проблем вже прибрали, але реліз був справді провальним.
Fallout 76. Ми звикли вважати цю гру легендарною та революційною, але відразу після виходу у світ вона була справжнім розсадником багів.
Монстри зображались зі спотвореннями, сервери постійно виходили з ладу, а багоюзери ставали ігровими богами. Протягом кількох років гру довели до ладу, але все ж таки Bethesda втратила багатьох учасників через жахливу якість реліз-версії.
Gothic 3. Легендарна RPG, що завершує трилогію, отримала шикарний світ і скрупульозно опрацьованих персонажів із приголомшливими квестами. Але про оптимізацію розробники геть забули, що й призвело до технічного провалу. Гра постійно вилітала та гальмувала, з початкової локації через порожнечі в текстурах могли вийти лише одиниці, а ігрова механіка була абсолютно сирою. І хоча розробникам вдалося довести продукт до нормального стану патчами, досі фанати серії полірують її аматорськими латками.
Навіть серед легендарних ігор є провальні тайтли, які запам’яталися всім. Але варто відзначити, що такі ситуації найчастіше виникають в іграх з відкритим світом і проробленою механікою — встежити за всім не можуть навіть професіонали. Водночас казуальні жанри рідко мають критичні помилки, але творці все одно випускають періодичні оновлення.
Підсумок підіб’ємо своєрідно: баги можуть стати фічами. Серйозно, це хоч і не відбувається повсюдно, однак трапляється в геймдеві. Варто згадати бодай баг із поведінкою поліцейських у Grand Theft Auto, які не об’їжджали гравця, а намагалися проїхати крізь нього. Копи-психопати сподобалися розробникам і користувачам, міцно увійшовши до наступних ігор серії.
Легендарна «розстрибка» теж спочатку була багом, який з’явився в Quake. Її залишили й в інших іграх (наприклад, Counter-Strike), оскільки запустити режим швидкого руху могли далеко не всі гравці, а сам він не був убер-плюшкою. Те саме стосується і рокетджампу, який був помічений випадково, коли гравець вистрілив ракетою собі під ноги. Так народилася оновлена механіка, яку досі юзають прогеймери.
Таким чином, ігровий процес не обходиться без багів, які можуть бути як серйозними проблемами, так і невинними нюансами. Над зменшенням кількості помилок працюють цілі команди тестувальників, а також обробляється зворотний зв’язок від гравців після релізу. Але все одно баги іноді проскакують і навіть перетворюються на фічі, це теж варто враховувати.
Підписуйтесь на наші сторінки у Facebook та Instagram, щоб першими дізнаватися цікаві факти про розробку мобільного ПЗ.