Как я выпустил демку с хардлоком на фестиваль "Играм быть"
Всем известно, насколько важен этап тестирования. Перед фестивалем я разослал билд игры ребятам на дополнительную проверку. Ничего серьёзного мы тогда не нашли. Да и сама игра, симулятор лавки антидотов, устроена просто: тут нет сложной физики, а большинство ошибок казались очевидными. Но я и подумать не мог, что игра буквально застрянет на ровном месте.
Первые дни феста шли спокойно, кто-то даже оставлял положительные комментарии. Но через пару дней мне начали присылать багрепорты: в конце первого игрового дня кнопка продолжения не показывалась на экране! Судя по скриншоту, виноват был обычный скролл, который застревал на пути и не докручивался до конца. Самое странное - у одних игроков всё работало идеально, у других стабильно ломалось. Самое печальное, что мне никак не удавалось воспроизвести баг. В обсуждениях steam были предположения, что проблема связана с разрешением экрана, но, включив игру в разных режимах, я это опроверг.
У меня не было идей, как исправить ошибку, поэтому я просто поменял способ прокрутки на костыльный, но более надёжный. А потом помощь пришла оттуда, откуда я её совсем не ждал. Стример с канала PodcastOGRU среди демок фестиваля поиграл и в мою, словив тот самый хардлок в прямом эфире! Я спросил, какой у него монитор, и оказалось, что частота обновления экрана 72 Гц. Разумеется, на мини-плейтестах у всех были мониторы по 60 Гц. А так как в игре по умолчанию включена вертикальная синхронизация, при игре в 60 кадров всё работает нормально, но при увеличении фпс объекты не успевают обновиться, вызывая странное поведение. Звучит как классическая ошибка, однако в игре нет моментов, завязанных на времени кадра и в теории фпс не должен ни на что влиять. Игра работает на godot engine, объекты здесь обычно удаляются в конце кадра (где ключевое слово - обычно).
Итак, дело раскрыто :D Получился девлог с нотками детектива. Нужно ли в заключение сказать, что тестировать нужно на всём? Но, по крайней мере, теперь я знаю: если игра вдруг зависла — стоит спросить: «А какой у вас монитор?».
Игра: «Антидот к отчаянию». Этакий Papers please про яды и антидоты. Буду благодарен за добавление игры в ваш список желаемого!