Найти в Дзене
Stronghold of gamedev

3 распространенных бага в играх и их решения

Оглавление

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

Компании имеют целые отделы тестировщиков, компетентных ребят с аутсорса и даже устраивают бета - тесты, предлагая аудитории играть в дырявый продукт и оставлять фидбек. Ну а что? Бесплатно и эффективно.

Зловещие баги зачастую всё равно прокрадываются в финальный продукт, просто требуя патчей (заплатки, как иронично). Какие баги встречаются чаще всего? В чем их причина и каково решение?

Зависимость скорости движения от FPS

Начну, пожалуй, с самого простого. Проблема встречается не так часто, но имеет место быть. Например гении из Bethesda допустили эту ошибку в бете Fallout 76 и не исправляли её вплоть до релиза.

В чем беда? Скорость движения персонажа зависит от количества кадров, которое на компьютерах может сильно отличаться. Игроки разгонялись до неестественных скоростей глядя в пол, тем самым увеличивая фпс, ведь игра перестает рендерить то, что не видно.

-2

В основном все математические расчеты и передвижения рассчитываются каждый кадр, следовательно больше кадров = быстрее движение.

Как решить? Ух не знаю как у Bethesda дела с их древним движком, однако на современных существует волшебная переменная, рассчитываемая каждый кадр. Она равна времени, прошедшему с последнего кадра, домножив на которое, скорость передвижения будет одинаковой и на 15 кадрах, и на 60 кадрах в секунду.

Провал в текстуры

Не совсем в текстуры. Наверно многие попадали в неприятную ситуацию, проваливаясь под землю или проходя за стену и застревая там. Рассмотрю я однако более интересный пример, которые используют спидранеры, дабы выбежать за уровень и сильно сократить путь.

-3

Проблемы? Обычно ландшафты создают одним или несколькими огромными моделями, их поверхность покрывает тоненький коллайдер и если очень постараться, на большой скорости движок может не уловить столкновение и пропустить игрока под текстуры, где он будет обречен бесконечно падать. Во имя оптимизации стены, куда нормальный игрок не полезет, тоже имеют тонкие коллайдеры, либо не имеют их вовсе.

-4

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

Низкая производительность

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

Анти-пример в лице MGS 5
Анти-пример в лице MGS 5

Проблема. Обычно виноват ужасный код. Скрипт неиспользуемой механики продолжает каждый кадр делать бесполезные расчеты, забивая процессор и оперативную память. Таких скриптов может быть много, возможно неумелый программист забывает отладить и ограничить операции, ведь и так всё работает! В анти-пример я привел MGS 5 - отличный визуал, классные механики и отличная оптимизация, позволяющая играть на слабых ПК.

Решения нет? Программисту стоит подтянуть свои навыки и чаще показывать код более опытным коллегам.

А какие баги часто встречаете вы?
Оценивайте статью и подписывайтесь на канал!