Как мы исправляли ошибки в игре

Пару недель назад наша команда закончила тестирование Total Reload под Windows и Linux. Конечно не все прошло гладко. В сумме было выявлено десятка два проблем. Львиная доля проблем/багов обнаружена на Linux. Но про все по порядку.

Скрин игры для разбавки текста
Скрин игры для разбавки текста

В основном пользователи Linux жаловались на проблемы с мышкой:

  • чувствительность на некоторых устройствах была крайне низкой
  • часто мышка была ограничена в каком-то cекторе и это мешало управлять персонажем

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

Баги на Windows

На Windows была проблема NanPropagation (которую мы быстро исправили). Из-за этого у многих игроков были примерно такие вспышки/засветы на экране:

Как мы исправляли ошибки в игре

Также была проблема засветки/искажения цветов, которую я долго пытался выявить и выявил. Наблюдалась проблема буквально на нескольких карточках, одной из них была Intel Iris Xe Graphics. Визуально проблема выглядела так:

Как мы исправляли ошибки в игре

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

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

Попытка аренды оборудования

Т.к. операционная система Windows мне более знакома, то исправление багов начал с нее. Воспроизвести синеву на своем железе мне не удавалось. По этой причине решил арендовать ноутбук на Avito. Цена вопроса около 3 000 руб. за неделю. Отобрал ноутбуки на которых потенциально могла бы возникнуть проблема и написал владельцам (одна из переписок):

Чат с владельцем ноутбука
Чат с владельцем ноутбука

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

Каждый раз владельцы соглашались протестировать приложение перед сдачей в аренду, но как только дело доходило до скачивания файла для теста происходил один из сценариев:

  • человек переставал выходить на связь
  • человек отказывался скачивать файлы

Один из владельцев сперва согласился (скрин выше), но потом дал заднюю. В итоге договорились что он скачает демку со стима и он согласился.

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

Как правили баги на Linux.

С линуксом дела обстояли сложнее. Решил не рисковать ставить Linux на свой мак т.к. мог бы снести уже имеющуюся OSX & Win10. Да и свободного места для установки нет, а систем пришлось бы ставить с десяток, а может и больше.

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

Samsung 780QVO 2TB
Samsung 780QVO 2TB

В итоге поставил на него Windows10, линуксов, драйвера к ним. И на линуксах через пень-колоду поставил драйвера для Wi-Fi (ставил его через мобильный интернет, да-да...).С Ubuntu 20.04 и Unity3D отельная история - программа запускалась с большим бубмном. Пол дня пытался понять что ей надо. А надо:

После того как игра была запущена на Linux в UnityEditor, баги были исправлены достаточно быстро :)

На текущий момент мы:

  • исправили все критические баги
  • работаем над переносом игры на OSX (произойдет через дней 30)
  • усиленно работаем над ИИ, котрый еще мы не демонстрировалии аудитории
  • работаем над процедурной озвучкой ответа ИИ
44
Начать дискуссию