«Грязные» приёмы разработчиков игр Статьи редакции

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

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

Фальшивая батарея

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

Выяснилось, что если игрок будет достаточно быстро нажимать на все кнопки контроллера в течение определённого времени, память будет исчерпана. Как вспоминает один из разработчиков Super Time Force Кеннет Йонг, авторы разработчики решили ничего не исправлять, и применили хитрость.

Игра стала отслеживать «хаотичное» нажатие кнопок и притворялась, что игрок нечаянно нажал на кнопку перемотки времени. Ничего не подозревающий игрок отправлялся назад во времени, а игра могла начать запоминать его действия заново.

Но вскоре разработчики столкнулись с новым багом — на одном из уровней было такое большое количество объектов, что при определённом количестве произведённых игроком выстрелов и взрывов память всё равно заканчивалась.

С этой проблемой разобрались ещё более простым способом— когда память приближалась к лимиту, игра вставала на паузу, а на экране появлялась надпись «низкий заряд батареи контроллера». Затем игра перенаправляла игрока на экран выбора уровней.

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

Кеннет Йонг, технический директор студии Capy Games

Невидимые белки

Геймдизайнер Артур Бруно вспоминает о проблеме, с которой он столкнулся при создании Titan Quest. Система игры не позволяла устанавливать задержку для действия — если какой-то триггер активировался, то действие должно было произойти немедленно, а не через пять или десять секунд.

С этой проблемой разработчикам помог справиться тестер, подключившийся к процессу на финальной стадии разработки. Он догадался, что существует способ обойти это ограничение — длительность анимации.

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

Немного тишины

Разработчик Кит Кайзершот, работавший над Mega Man Legacy Collection для 3DS, столкнулся с загадочным багом. При запуске игры первый звук, который слышал игрок, искажался до неузнаваемости — вне зависимости от того, что это был за звук.

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

В конце концов Кит просто добавил в начало секунду тишины. Всё заработало.

Лишний счетчик

Мартин Тёртон работал над «одной гоночной игрой» для PS2 и PSP. В какой-то момент департамент контроля качества пожаловался, что машина реагировала на действия водителя немного по-другому — не так, как в других версиях игры.

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

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

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

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

Оказалось, что нет: главное, чтобы он просто был. В результате разработчики просто передвинули счётчик за край экрана — в таком виде игра и поступила в продажу.

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

В одной из игр для Android от студии Karaokulta тестеры нашли серьёзную проблему — после определенной катсцены игра вылетала. По словам геймдизайнера Марлона Муноза, команда разработчиков потратила неделю, пытаясь понять, в чём причина, но не преуспела. Зато экспериментальным путём удалось выяснить, что если во время катсцены нажать на кнопку «назад», то игра не вылетит.

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

Мир из остатков моста

Рассказывая о работе над игрой Grim Dawn, Артур Бруно вспоминает, как на начальном этапе разработки, когда в команде ещё не было художника, он пользовался услугами фрилансеров, тратя личные сбережения.

Например, он заказал для игры модель деревянного моста с длинными досками, закруглёнными балками и железными шипами.

Вскоре понадобились новые элементы окружения — но художника и моделера в команде всё ещё не было, а личных сбережений Бруно уже не хватало.

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

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

0
40 комментариев
Написать комментарий...
Саймонд Эни

За первый оторвать бы разрабам руки.

Ответить
Развернуть ветку
Серега Tesmen

Поликостылизм, инкостыляция, накостыление

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Константин Лузин
Ответить
Развернуть ветку
Саймонд Эни

Костыли костылики.

Ответить
Развернуть ветку
Svoboda Igor

Ещё, например, в серии игр Far Cry первый выстрел врагов всегда будет мимо.
Чтобы у игрока было время спрятаться и начать бой "на равных".

Ответить
Развернуть ветку
ZenGangsta

Ого, не знал)) надо проверить, лол))

Ответить
Развернуть ветку
AntoN

Это так же в стандартном сапёре из виндовса — в первом открытии клетки никогда не будет бомбы. А вот в других версиях можно с первого хода взорваться)

Ответить
Развернуть ветку
Владислав Коньков

Вот тут я не согласен. Сапер рандомно поле собирает и если вам везло с первого раза не подорваться, то я завидую вашему 6му чувству ибо у меня не так все))

Ответить
Развернуть ветку
AntoN

Рандомно, да, но «Мины расставляются после первого хода, поэтому проиграть на первом же ходу невозможно» © Вики. Возможно у вас был неправильный сапёр)

Ответить
Развернуть ветку
Никита Андреевич

Ребят, может вы не будете мигрировать с DTF? Я понимаю что на DTF целевая аудитория умом ещё не открепла и от их комментариев хочется миксером в суфле глаза взбить, но неужели нет другого годного контента ?

Ответить
Развернуть ветку
Дмитрий Щербаков

А мне понравилось, познавательно. Хоть как-то разбавляет статьи о биткоине ))

Ответить
Развернуть ветку
Арсеньев Олег

Это точно!

Ответить
Развернуть ветку
Valentin Dombrovsky

Не понял, к чему комментарий. Статьи рубрики «Рынок игр» на VC давно. Не нравится — идите мимо.

Ответить
Развернуть ветку
Никита Андреевич

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

Вы так каждому клиенту говорите - "не нравится качество наших услуг? Засуньте своё мнение глубоко и надолго!" ? Интересуюсь чисто из любопытства )

Ответить
Развернуть ветку
Valentin Dombrovsky

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

Ответить
Развернуть ветку
Никита Андреевич

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

Ответить
Развернуть ветку
Valentin Dombrovsky

Вы не даёте объективную критику — это раз. Критикуя, будьте готовы к критике собственной критики — два.
Реакция на Ваши и мои комментарии показывает, что основной части аудитории статья пришлась по вкусу — с этим спорить бесполезно.

Ответить
Развернуть ветку
Никита Андреевич

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

Ответить
Развернуть ветку
Suki Luki

И о чем твой пост тогда?

Ответить
Развернуть ветку
Никита Андреевич

Выше /\ все написано понятным языком.

Ответить
Развернуть ветку
Ivan Kireiev

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

Ответить
Развернуть ветку
Никита Андреевич

каждое мнение субъективно и относительно. Это так же как "ложки не существует") на счёт дизлайков это да, это является истинным значением, но не является суждением. А любое суждение не является истинным. Те кто изучал глубоко философию в универе, те поймут. Но думаю вы опять меня все не поймёте )

Ответить
Развернуть ветку
Никита Андреевич

Кстати, мне не понятно по какой причине вам лайков на ставили?! Я просто представлять не хочу, когда все будут брать пример именно с вас, и в очередном магазине/заведении вам именно и скажут: "вы мне что, клиент что бы я вас обслуживал?". Мне всегда казалось, что людей вашего возраста всегда в детстве учили доброте, дружбе и взаимопониманию. Ох как я ушибался :) Впрочем, наверняка сейчас все настроены так, чтобы каждому можно было перегрызть глотки, удивительное время

Ответить
Развернуть ветку
Valentin Dombrovsky

Вы упорно считаете, что я как-то связан с VC.ru, видимо. Ну или пытаетесь как-то вывернуть ситуацию в свою сторону.
Продолжая Вашу аналогию, я — клиент кафе, в котором Вы пытаетесь навести свои порядки, указывая, что в меню есть блюдо, которое Вы есть не хотите. Я же говорю Вам: «Если Вам не нравится это блюдо, Вы можете его не заказывать. Нам, другим клиентам, оно нравится — зачем его убирать?» Дальше можно не продолжать, думаю.

Что касается глоток, то это Вы начали с претензий к двум ресурсам сразу (на dtf.ru Вас не устраивают комментарии, здесь — контент). Так что исправление мира начните с себя.
Кстати, изучение правил родного языка, а также чтение классической литературы — отличный шаг к тому, чтобы научиться хорошо мыслить и рассуждать. И пишу я это именно по большой доброте и дружбе, а также с надеждой на взаимопонимание

Ответить
Развернуть ветку
Никита Андреевич

Никто ещё не утверждал, что статья не понравилась. Представьте, что вам на дешевой заправке залили бензак не особо хорошего качества, машина едет конечно, но не так как хотелось бы. А на другой заправке, где цена в два раза выше, вам обещают залить топливо круче, чуть ли не с добавлением ракетного. Ну вы заправились, но видите что машина ну вообще не тянет. И потом оказывается, что топливо было одинаковым. Вас это явно не повеселит. Вам нужна была добавка. От разных проектов с разным контекстом просто копируется материал, разве это нормально. Вам знакомо ощущение, когда вышла новость и ее показывают везде, вы про неё все знаете. Но она выходит идентичная на разных каналах: бизнес, спорт, культура, развлечения. Я считаю, что это не нормально.

Ответить
Развернуть ветку
Valentin Dombrovsky

Окей, Вы клиент, который говорит: «Я этот цезарь ел в другом кафе, а в этом кафе мне нужно, чтобы в него добавили грибов!»
В конечном итоге никто Вам ничего не должен, а голосовать что за заведение, что за онлайн-ресурс Вы можете своим присутствием. Закончим на этом, пожалуй.

Ответить
Развернуть ветку
AntoN

Ну нее, это ещё не грязные приёмы. Была крутая статья в интернетах «5 способов, которыми игры пытаются вызвать зависимость» вот там действительно грязные приёмчики.

Ответить
Развернуть ветку
ZenGangsta

Можно ссылочку? Чот найти не могу))

Ответить
Развернуть ветку
AntoN
Ответить
Развернуть ветку
ZenGangsta

Спасибо! :)

Ответить
Развернуть ветку
Буги-вуги Монатик

Актуальная тематика, а ведь мало таких статей! Пишите ещё. Критика и анлайки ставят те кто сам ничего и никогда опубликует

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Тан Ахчик

статью с хабра скопипатили

Ответить
Развернуть ветку
Тан Ахчик

скопипастили*

Ответить
Развернуть ветку
Семен Смирнов

Для кого эти рассказы? Для людей далеких от IT?

"после определенной катсцены игра вылетала. По словам геймдизайнера Марлона Муноза, команда разработчиков потратила неделю, пытаясь понять, в чём причина, но не преуспела" - то есть все технологии, снятие логов, креш-дампов, отладка перестали быть актуальными, и теперь разработчики собственной игры не могут креш отловить? Ладно бы это аутсорс какой-то был, когда дали инструментарий, и непонятно, что за что отвечает, а сроки не позволяют исследовать. А тут типа неделю креш локализовывали

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

Ответить
Развернуть ветку
Сергей Сергеев

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

Ответить
Развернуть ветку
Исаак Бляйшмен

Интересная статейка. Спасибо.

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Александр Шиманов

А ещё очень хитрая система в серии Mario Kart. Во всех частях, начиная с самой первой. Да и не то, что хитрая, а просто читерская система! Особенно на высоких сложностях. Там прям все и всё против тебя! Бывает, нормально едешь, вырываешься вперёд, но на последнем кругу, в нескольких метрах от финиша, какая-нибудь фигня обязательно произойдёт: либо в тебя панцирь какой-нибудь пустят (главным образом, взрывоопасный), либо кто-нибудь подобьёт неуязвимостью (или ракетой), либо просто каким-то непонятным образом тебя кто-то обгонит. Бывает, что даже несколько "призов" тебе достанется от разных уродов (именно тебе). И всё - ты в жопе, а все старания на смарку! И такое продолжается постоянно! Игра просто начинает тебя выводить из терпения! А ты всё пытаешь побороть эту читерскую систему. Приходится рассчитывать только на удачу и везение, а без этого просто не выиграть, как ни старайся. Да и ехать компьютерные персы будут всегда в определённой последовательности (имею в виду, приходить к финишу), что бы ни происходило во время гонки. Короче, тут разрабы чересчур "постарались", решили поиздеваться над игроками. Посмотрел бы я на них, как они проходили бы.

Ответить
Развернуть ветку
Andr Ew

хрен с ними с играми, подобные приёмы применяются при разработке любого софта, в т.ч. ОС.

Ответить
Развернуть ветку
Roman Annenkov

В очередной раз убеждаюсь, что исправить проблему легче, чем понять её причину.

Ответить
Развернуть ветку
Elizaveta Samorodskih

Класс, мне про распил моста понравилось :-)

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку

Комментарий удален модератором

Развернуть ветку

Комментарий удален модератором

Развернуть ветку
37 комментариев
Раскрывать всегда