Лучшее  🚀
01.12.2017 в 14:40 Evernews

Батарейки, таймеры и белочки: разработчики рассказывают о грязных хаках в своих играх

В начале осени разработчики известных и не очень проектов устроили марафон в твиттере, рассказывая о скрытых механиках игр - получилось очень интересно. Редакторы Gamasutra решили развить тему и попросили разработчиков рассказать о грязных хаках.

Кстати, на сайте читать удобнее

История с батареей и памятью в Super Time Force

Рассказывает Кеннет Йеунг, технический директор Capy Games.

Версия Super Time Force для Xbox 360 была очень требовательна к объему памяти: разработчики хранили данные о всех объектах на уровне во все моменты времени, чтобы обеспечить возможность перематывать время назад. Тестеры обнаружили, что при выполнении ряда весьма специальных условий игра вылетала из-за недостатка памяти.

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

Если игра понимала, что игрок нечеловечески быстро жмет на кнопки, то время отматывалось к самому началу уровня: Super Time Force делал вид, что игрок случайно включил перемотку, пока молотил по кнопкам.

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

Оба этих решения устроили отдел контроля качества и позволили разработчикам сэкономить массу ресурсов.

Бесконечное небо

Рассказывает Гаррет Купер из Super Duper Game Company.

В экшене Black Ice Гаррет хотел реализовать небо в виде "бесконечной комнаты" - взгляните на скриншот ниже и вы поймете, о чем идет речь. Игра разрабатывалась на движке Unity, так что Купер решил пойти наиболее простым путем: использовать систему частиц.

Была всего одна проблема: частицы пропадали, если игрок начинал двигаться. Гаррет выяснил, что Unity отключает все невидимые частицы как только эмиттер, который их испускает, пропадает из области видимости игрока. Решение пришло само собой.

Купер разместил эмиттер частиц на несколько дюймов ниже "головы" игрока, подобрав место таким образом, чтобы он всегда оказывался в области видимости - эмиттер, разумеется, был привязан к игроку. Все заработало.

Спасительная кнопка

Рассказывает Марлон Муньос из Karaokulta.

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

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

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

История о белочках в Titan Quest

Рассказывает Артур Бруно, один из бывших разработчиков Titan Quest.

В движке Titan Quest отсутствовали таймеры: дизайнеры квестов просто не могли заставить событие подождать какое-то время после активации скрипта, все происходило немедленно. Таймеры понадобились на финальной стадии разработки, у программистов не было свободного времени для реализации этой фичи.

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

В результате к релизу мир Titan Quest был наполнен невидимыми белками, работающими в качестве живых таймеров. Сообразительность тестировщика оценили: в следующем проекте он был повышен до геймдизайнера.

Скрытый счетчик кадров

Рассказывает Мартин Тортон из Clever Beans Ltd.

Дело было во время разработки гоночной игры, выходившей на PlayStation 2, PlayStation 3, Xbox 360 и PlayStation Portable. Отдел тестирования был уверен, что в тестовом билде и в билде разработчиков управление немного отличается: ничего серьезного, но оно ощущалось как-то не так. Разработчики отправились на поиски бага.

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

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

Всё - мост

Рассказывает Артур Бруно - разработчик Titan Quest, основавший студию Crate Entertainment.

После выхода Titan Quest Артур решил заняться собственным проектом, Grim Dawn. На начальных стадиях разработка финансировалась самим Бруно, художника у него не было, так что Артур заказал какому-то фрилансеру модель моста: широкие деревянные доски, балки, металлические шипы - мост выглядел отлично.

Мост был до того хорош, что Артур использовал его ресурсы снова и снова: в ранней версии Grim Dawn из деталей моста создавались крылечки домов, ими мостили улицы, на их основе создавались другие мосты. Даже виселица была сделана из моста.

В конце концов Grim Dawn успешно вышел на Kickstarter, Артур получил финансирование и смог нанять моделлера, переделавшего большую часть "мостового" контента. Но некоторые вещи, сделанные из того моста, так и остались в игре.

Читать далее