Костыли разработчиков

Материал из Викитропов
Перейти к навигации Перейти к поиску

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


Примеры

Общее

  • Поворот спрайтов представляет собой, как правило, отзеркаливание, чтобы не рисовать вдвое больше моделей, но это приводит ко всяким казусам, если объект не симметричен, например, отсутствует одна из рук.
  • Для создания высокодетализированных зеркал или других отражающих поверхностей, разработчики часто прибегают к следующей хитрости — вместе с комнатой с зеркалом также создаётся её отзеркаленная копия, а само «зазеркалье» заселяется клонами игровых и неигровых персонажей, которые повторяют движения оригиналов. Применение данного трюка можно увидеть и в сравнительно новых играх, таких как Hitman III или ремейк Resident Evil 3.
  • В играх от первого лица игрок зачастую лишь управляет плавающими в воздухе руками, которые держат предметы и взаимодействуют с миром — делается это не только для экономии вычислительных ресурсов, но и исключения возможности попадания камеры «внутрь» модели персонажа во время специфичных анимаций.
    • В играх вроде Mirror’s Edge, где игроки видят туловище и ноги игрового персонажа, игроки часто управляют безголовым персонажем.
    • В сетевых играх отображение моделей устроено таким образом, что в камере игрока отображаются лишь допустимые части тела, в то время как другие игроки видят полную модель персонажа.
  • LODы — так как на расстоянии все равно не различить детали, то модель заменяя на упрощенную, с целью экономии ресурсов, на которой не прорисованы мелкие детали, например, одежды. Иногда бывают казусы, например на персонаже черный плащ, а на LOD-е — красный. Или он отобразился вблизи.
  • Система спрайтов движка для визуальных новелл RenPy предусматривает всего две переменные: имя и эмоция. Соответственно, смена одежды производится через смену эмоции.

Ролевые игры

  • Baldur’s Gate — способности многих существ работают за счёт неснимаемых предметов которые «экипированы» на них. Например призываемый меч Морденкайнена невосприимчив к большинству дебаффов. Как же это работает? Так у него в ячейке амулета есть талисман, который и обеспечивает ему иммунитеты.
  • Baldur’s Gate 3 — троп начинается уже в меню создания персонажа. При переключения расы/пола/телосложения игра загружает перед игроком новую модельку героя, а другие модели стоят в очереди, причём они все голые. Это было сделано, чтобы модельки загружались как можно быстрее и игра не тормозила.
  • Cyberpunk 2077 — механика вождения автомобилей по сути основана на лошадке Плотве из третьего Ведьмака. Разработчики просто модифицировали верховую езду и вставили в своё новое творение.
  • Fallout 3 — меметичный вагончик метро, в действительности является NPC в шлеме-кабинке, который быстро бежит к точке назначения когда игрок решает поехать.
  • Fallout: New Vegas — концовка с модульным эпилогом на самом деле не является катсценой. В действительности персонажа игрока после финала телепортирует в закрытую комнату, после чего игра его обездвиживает и фиксирует его угол обзора на экране-занавеске, где и показываются слайды эпилога. Поэтому во время просмотра концовки в углу может внезапно выскочить «Вы делаете глоток из вашей верной фляжки Убежища 13…», ведь с точки зрения игры, у игрока до сих пор идёт геймплей. Но и это не всё: текст слайдов во время всего этого озвучивает специальный NPC «Рон-рассказчик», который стоит за этой самой занавеской — его даже можно увидеть, если поиграться с консольными командами и дать себе свободу действий. Зачем нужны были все эти ухищрения? Да просто реальные катсцены на движке делать было слишком затратно.
  • Все игры на движках семейства NetImmerse, начиная с Oblivion (собственно Oblivion, Skyrim, Fallout 3, New Vegas и 4, Starfield) — ассортимент продавцов хранится в запрятанных под текстурами сундуках, куда и откуда переносятся продаваемые и покупаемые предметы. Делается это как минимум для того, чтобы у игроков не было возможности залутать товары с инвентаря убитого NPC, однако при использовании читов или багов игроки могут выйти за пределы игрового мира и добраться до содержимого их тайника.
  • The Lord of the Rings Online — согласно движку, лошади были штанами героев, которые они надевали.
  • Titan Quest — движок игры не предусматривал задержки между триггером и действием. Но нашлась лазейка — длительность анимации между ними. Тестер додумался расставить по уровням невидимых белок, с помощью которых удавалось организовать костыль таймера.
  • World of Warcraft — а вот тут уже армия невидимых кроликов-заклинателей. Например, лазерные турели из рейда «Осада Огриммара» — это они.

Песочницы

  • Sid Meier’s Pirates! — ГГ должен раз за разом побеждать одного и того же барона Раймондо, чтобы получать новые куски карты с сараем, где скрывается очередной похищенный бароном родственник. Разработчики честно признавались, что времени доделать разных злодеев не было, так что, кроме финального босса маркиза Монтальбана, сражаться нужно будет только с Раймондо. То ли десятерняшки, то ли всякий раз ГГ его отпускает, чтобы на живца выловить следующий кусок карты — в игре не объясняется.
    • На тактической карте сделать дующий с разных сторон ветер сумели. А на глобальной оставили строго западный, пусть и с локальными штормами — так что плыть с востока на запад не самое приятное дело.
  • Terraria — после убийства Голема, в Освящении по ночам будут спавниться призматические златоглазки. Если убить эту букашку, то появится босс — Императрица Света. И чтобы враги случайно не убили златоглазку, а Императрица не появилась, когда игрок не готов к этому, разработчики сделали простое решение — пусть эту букашку и можно поймать сачком как других мирных мобов, игровой движок классифицирует её как врага, поэтому другие монстры не могут причинить ей вред. Также при переходе в хардмод, в подземном грибном биоме могут заспавниться трюфельные черви, на которых можно поймать Герцога Рыброна. Они спавнятся относительно редко и уползают прочь, если игрок слишком долго стоит рядом с ними, поэтому они тоже считаются враждебными мобами — чтобы враги не убили червя, если игрок хочет его поймать.

Экшены

  • Blood — знаменитый уровень на поезде Phantom Express. Движок Build поддерживает движение секторов, но строго от точки А до точки В, а не бесконечное движение в никуда. Размер карты тоже ограничен. Как выкрутились? Поставили поезд в кювет с текстурами железнодорожных путей и травянистых склонов, и запустили на кювете «эффект конвейера», чтобы полы с текстурами двигались навстречу неподвижному поезду.
  • Тоже Blood, но не только, еще Shadow Warrior Classic: прозрачно-портальная геометрия. Движок Build не позволяет сделать одну комнату над другой с дырой в полу, так, чтобы было видно обе комнаты. Не позволяет он сделать и открытую с одной стороны этажерку с платформами друг над другом. Как выкрутились? А каждый ярус делали в отдельной части карты, а потом соединяли их прозрачными порталами вместо пола и потолка, так, чтобы казалось, что эти комнаты друг над другом вертикально и соединены пустым пространством.
    • Во всех играх на Build (двух вышеперечисленных, плюс Duke Nukem 3D, Redneck Rampage, NAM и прочих) есть также непрозрачно-портальная геометрия, и это такой же грязный хак. Отличие от прозрачно-портальной ровно одно: порталы непрозрачны, то есть нельзя видеть одновременно обе комнаты. Их разделяет что-то непрозрачное, например, лифт, вода или канализационный колодец, в который нельзя заглянуть, потому что угол наклона головы в любой билдовской игре не может быть выше 70 градусов вверх или вниз. Когда вы ныряете в воду или падаете в колодец в одной из этих игр, скорее всего, вы перемещаетесь совсем не вниз по Z-координате, а на другой край карты!
  • Counter-Strike: Global Offensive — Магнару Дженсену поручили приделать ручки к трансформаторной будки, но модели ручки не оказалось. Чтобы никого не беспокоить, он додумался засунуть в будку модель кастрюли так, чтобы ее ручки в нужных местах выпирали как дверные.

Хорроры

  • Outlast — вышеупомянутый трюк с безголовой моделью протагониста привёл к бафосу-нежданчику: для специфических катсцен в случае смерти, где Майлз лишается головы, а его тело попадает в кадр, создатели подготовили хорошо прорисованную обезглавленную модель — и эта же модель используется в игре с самого начала как стандартная. Получается, в этой игре мы управляем безголовым журналистом?

Платформеры

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