Офигенно находчивые разработчики

Материал из Posmotreli
Перейти к навигации Перейти к поиску
« Ошибка: робот погибает при попадании в него гранаты (именно от попадания, а не от взрыва) Д - дизайнер, П - программист.

Д: программисты всё сломали! почему так получается?!
П: естественно так получается! потому, что у гранаты масса 100 кг! зачем вы это сделали?
Д: да?! а чтобы граната в воде тонула!
П: а почему она с нормальной массой не тонет?
Д: а потому что у воды плотность большая! (прим.: больше, чем у ртути)
П: а почему плотность такая большая?!
Д: а чтобы ящики деревянные плавали!
П: а почему они иначе не плавают?!
Д: а потому что у них масса 50 кг!
П: а зачем такая масса?!
Д: а иначе они некрасиво разваливаются!

»
— bash.im
Находчивость в Fallout 3:
программеры не предусмотрели в игре существование транспорта;
дизайнеры выкрутились, создав броню, играющую роль транспорта

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

Например:

Конкретные шедевры[править]

Канон[править]

« До сих пор помню, каким неповоротливым был редактор Neverwinter. Геймдизайнерам было трудно с ним управляться, когда приходилось писать уникальные скрипты для сцен, — а такое нужно было делать регулярно. Например, в Neverwinter Nights скрипты должны быть привязаны к объектам. Поэтому нам приходилось прописывать логику некоторых NPC в коде факела, который висел на стене в их домах. »
— Конрад Томашкевич, геймдиректор CDProjekt Red
  • Force 21 — прямо как в анекдоте! Камера, показывающая поле боя, в игре являлась объектом, который уничтожался при случайном попадании под авиаудар, артобстрел или что помощнее, и переставал двигаться, и чтобы этого не происходило камере дали много брони и жизни.
  • Star Wars: Knights of the Old Republic — сияние Светового меча состоит из 3-х (или 6-ти если игнорировать симметрию) полупрозрачных текстур соединённыx звездочкой. При установке серебряного кристалла превращается в Спецдефекты.
    • Аналогично световые мечи построены в The Old Republic.
    • Star Wars: Knights of the Old Republic II: The Sith Lords — в начале игры диалог с сокомандником, который упоминает Ревана, ГГ первой части, как женщину. Можно согласиться или спросить, где головой стукнулся. Нужно, чтобы игрок мог задать пол Ревана.
  • Neverwinter Nights — повсеместно. Летающий меч? Это невидимка с мечом в руках. Маленькое грозовое облачко? Тот же невидимка с циклическим эффектом от заклинания «Приговор»…
  • «Механоиды» — когда глайдер механоида уничтожают, его самого отвозят в базу и там он получает новый глайдер. Однако на самом деле респаун ботов не зависит от сдачи механоидов, и можно возить в трюме «клонов» с одинаковым именем и разными рейтингами.
    • Разработчики не стали делать урон от падения и столкновений, а вместо этого поставили на дно смертельных ям объекты типа областей высокой радиации. В результате во время падения в разлом можно увидеть мигающее предупреждение «неизвестная опасность»…
      • Таким же манером — аномалиями KILL с 10000 урона в секунду — ограничили сектор Скал. Автора ваншотнуло под предупреждением об опасной температуре без всяких внешних признаков аномалии (даже лава убивает медленнее). В ранних багованных версиях (по крайней мере, в 1.01) они в секторе отсутствовали. Да и в одном месте (между сырьевой базой и зарядной площадкой) KILL отсутствует, и можно доехать до границы карты и сдохнуть там.
  • «Механоиды 2: война кланов». Здесь добавили контур в сектор Скал, разломы в Арктике затопили, а сектор Вулканов убрали по сюжету. По сюжету же возникла необходимость честно отслеживать колобков, и исчезли чудеса респауна. Однако, появился другой шедевр: болотная тварь под именем Наутилус — на самом деле невидимая грузовая платформа, летающая под картой. Если пальнуть на его сигнал из чего-нибудь с большим радиусом сплеша или бросить мину, он начнёт преследовать игрока и ругаться как обычный злой механоид. Так и будут подписаны реплики: «Наутилус: …». А если заморочаться и убить эту платформу, из неё выпадет механоид по имени Наутилус с рейтингом 0.
    • Защитные турели вокруг строений предупредительный выстрел теперь делают стазисом. Поэтому у них прямо в дуле можно увидеть маленькую модельку глайдерной стазис-пушки. Причём она каким-то образом перемещается по внутренней стенке. Те же турели если не могут уничтожить глайдер за определённое количество выстрелов (например, из-за собственного стазиса), используют специальный с 10000 урона. И всё бы бы хорошо, но звук у усиленного выстрела почему-то другой, то есть, там уже три орудия, а нормально нарисовано только одно.
    • Надо сказать что спасатели — специальные дроны, которые и подбирают долгое время игнорируемых собратьями механоидов чтобы доставить их в строения на респаун, тоже могли бы быть отнесены сюда, если бы не железное обоснование и сюжетное присутствие ещё в первой части.
    • На подземном заводе, куда игрок приходит в финале квеста о поисках Супера, лежит механоид пятого поколения. При первой загрузке локации он появляется в глайдере и немедленно получает 100000 урона.
  • Warframe — варфрейм Гидроид может превращаться в лужу, становясь неуязвимым и затягивая в такое же состояние противников для временной нейтрализации. Однако, в центре лужи находится маленькая невидимая моделька Гидроида, которая иногда оставалась такой после выхода из способности. Ну и плюс обидно, что таким образом нельзя обойти лазерное заграждение: технически лучи не касаются воды на полу, но при контакте с моделькой на середине лужи тревога срабатывает.
    • Забавная инверсия: варфрейм Висп не ходит как все, а парит низко над землёй, и из-за этого она действительно не могла активировать нажимные плиты на полу в башнях Орокин. Теперь, впрочем, может, и наверняка благодаря этому тропу.
    • Недавно в игру ввели космические сражения, в которых гениально обошли проблему огромных локаций, от которой страдают космосимы по определению. Дело в том, что здесь можно не только летать кораблём, но выходить в космос с одним только арчвингом и даже брать им вражеский корабль на абордаж, а враги соответственно могут брать игроков. Но на самом деле модели кораблей внутри пустые и крошечные, как и вся локация, а вот интерьеры имеют нормальный размер и находятся за пределами космического поля боя. Соответственно, окна технически не окна, а экраны (и снаружи вообще неразличимы). Выход в открытый космос осуществляется телепортацией модельки через шлюз и её скукоживанием, а десантные капсулы врагов, соответственно, головорезов внутри не содержат, и игра просто начинает спавнить их где надо.
    • Что делать если из-за повышения сложности путём повышения характеристик врагов умножение урона при нападении со спины на определённом этапе перестаёт давать ваншот? Ввести отдельный модификатор, который увеличивает урон добивания до нужных значений, конечно же. Но ставиться он будет только на один вид оружия, которое иначе никто не станет использовать. Ах да, ещё можно слепить врагов пачками и добивать так, причём даже в лицо. Главное — выбить этот проклятый модификатор.
  • Ex Machina — хотя здесь есть специальная кнопка для телепортации машины из безвыходного положения, при опрокидывании её крутит самым нереалистичным образом, лишь бы приземлилась на колёса.
  • FIFA 94 — получение футболистом жёлтой карточки здесь было реализовано через подбегание судьи к нарушителю, а он в свою очередь мог от него вполне результативно убегать.
  • Royal Quest — многие игроки начисто игнорируют квесты и качаются, уничтожая собранные толпы мобов (то есть паровозят). Выпавшему луту внимание не уделяется, поэтому локации зачастую становятся загажены предметами, которые может подобрать только выбивший их игрок. И здесь в дело вступают росинки! Это мобы первого уровня, которые подбирают любой выпавший лут.
  • World of Tanks — в игре одновременно действуют как минимум три разных значения земной гравитации: своё для падающей с обрыва техники, своё для танковых снарядов, которые летят почти прямо, и своё для артиллерийских снарядов, которые из-за этого летят в стиле «поросята на парашютиках».
    • Когда разработчики реализовали переворачивание танков вверх тормашками, они столкнулись с тем, что при действующих в игре параметрах техники и физических константах перевороты происходят крайне часто, и это делает подвижную игру некомфортной, если вообще возможной. Проблема была решена «малой кровью»: центр тяжести каждого танка был перемещен вниз настолько, что стал болтаться где-то глубоко под земной поверхностью. Перевернуться теперь стало гораздо труднее.
  • Dwarf Fortress — урон от падения моделируется «бросанием» в упавшее существо куска материала, из которого состоит пол (или стена, если полёт был горизонтален). В итоге яма с деревянным полом будет куда менее смертельна, чем с золотым или платиновым, а падение в Аду на пол из сверхплотного слэйда с трёх-четырёх этажей буквально размажет бедолагу по полу. Получилась, конечно, чушь, а не физика, но в находчивости не отказать — вместо твёрдости и плотности отделался одним параметром.
  • GTA — в игре десятки видов машин, но для экономии памяти чаще всего на дороге встречаются машины той же самой модели, на которой едет игрок.
    • Это в какой части? В тройке и последующих играх серии траффик очень даже разнообразный.
      • Да во всех. Начиная с GTA III и заканчивая GTA IV. Так, например, тот же Infernus в GTA IV днём с огнём не сыщешь, но стоит один такой оседлать — и вот они уже везде маячат на дорогах, при чём не только в Алгонкуине, но и в менее благополучных Олдерни и Дюксе, где при нормальных условиях спорткарам вообще не место.
      • Изящней всего вышло в GTA IV — в игре стандартной моделью для траффика является обыкновенное такси, и в при игре на ПК с малым количеством оперативной памяти автомобильный траффик будет состоять ПОЛНОСТЬЮ из них. Почти как в Нью-Йорке, который и стал основой Либерти-Сити.
  • Overwatch — справедливости ради, пример реально офигенной находчивости. Существуют читерские программы для командных шутеров, нажимающие выстрел при наведении прицела на врага. Ориентируются они на интерфейсные маркеры, например, красный силуэт, и с самой игрой взаимодействуют вполне разрешённым образом — захватывают изображение наподобие программ записи видео. В результате некоторые разработчики начали махать банхаммерами и под раздачу попали те самые записывающие программы, а вместе с ними всевозможные стримеры и прочие генераторы фанатского контента. Однако великие Близзард решили проблему иначе: они сделали означенный красный контур постоянно меняющим цвет. Для глаза это незаметно, а вот программа уже зацепиться не может, или её придётся заставлять реагировать на огромное количество оттенков красного, к тому же, возможно, встречающихся в декорациях.
  • Вангеры — не вполне понятно, баг это или фича злобных разработчиков хардкора девяностых, но побочные генерируемые квесты в игре выглядят так. Заходишь в магазин, покупаешь специальную штуковину, выходишь наружу, получаешь квест от святого Рандомия, если повезёт, делаешь, и купленная штуковина резко поднимается в цене, после чего её нужно довезти и продать. При этом табутаск считается обычным грузом и, сделав квест, можно не получить награды просто потому что он выпал из кузова в перестрелке.
  • Uncharted 2, сцена с поездом — в отличие от игр и фильмов прошлого, движется не пейзаж, а сам поезд, без обмана. Но сам путь состоит из двух гигантских петель(с зеленью и со снегом), чтобы игрок мог в любое время включить триггер и перейти на новый этап
  • Half-Life 2 и эпизоды
    • Как сделать так, чтобы в игре показывалось видео без лагов и затрат на загрузку самого видео? – а давайте сделаем на уровне отдельную комнату, где всё "видео" и происходит, а происходящие будем транслировать на экран! Такой подход, кстати, использовался много где. Например, в Vampire: The Masquerade – Bloodlines.
    • Аликс в 1-м эпизоде дерётся с зомбями в рукопашную. Изначально разработчики хотели прописать ей честные навыки мордобоя. Но прикинув сколько такое поведение персонажа жрёт ресурсов компа... сделали несколько анимаций.
  • В игре «Saboteur» для ZX Spectrum: ниндзя на время застревает в вагончике, и включается анимация пола. Второй вагончик можно было бы обойти стороной, но коридор перекрыт — если начертить уровень, отталкиваясь от этой бронедвери, видно, что вагоны никуда не едут.
    • Та же игра. У «Спектрума» ограничение в два цвета на знакоместо. Как обосновать эти ограничения и оставить игру красочной? Все герои чёрные, а нечёрный цвет — «типа освещение».
      • На Спектруме вообще было довольно много способов устранения конфликта атрибутов.
  • Забавный аналог был в игре Blood. Один из уровней проходил на движущемся поезде, причем игрок мог выскочить наружу и, при удаче, заскочить обратно. Поезд был неподвижен, а «земля» представляла быстро движущуюся транспортерную ленту с невидимыми убивающими стенами по краям.
    • Не получится там запрыгнуть обратно, если выключена неуязвимость — разве что фрагментами. Чтобы Калеб убивался, падая с поезда, пол тоже сделан убивающим. Нельзя спрыгнуть даже с последнего вагона назад. А вот на предыдущем уровне 1-ого эпизода есть участок, где поезда (в меру возможностей движка) ездят «честно» — это то освещенное место в тоннеле впереди, куда можно пробежаться, не садясь на поезд (для этого нужно нажать эмблему у него на носу).
    • Довольно частый механизм (например, AS-HiSpeed в Unreal Tournament).
  • Wing Commander — при выходе из игры выводилась ошибка менеджера памяти. Что сделали разработчики? Правильно — заменили текст ошибки на благодарность за игру! Всё равно баг проявлялся только при выходе…
  • ArmA 2 — как сделать гранатометы РПГ-18 и М-136 одноразовыми? Очень просто: пусть выстрел к ним занимает половину инвентаря (6 ячеек из 12), чтобы игрок не смог взять второй выстрел, не оставшись без патронов (это притом, что выстрел к РПГ-18 или М-136 не должен ВООБЩЕ занимать место в инвентаре, так как забит в тубу на заводе без возможности извлечения и замены)! Притом, что более мощные выстрелы к гранатометам РПГ-7 и SMAW занимают 2 или 3 ячейки, и выстрелов можно взять на те же ячейки, соответственно, 3 или 2, а то и больше ценой патронов к автомату! Притом этот способ не делает гранатомет одноразовым — его можно зарядить новым выстрелом, а не только взять новый заряженный гранатомет. Да и даже можно плюнуть, и взять ВТОРОЙ выстрел, а для самообороны пистолет. Зачем это надо? А зачем эта муха вообще надо?
    • Притом, что сделать все правильно вообще проще пареной репы (открыл Америку на 15 году выхода игры и на волне вдруг вспыхнувшего интереса спустя 12 лет после активного ею увлечения, называется): 1. В конфиге гранатомета убираем анимацию перезарядки (ставим пусто вместо названия анимации). Этап не обязателен. 2. В конфиге магазина ставим 0 ячеек на выстрел. 3. В конфиге гранатомета ставим время перезарядки… Любое число секунд, которое вы точно не согласитесь ждать перезарядки несчастной «Мухи». Например, 86400. Все, после выстрела сколько угодно жмем на перезарядку, и ничего, остается только выбросить тубу и пойти искать новую. При этом с трупа или из ящика гранатомет берется уже заряженным.
    • Как сделать так, чтобы ИИ мог стрелять ракетами из орудий танка Т-90 и БМП-3? Вынести ракеты в отдельную пусковую установку (ИИ моментально полюбил «дуплет» снарядом и ракетой), и при этом сделаем у пусковой установки перезарядку полторы минуты и уберем функцию захвата цели — ракетой приходится стрелять на глаз причем почему-то по квазибаллистической траектории. Если сделать ракету выстрелом к орудию (для этого нужно в конфиге просто прописать «магазин» ракет в перечень магазинов орудия, делается за две минуты, из них полторы на конвертацию файлов), то стрелять ракетами сможет только игрок, зато все будет правильно.
    • Как сделать симуляцию войны на площади 15 квадратных километров, притом, что численность войск ограничена 144 бойцами для каждой стороны (танк при этом считается не как танк, а как три танкиста)? Да просто тупо перенести в тактический шутер классические элементы «стратегий»: в поле строятся казармы, генерирующие пехоту, танковые заводы, ремонтные базы…. Деревня захватывается, когда на ее территорию заходит один вражеский солдат и тут же идет дальше, а победа достигается уничтожением вражеской базы.
    • Мы сделали карту 15*15 км, но населить ее не можем? Легко, ставим зону, при выходе из которой игрока убивает снайпер.
    • Танки имеют много хитов. Убиваются 600 выстрелами из пулемета или открытым контактом с зенитной установкой.
  • Crossout — в один момент перед разработчиками встала проблема возможности развития машиной запредельных скоростей. Ответ был дёшев и сердит: при превышении некоторого порога появляется урон от столкновений с землёй, ваншотящий любую машину (от столкновений с другими машинами тоже ваншотит). Почему не сделать столкновения с землёй честно? Помимо того что это больше расчётов, в игре и без того довольно суровая спираль смерти, а куча тупейших способов умереть игроков, которые и так опрокидываются на каждом шагу, точно не обрадует.
  • Fallout: Tactics — квестовая «разломанная силовая броня», которая должна сниматься с трупов после убиения врагов, заботливо уложена им в карманы. С флагом «невозможно украсть». Кстати, «челюсти волка» и прочие подобные орудия атаки — просто предмет-оружие данные соответствующим противникам в «руки». С флагами «невозможно уронить», «невозможно подобрать с трупа».
    • Там же — как сделать робота-камикадзе? Дать ему рукопашное оружие со свойствами «сплэш-дамаг в радиусе N метров» и «уничтожает носителя при использовании». Соответствующая реакция захардкожена в коде движка игры.
    • В первых патчах получалось снять и положить в инвентарть танковую пушку.
  • Fallout 3 и New Vegas — присутствующие на локации трупы реализуются через живого персонажа которого ваншотает сверхуроном и опционально взрывом головы, в момент когда игрок входит на локацию. В некоторых случаях, если локация мелкая а будущий труп сразу видно, процесс можно увидеть лично. Или хоть хлопок головы услышать.
  • Fallout 4 — компаньоны первым делом, входя в помещение, приземляют свой зад на ближайшую скамью, чтобы не путались в вэйпоинтах.
  • Jagged Alliance 2 — Примерно так же здесь реализуется оружие нестандартных противников, т.е неотбираемое и скрытое оружие, вроде челюстей рысей или жуков. Но вот то что пушка танка реализуется также, игроков в свое время изрядно веселило, особенно когда такие пушки и челюсти, багоюзом научились отбирать у врагов.
  • The Elders Scroll 3: Morrowind — Анимация делается по принципу: модель ставится в нужную позу, а после на неё навешиваются множители роста и толщины от расы. Большую часть времени все выглядит нормально, но время от времени наблюдаются cпецдефекты (особенно у орков и альтмеров) в духе «круглое стало овальным» или когда персонаж смотрит вверх его голова становится… Но делать все расы через одну модель — это реально надо было додуматься!
    • Как сделать ощущение очень большого размера острова, избавиться от эффекта обрезки при дальности прорисовки и просто добавить шарма игре? Ответ прост — ТУМАН!
    • В той же серии — как по-ленивому сделать манекены для брони? Это просто парализованные стражники с другой текстурой. Сцуко, до слёз!
    • Курицы, замечающие игрока в стелсе из той же серии. Явно делались на основе базового класса «NPC».
  • For Honor — крипы в режимах, где они есть, это такие недоигроки. На них можно применить приёмы если не все, то многие, в том числе если вам нужна была другая цель. Крипы даже могут захватывать точки, просто они сами туда не заходят.
  • Cradle — как заставить игроков сопереживать игровому персонажу, не впав в зловещую долину и не истратив уйму денег на суперреалистичный движок и модель? Очень просто: Ида — обездвиженный андроид, но на лице у нее особые очки, на которые записаны движения реальных человеческих глаз! Как ни странно, определенный эффект вкупе с живой озвучкой имеет.
  • Как создать реалтаймовую гонку для инженерного калькулятора «Электроника»? Проблема в том, что нажатие любой клавиши останавливало процесс вычислений и, соответственно, игры. Разработчики ухитрились приспособить под руль…переключатель радианы-грады-градусы (лево-прямо-право)! Аппаратный рычажок влиял на вычисление тригонометрии в реалтайме, не прерывая процесс. См. А. Г. Гайштут «Калькулятор — твой помощник и соперник в играх»
  • «Серп и Молот» — игровой движок пошаговой стратегии Silent Storm не был приспособлен к введению элементов квеста, и разработчикам пришлось ухищряться. Так, движок в принципе не предусматривает «бессмертных» персонажей — умереть может каждый. Но не в СиМ: нельзя просто взять и перебить пограничников на линии демаркации, и МакЛеода тоже по сюжету убивать не положено. Решение: соответствующие NPC имеют здоровье в 10000 поинтов, и при каждом попадании в них получают лечение на те же 10000. А заодно пусть у них будет неприлично высокое значение атаки, чтобы убивали атаковавшего их героя с одного выстрела. Есть задания, требующие ожидания? Пусть у героя будет возможность поспать. По сюжету Зигфрида берут в плен и связывают ему руки? Сымитировано применением травмы руки. Да что уж там, если в баре несколько раз заказать крепкий алкоголь, персонаж свалится замертво (именно так: анимация опьянения применена от смерти).
  • Вивисектор: Зверь Внутри — прекрасный пример тропа представляют собой мины и бомба чёрной пантеры. Во время активации оных, игра создаёт взрыв на координатах игрока. И продолжает создавать пока игрок не умрёт.
  • WarCraft III — при создании модельки дриады дизайнеры использовали текстуру, гм, передней части торса дважды: на собственно груди и на спине юнита, то есть у дриады две пары молочных желез (вторая скрыта под плащом)[1].
  • При создании спектрумовского «Чёрного Ворона» (римейка RTS Warcraft) авто столкнулся с проблемой проверки нахождения юнита в радиусе атаки другого. Лобовой вариант — постоянная проверка каждого с каждым вражеским, при значительном количестве юнитов тормозил. Решение оказалось элегантным — движущиеся юниты сами проверяли не появился ли враг на краю области атаки и давали тому сигнал, что их пора убивать.
  • Quake 1. Игрок выбирал сложность входом в одну из трёх четырех стартовых дверей. В чём троп? По сюжету, чтобы сразиться с финальным боссом, игрок должен по очереди пройти четыре игровых эпизода, собрав четыре руны. Локация с выбором уровней сложности и эпизодов позволяла игроку выбирать уровень сложности между эпизодами.
  • Quake III Arena. Магическое число 0x5f3759df найденое в исходниках игры. Непонятно как разработчики его вычислили, но на нем держался алгоритм с очень быстрым способом подсчета квадратного корня, который применялся при расчете углов отражения и прочих визуальных еффектах.
  • Grand Theft Auto: San Andreas — как разработчики реализовали зеркало в комнате Сиджея в 2004 году? Все гениально просто: зеркало — лишь прозрачная преграда, по ту сторону которой выстроена точно такая же комната, в которой в момент входа игрока генерируется его копия, которая отзеркаливает его перемещения.
    • Абсолютно так же реализовано в Duke Nukem 3D в 1996 году. Вероятно, это было общей практикой.
  • Hogs of war — можно воровать оружие у противников, а что делать если у не умеющего ходить ИИ-гранатометчика стащили единственное оружие, которым он умеет пользоваться? Нужно чтобы сброс оружия с парашютом происходил ему прямо на голову.
  • «Месть якудза» — старое ядро движка не позволяло реализовать даже нормальное меню, но на новое переходить не было ни сил, ни желания. В итоге загрузчик попросту нарисовали отдельно и связали с exe-файлом игры через txt.-файлик. Здесь же легко и просто, но совсем неэстетично решили проблему хронического и неустранимого краша игры спустя минут 30 непрерывной игры из-за переполнения памяти — попросту любая загрузка сохранения или нового уровня перезапускает игру (впрочем, в релизе этот стыд все же убрали и решили проблему).
    • Но изначально игра была скорее положительным тропом. Анимация просчитывалась исходя из соотношения скоростей игрока и поверхности, поэтому герой останавливался при столкновении со стеной или прохожий при столкновении отходил от него, а также анимация рук, хотя и единственная, позволила корректно открывать двери (а не головой) и опираться на стену при столкновении.
  • Hades — в ранних версиях можно было спокойно забить любого моба в станлоке потому что глушит любая тычка. Когда из этого закономерно выросла унылая непобедимость, разработчики не добавили медленное оружие и не замедлили существующее, не сделали оглушение вероятностью, а просто разделили хитбары на броню, которая не глушится вообще, и здоровье, которое станлочится по-прежнему. Таким образом, мобы забиваются точно как раньше, только побегать вокруг них надо чуть дольше.
  • Train simulator (старый от Microsoft и новый от Dovetail Games, который Railworks и который является продуктом не выпущенного MSTS-2) — несколько эпичнейших примеров, считаемых в моддерских сообществах полновесными багами, мешающими нормальной реализации важных фич:
    • Компрессор. Если игрок потратит весь запас сжатого воздуха в питающей магистрали, поезд останется без пневматических тормозов. Что делать, чтобы не крашилась игра, не умеющая считать подобный режим работы тормоза из-за деления на ноль? Делаем компрессоры неотключаемыми — компрессор пополняет запас воздуха даже если ему прописан механический привод от дизеля, а сам дизель не запущен. В Railworks/Train simulator можно выставить компрессору производительность 0 — но проблема в том, что больше пополнить запасы нечем, а менять производительность скриптом возможности нет. Добавить «потребитель» воздуха, съедающий выработанные компрессором запасы, тоже увы, не получится. Остаётся городить костыли, в одном случае показывающие на манометре истинное давление в питающей магистрали, а в остальных расчётное и блокирующие работу пневматических потребителей (воздуха же нет).
    • Автосцепка. В симуляторе от Microsoft честно считалась прочность сцепок на разрыв и их можно было порвать. В Railworks сцепка может быть любой прочности — они сделаны из адамантия и хилая винтовая стяжка выдерживает поезда любого веса.
    • Чтобы не считать физику вагонов, которые не участвуют в AI-траффике и не прицеплены к локомотиву игрока, в игре нельзя сменить состав в рамках одного сценария, а у отцепляемых вагонов моментально задействуется тормоз, что делает невозможным создание сортировочных горок и маневры без воздуха.
    • В Microsoft Train simulator вагоны и локомотивы могли застревать в кривых из-за слишком большого излома сцепок или маленького радиуса кривой. В Railworks радиус кривых вообще никак не влияет на сопротивление движению и вписывание.
    • У тепловозов есть запасы песка, влияющие на вес локомотива, однако, при применении песочниц, песок не расходуется.
    • Сцепной вес локомотивов (и развиваемое ими тяговое усилие) не меняются с расходом запасов воды, песка и топлива. Их вес не учитывается в рассчётах тяги и торможения, хоть этот вес и отображается в свойствах (и через него можно сделать указатель уровня топлива в кабине тепловоза, подсчитав запасы относительно массы нетто).
  • Terraria — если убить призматическую златоглазку, то появится босс — Императрица Света. А чтобы призматическую златоглазку случайно не зашибли враги, свалив Императрицу на голову игрока, разработчики сделали простое решение — с точки зрения игровой механики, призматическая златоглазка считается врагом, так что враждебные мобы не могут нанести ей урон.
    • Босс Стена Плоти обитает в аду, где ожидаемо есть лава в огромных количествах, в процессе боя неотвратимо надвигаясь на игрока и таким образом принудительно меняя арену. Поэтому чтобы не заставлять игроков перекапывать весь ад для предотвращения случайной потери лута в лаве, этот лут спавнится внутри каменной коробки где-то рядом с местом смерти босса. Причём если Стена умрёт рядом с краем карты, коробка может оказаться за ней.
  • Sid Meier’s Pirates! — восхитительно идиотично герой раз за разом добывает куски карты, на которой сокрыто место заточения его очередного родственника, у одного и того же барона Раймондо (у разработчиков не было времени на проработку новых злодеев, вот они и оставили один сценарий на все случаи жизни). То ли уже в XVI веке изобрели технологии клонирования, то ли герой раз за разом отпускает злодея — мол, пускай побегает, еще кусок добудет. Слава богу, хотя бы финального злодея надо побеждать всего один раз и навсегда.
    • Как смоделировать ветер? А никак, на всем Карибском море без перемен — зимой и летом ветер ТОЛЬКО западный, так что из, скажем, Веракруса на Мартинику плыть легко и приятно, а вот обратно долго и тягомотно. Правда, в тактических битвах ветер все же всякий раз дует с разного направления.
  • Bloodborne — почему-то действия мобов завязали на анимации, поэтому, например, каст безумия Зимними Фонарями при зрительном контакте игрока с ними технически выполняется отдельным невидимым мобом у них на голове, ведь у Фонаря ещё и собственные атаки есть.
  • Sekiro: Shadows Die Twice — поскольку здесь парирование больше не отдельная долгая и пафосная анимация, а просто первая секунда блока, игроки вместо заучивания атак врагов начали просто закликивать блок на авось. Ответ — сокращение времени парирования после двух кликов подряд вплоть до полного обнуления к пятому.
  • Elden Ring — мелкие кровавые собаки (а кто же ещё?) получили гигантский урон с каждой атаки из-за глюка, подобно кабанам из Готики и медведям из WoW. Выясняя причины, игроки обнаружили, что для экономии памяти собаки разного размера используют один и тот же файл анимаций, но, поскольку к анимациям привязаны параметры атак, включая хитбоксы, им дали сразу два, а атака от неправильной собаки отменялась в момент попадания по игроку. Глюк же вызывало то, что отмена атаки большой собаки также заставляла игру забыть, что правильный хитбокс вас только что ударил, и больше урон наносить не нужно.
    • В игру добавили буквальную нубскую пещеру, но сделали необязательной, поместив её в какую-то яму сбоку от основного пути. А когда туториал закономерно никто не заметил, добавили всплывающее сообщение «прыгни вон в ту яму чтобы начать обучение».
    • Из-за бага вторую фазу Малении можно было пропустить, убив первую критическим ударом. Вместо того, чтобы фиксить баг, разработчики запретили Малении умирать от критических ударов.
    • И снова Маления и на этот раз её «танец водяной птицы», который помимо настоящего хитбокса на мече имеет дополнительный, очень часто (гораздо чаще, чем босс машет мечом) бьющий по большому кругу, только чтобы ловить эксплойтящих другой костыль — знаменитый перекат с неуязвимостью.
    • Одной из проблем игр жанростудии является необходимость забегов к некоторым боссам от чекпоинтов, из-за которых можно прийти уже побитым встречными мобами или вовсе помереть по дороге. Здесь её решили с помощью добавления второго вида чекпоинтов, которые позволяют игроку респавниться у себя если он умер в определённой области (из которой в открытом мире можно выйти в процессе боя и не заметить), но больше ничего не умеют. Теперь в игре есть удобные костры рядом, неудобные далеко, и ещё эти клинья. И почему, спрашивается, нельзя заменить все удобные костры клиньями или наоборот?
    • Нерф статус-эффектов с помощью складывающегося по сложной формуле (пяти разным формулам, если точнее) бонуса к резисту, даваемого за их получение. Как и в Sekiro, разработчики явно хотели, чтобы игрок не понимал, почему его тактика не работает и второе отравление не хочет накладываться на этот вагон хитпоинтов.
  • Battlefield — лошадь считается бронетехникой и её можно чинить гаечным ключом.
    • Battlefield 2042 — в этот раз… пингвины считаются бронетехникой и их можно чинить газовой горелкой.
  • Stardew Valley — рандом в некоторых событиях завязан на то, сколько шагов игрок сделал в предыдущий игровой день.

Моддеры[править]

  • Пользовательские карты для Warcraft 3 в золотое время середины нулевых этим тропом жили и дышали. Если автор правки правильно помнит (десять лет прошло, как-никак), то…
    • Как сделать возможность входить в здания? Правильно, создать крошечного, неуязвимого и невидимого юнита с минимальным реальным размером, но текстурой огромного дома. И облепить здание по периметру, кроме дверей, невидимыми объектами «блокиратор пути», чтобы зайти через стены нельзя было.
    • Как сделать так, чтобы здание генерировало войска автоматически, пока стоит (именно такой была механика спавна крипов в древнейших AoS-картах, предках DotA)? Нарисовать перед зданием скриптовую область, и прописать условие «если объект Х стоит, то раз в Y секунд создавать Z войск».
    • Через скрипты прописывался и выбор героя на картах типа «Арена» (Angel Arena, например, в компьютерных клубах родного города автора правки была едва ли не популярней Доты). Для игрока это выглядело обычно так: на момент начала игры каждый игрок контролирует по юниту для выбора (обычно это были Светлячки Ночных эльфов, не наносящие урона). Перед ним — локация, в которой стоят все доступные герои. Подводим светлячка к герою — герой появляется на основной карте. На самом деле скрипт работал так: при приближении к герою срабатывает триггер => создается определенный герой для данного игрока в скриптовой зоне => светлячок получает 999999 урона и уничтожается.
    • Другим вариантом выбора героя, и не только для арен, но и для первой Доты, был закуп героя в таверне. Механика игры требует, чтобы для активации таверны рядом был принадлежащий игроку юнит. Вот и создавали для каждого игрока рядом с тавернами юнита, неспособного к движению и атаке, с текстурой Круга Силы или Духов-целителей.
    • Как автор популярной в конце 2010-ых карты Hero of the Empire смог реализовать меч Ареса, позволяющий игнорировать уклонение? Даровал обладателю 100%-ный шанс критануть с множителем 1 (по игровой механике у каждого удара может быть только один исход). Впрочем, получилось круто, но непрактично: такая особенность мешает другим пассивкам вида «каждая атака имеет Х%-ный шанс вызвать эффект», а противников с высоким уклонением встречается мало, поэтому опытные игроки этот меч не покупают.
    • Виртуозное владение скриптами вкупе с этим тропом позволяло создавать даже шутеры, космосимы и спортивные симуляторы на движке Варкрафта, но автор правки их не препарировал, пусть кто-то другой напишет.
  • У создателей карт для Heroes 4 во время их краткого расцвета не было таких широких возможностей, как у варкрафтеров, но народ выкручивался.
    • По сюжету герой разговаривает с ангелом, который потом улетает. Можно было, конечно, реализовать это через квестовый «домик», но это скучно. В итоге ангел сидит за заборчиком (чтобы на него нельзя было напасть), а после окончания диалога и сдачи квеста… сражается с 1000 черных драконов (после «скриптовых» атак монстры, которых на карте не было до срабатывания скрипта, там не появляются). Битвы других игроков не видны, так что все, что видит геймер — ангел исчез. Улетел, ага. Прямо в рай.
  • Doom — все багофичи как каноничного движка, так и многих портов.
    • Эпик: «кукла Вуду». Дело в том, что Ромеро по инерции после Wolf3d сделал героя как полностью отдельную сущность в коде, а не как обычного моба, к которому прикрутили управление и убрали его спрайт из его собственного рендера. Поэтому, если на карте присутствует более одного старта, скажем, игрока № 1, то на месте лишних появляются «куклы Вуду». Наносимый им урон отражается на игроке (например, популярный способ мгновенно его убить — это телепортировать его в его куклу, чтобы он сам себя телефрагнул). Кроме того, поскольку здоровье в переменных состояния одно, а в кукле другое — можно загнать игрока в состояние «зомби», когда он с нулевым здоровьем ходит «призраком» по уровню и монстры его не замечают (а он может открывать двери и нажимать рубильники на радость товарищам).
    • Если полу задан эффект «двигаться к ближайшему полу, который чуть ниже», а соседние полы все выше — пол выберет из них нужный, но прыгнет на требуемую высоту мгновенно. И наоборот! Практически все движения «против шерсти» выполняются мгновенно. Применений как бы не туева хуча — начиная от внезапно ломающихся деревянных мостов и заканчивая весьма неожиданными секретками (вертикальный обзор ограничен, поэтому резкий подъём игрока в какое-нибудь стрёмное помещение ощущается как телепортация, только без звука и вспышки телепортации — помещения снизу было не видно, и вопрос «где и как это я оказался» встаёт весьма остро). Самая жесть — сделав таким образом несколько положений створки ворот и быстро их переключив такими мгновенными подъёмами-спусками, некий предмет статьи заставил Врата Ада довольно эффектно распахнуться навстречу игроку — в смысле, натурально распахнуться, поворотом вокруг петли, а не как в Doom это обычно делается.
    • Self-referenced sector: сектор окружается линиями, у которых обе стороны ссылаются на один сектор. В результате его границы весело исчезают из рендера и можно сделать, например, сектор чуть ниже пола, заполненный текстурой воды, и игрок там реально погрузится по щиколотку. Правда, такая «вода» абсолютно прозрачна и, увы, не затенит нижнюю часть его спрайта. Автор этой правки оборзел настолько, что сделал специального болотного монстра, у которого прямо на спрайт были наложены эффекты воды, и поселил его там без возможности вылезти. Правда, в сетевой игре обман тут же раскрывался…
    • Закадровая геометрия. Чего только люди не вытворяли, используя эффекты секторов не по назначению! Скажем, за стеной поднимается невидимая лестница, а самые верхние её ступени заодно являются колоннами, стремительно вздымающимися в небо перед носом игрока. А поскольку тэг нужно задавать только для первой ступени, колонны можно спускать с небес на землю независимо. Ммммм…
    • Мосты в Doom Legacy. Когда объекты перестали быть колоннами бесконечной высоты, моддеры тут же сделали «блин», по которому можно ходить. А поскольку при помощи невысокой middle texture даже изначально вполне можно было делать «решётки» (только вот игрок через них проваливался — Ромеро невовремя заболел звёздной болезнью и даже не почесался физику им сделать), в сочетании с «блином» получились настоящие мосты.
  • Mount & Blade — так как моды являются едва ли не большей частью M&B, чем сама игра, и пытаются ввести самые разные вещи, но возможности редактирования сильно ограничены, приходилось выдумывать. Например, первую систему бегства солдат с поля боя реализовали еще в «Истории Героя», в моде Р13, при этом «сбежавшие» переносились в специальную зону под полем боя, которую автор иронично назвал «тартар» (трусость это грех) и игрок мог туда провалиться. Ну или слоны, с «пилотом» в брюхе или катапульты, где в качестве снаряда использовался юнит (на одной из карт он периодически начинал убегать и убивался оказавшимся рядом воином, или успешно убегал за карту и проваливался в тартар), а также танки и самолеты сделанные на основе коней.
  • S.T.A.L.K.E.R, мод «Альтернатива» — автор сделал несколько девушек, с которыми возможен секс. Как? На экран выводятся при помощи механизма запуска роликов два скриншота из эроге. Проблема в том, что текстура, не считая голой женщины, прозрачна, и через нее можно заметить стоящую напротив девушку, с которой ты, собственно, это самое. Чтобы этого не допустить, одновременно запускается анимация «игроку плохо», от которой экран начинает бешено крутиться, не считая текстуры с голой девушкой
  • Minecraft, «карты на прохождение», с модами и не очень. Как там не извращались…
    • Как заставить зомби медленно брести к игроку с другого края карты и не гореть на солнце? Да очень просто. Построить далеко вверху снежную «линзу», а под дорогой зомби проложить рельсы, по которым едет вагонетка с крестьянином.
    • Как заставить босса применять особые способности, если не знаешь скрипты, но разбираешься в командах? Как два пальца! Комната под ареной босса, в которой аки угорелый бегает NPC и давит на нажимные пластины-активаторы.
    • Как сделать сильно повреждённые декоративные трупы? При помощи «брони» из микроблоков и отсутствующих частей скина. Жаль, с игроками это не прокатывает…
  • Starbound, «кастомные» предметы, вещи с изменённым кодом, работающие даже в немодифицированном мультиплеере.
    • Например, используя стороннюю программу и механику рисования табличек, можно наложить любой спрайт на любой предмет. Гигантские трусы, свисающие с небоскрёба? Почему бы и нет.
    • Так как в игре нет полной невидимости(ник будет виден в любом случае), это заставило «ниндзей» поднапрячь мозги. Но выход был найден: ник, состоящий из одного лишь пробела! А в самой игре можно и команду «/nick» прописать, если хочется.
  • Снова различного рода железнодорожные симуляторы — автор правки опишет только несколько «общепринятых» моддерских финтов, основанных на ущербности игрового ядра популярных представителей жанра, ограничивающих полёт фантазии.
    • Microsoft Train Simulator (MSTS) — движок не умеет проверять занятость путей и все светофоры работают только от проезда через них поездов? Перед поездом игрока движется «призрак» (а то и вполне себе видимый самый обыкновенный локомотив), управляемый сценарным скриптом, задача которого — гасить и зажигать светофоры по пути игрока. Автору правки известен как минимум, один сценарий уже для нового Railworks/Train simulator, где использован тот же приём — это Horseshoe Curve, первый маршрут на новом движке 2012-ого года.
    • Описанный выше пример с компрессором. Компрессор не умеет выключаться? В выключенном состоянии локомотива расчет расхода воздуха берет на себя скрипт, переопределяя значения для доступных органов управления, на манометры выводятся расчётные значения вместо истинных. Потребители, если давление недостаточное, блокируются в выключенном состоянии, звуки привязываются не к реальному компрессору, а к скриптовому. Зато у него даже (если он механический) появляется зависимость производительности от оборотов дизеля.
    • Движок не реализует реальную характеристику тяга-скорость локомотива? Но можно при помощи скрипта уменьшать мощность контроллером, а сам контроллер подменить пользовательским рычагом в кабине. В определенный момент разработчики захотели сделать возможность выключать одну из секций многосекционных локомотивов, и добавили отдельный параметр, который теперь можно крутить, не трогая контроллер.
    • Аналогично с кранами машиниста. Разработчикам известна только система Вестингауза. Но если использовать ее кран машиниста в качестве простого трехходового, скриптом — с натяжкой — можно реализовать любую тормозную систему.
    • Вагоны не поддерживают органов управления. Но можно сделать вагон локомотивом нулевой мощности и добавить ему хотя бы кабину. Так делаются головные вагоны электропоездов, если они не моторные. А еще так можно сделать открываемые в салоне форточки, двери купе, стоп-кран…
    • Train simulator не поддерживает перемещение персонажа на своих двоих. Однако, для локомотива разработчики создали «анимированную камеру», которую предлагают использовать для создания регулируемых сидений. Камеру можно перемещать в локальной системе координат (движущейся вместе с локомотивом) по всем осям, причём она снабжена шикарной упругой «шейной пружиной», прыгающей при тряске и раскачивании поезда. Дальше решение было очевидным — прикрутить к камере полноценный интерфейс управления от кнопок, добавить для изменения координаты анимацию «ходьбы» (для подпрыгивания камеры) и прописать для локомотива массивы координат, в пределах которых можно ходить, и увязать их с дверями и преградами. При помощи этого метода можно даже сделать, с некоторыми условностями, возможность осматривать локомотив снаружи и из смотровой канавы — но автору правки лень описывать, как это сделать, хотя до сих пор не осилил никто.
  • Medieval II: Total War — недавнее открытие офигенно находчивых мододелов. Как реализовать троллей из «Властелина колец»? Вариант 1: «сделать их слонами с большой моделькой пехотинца». Не сработало — слишком много багов, а созданные по этому принципу энты при загрузке боя с собственным участием с вероятностью процентов 50 вызывали вылет на рабочий стол. Вариант 2: «Сделать их пехотинцами» прокатил, но тролли научились лазать по хлипким приставным лестницам и устраивать на стенах массакр. Недавно был найден третий вариант: прописать отряд троллей в качестве «собак», но без «собак», и сделать троллей погонщиками, которых игра считает пехотинцами, но которые не могут лазить по лестницам.

Сетевой фольклор[править]

  • Из пародийной переписки разработчиков игры:
« programming lead: Леша, прицепи к самолетам по две белые полоски.

junior programmer: Готово.

qa engineer: Истребители перестали сбивать. Не могут стрелять.

senior programmer: Полоски закрывают пулеметы. А на них материал, в котором прописана коллизия для пуль. Пули не проходят.

programming lead: Как полоски могут закрывать пулеметы, если полоски нанесены в задней части фюзеляжа?

senior programmer: А у нас у истребителей настоящие пулеметы как раз в задней части фюзеляжа. А в крыльях - фейковые, для вида только, пыщ-пыщ делать. Так исторически сложилось, уже не помню, почему. Теперь долго переделывать, на это вся их баллистика завязана.

programming lead: Зачем полоски коллизят пули? Сними с них коллизию.

3d artist: Я не могу, у нас коллизии захардкожены в текстурах, а других текстур нет. Эту вырезал с Флетчера, самая белая текстура, какую нашел. А у него там броня четыре сантиметра.

programming lead: Подвинь полоски, чтобы не закрывали пулеметы.

historical consultant: Я щас кому-то подвигаю! До миллиметра по историческим фотографиям вымеряли...

programming lead: Боря, придумай какой-нибудь хак. Ситуация безвыходная.

senior programmer: Пропишите пулеметам дамаг 231 вместо 2. Из него ровно 229 уйдет на пробитие полосок, дальше полетят пули с остаточным дамагом 2, как и должно быть.

game designer: Прописал пулеметам дамаг 231

senior programmer: Теперь все должно быть в порядке.

qa lead: После вашего изменения Нью-Мексико вдруг начал нагибать всех, кто к нему приблизится. Нет, не так. Нью-Мексико вдруг начал НАГИБАТЬ КРОВЬ КИШКИ РАСЧЛЕНЕНКА ВСЕХ В МЕЛКИЕ КЛОЧКИ. Мы случайно взяли Нью-Мексико и два раза нагнули геймдизайнеров в товарищеском матче. Нам приятно. Спасибо. Но теперь они тоже просекли фишку, поэтому пора исправить.

game designer: Оказывается, те же самые пулеметы, отскейленные в 10 раз, используются как орудия второстепенного калибра Нью-Мексико. По форме очень похожи, вот моделлеры и решили сэкономить. Дамаг тоже автоматически скейлится, но уже в 1000 раз, пропорционально объему ствола. Так что у нас теперь у Нью-Мексико дамаг 231000 на выстрел второстепенного калибра.

community manager: просьба ускориться нас опять в интернете ткнули носом в этот позор не те полоски мне стыдно за тот отстой что мы делаем аааааааааа

project lead: Извините, что не сразу ответил. Я тут подумал и решил, что проще забанить того неприятного человека.Белые полоски делать не надо, всем отбой. Пойду думать, как бан обосновать.

»


  • И еще одна байка:
« Вертолетный симулятор/тренажер адаптировали для Австралии. Заказчик потребовал добавить стада кенгуру как деталь ландшафта. Исполнитель отнесся халтурно, сделал модель кенгуру и прилепил ее методом copy/paste на логику пехотинца, поменяв только модуль отрисовки. В результате, когда вертолет на приемке прошел над стадом кенгуру, оные рассредоточились, перегруппировались и на втором заходе сбили вертолет из ПЗРК. »

Разное[править]

В советских танковых прицелах 1Г42 для Т-64 и Т-80 (1Г46 для Т-80У) шкала для ручной установки прицела по дальности для бронебойных снарядов обозначается цифрой «6», а для кумулятивных — «Н». Почему? Потому, что буквы «Б» и «К» система отображать не может, а цифру 6 и букву Н может. О (осколочный), кстати, тоже ноль, а не буква.

Примечания[править]

  1. Источник информации вот этот ролик Wanderbraun’а https://www.youtube.com/watch?v=dUBzdACn6vQ, на 22:29.