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

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

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

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

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

Например:

Конкретные шедевры офигенной находчивости[править]

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

  • Force 21 — прямо как в анекдоте! Камера показывающая поле боя в игре являлась объектом, который уничтожался при случайном попадании под авиаудар, артобстрел или что помощнее, и переставал двигаться, и чтобы этого не происходило камере дали много брони и жизни.
  • Knights of the Old Republic — сияние Светового меча состоит из 3-х (или 6-ти если игнорировать симметрию) полупрозрачных текстур соединённыx звездочкой. При установке серебряного кристалла превращается в Спецдефекты.
  • Neverwinter Nights — повсеместно. Летающий меч? Это невидимка с мечом в руках. Маленькое грозовое облачко? Тот же невидимка с циклическим эффектом от заклинания «Приговор»…
  • «Механоиды»:
    • Когда глайдер механоида уничтожают, его самого отвозят в базу и там он получает новый глайдер. Однако на самом деле респаун ботов не зависит от сдачи механоидов, и можно возить в трюме «клонов» с одинаковым именем и разными рейтингами.
    • Разработчики не стали делать урон от падения и столкновений, а вместо этого поставили на дно смертельных ям объекты типа областей высокой радиации. В результате во время падения в разлом можно увидеть мигающее предупреждение «неизвестная опасность»…
      • Таким же манером — аномалиями с 10000 урона в секунду — ограничили сектор Скал. Автора ваншотнуло под предупреждением об опасной температуре без всяких внешних признаков аномалии. Даже лава убивает медленнее.
  • «Механоиды 2: война кланов». Здесь добавили контур в сектор Скал, разломы в Арктике затопили, а сектор Вулканов убрали по сюжету. По сюжету же возникла необходимость честно отслеживать колобков, и исчезли чудеса респауна. Однако, появился другой шедевр: болотная тварь под именем Наутилус — на самом деле невидимая грузовая платформа, летающая под картой. Если пальнуть на его сигнал из чего-нибудь с большим радиусом сплеша или бросить мину, он начнёт преследовать игрока и ругаться как обычный злой механоид. Так и будут подписаны реплики: «Наутилус: …». А если заморочаться и убить эту платформу, из неё выпадет механоид по имени Наутилус с рейтингом 0.
    • Защитные турели вокруг строений предупредительный выстрел теперь делают стазисом. Поэтому у них прямо в дуле можно увидеть маленькую модельку глайдерной стазис-пушки. Причём она каким-то образом перемещается по внутренней стенке. Те же турели если не могут уничтожить глайдер за определённое количество выстрелов (например, из-за собственного стазиса), используют специальный с 10000 урона. И всё бы бы хорошо, но звук у усиленного выстрела почему-то другой, то есть, там уже три орудия, а нормально нарисовано только одно.
    • Надо сказать что спасатели — специальные дроны, которые и подбирают долгое время игнорируемых собратьями механоидов чтобы доставить их в строения на респаун, тоже могли бы быть отнесены сюда, если бы не железное обоснование и сюжетное присутствие ещё в первой части.
    • На подземном заводе, куда игрок приходит в финале квеста о поисках Супера, лежит механоид пятого поколения. При первой загрузке локации он появляется в глайдере и немедленно получает 100000 урона.
  • Warframe — варфрейм Гидроид может превращаться в лужу, становясь неуязвимым и затягивая в такое же состояние противников для временной нейтрализации. Однако, в центре лужи находится маленькая невидимая моделька Гидроида, которая иногда оставалась такой после выхода из способности. Ну и плюс обидно, что таким образом нельзя обойти лазерное заграждение: технически лучи не касаются воды на полу, но при контакте с моделькой на середине лужи тревога срабатывает.
    • Забавная инверсия: варфрейм Висп не ходит как все, а парит низко над землёй, и из-за этого она действительно не могла активировать нажимные плиты на полу в башнях Орокин. Теперь, впрочем, может, и наверняка благодаря этому тропу.
  • Ex Machina — хотя здесь есть специальная кнопка для телепортации машины из безвыходного положения, при опрокидывании её крутит самым нереалистичным образом, лишь бы приземлилась на колёса.
  • FIFA 94 — получение футболистом жёлтой карточки здесь было реализовано через подбегание судьи к нарушителю, а он в свою очередь мог от него вполне результативно убегать.
  • Royal Quest — многие игроки начисто игнорируют квесты и качаются, уничтожая собранные толпы мобов (т. е. паровозят). Выпавшему луту внимание не уделяется, поэтому локации зачастую становятся загажены предметами, которые может подобрать только выбивший их игрок. И здесь в дело вступают росинки! Это мобы первого уровня, которые подбирают любой выпавший лут.
  • World of Tanks:
    • В игре одновременно действуют как минимум три разных значения земной гравитации: своё для падающей с обрыва техники, своё для танковых снарядов, которые летят почти прямо, и своё для артиллерийских снарядов, которые из-за этого летят в стиле «поросята на парашютиках».
    • Когда разработчики реализовали переворачивание танков вверх тормашками, они столкнулись с тем, что при действующих в игре параметрах техники и физических константах перевороты происходят крайне часто, и это делает подвижную игру некомфортной, если вообще возможной. Проблема была решена «малой кровью»: центр тяжести каждого танка был перемещен вниз настолько, что стал болтаться где-то глубоко под земной поверхностью. Перевернуться теперь стало гораздо труднее.
  • Dwarf Fortress — урон от падения моделируется «бросанием» в упавшее существо куска материала, из которого состоит пол (или стена, если полёт был горизонтален). В итоге яма с деревянным полом будет куда менее смертельна, чем с золотым или платиновым, а падение в Аду на пол из сверхплотного слэйда с трёх-четырёх этажей буквально размажет бедолагу по полу. Получилась, конечно, чушь, а не физика, но в находчивости не отказать — вместо твёрдости и плотности отделался одним параметром.
  • GTA — в игре десятки видов машин, но для экономии памяти чаще всего на дороге встречаются машины той же самой модели, на которой едет игрок.
  • Overwatch — справедливости ради, пример реально офигенной находчивости. Существуют читерские программы для командных шутеров, нажимающие выстрел при наведении прицела на врага. Ориентируются они на интерфейсные маркеры, например, красный силуэт, и с самой игрой взаимодействуют вполне разрешённым образом — захватывают изображение наподобие программ записи видео. В результате некоторые разработчики начали махать банхаммерами и под раздачу попали те самые записывающие программы, а вместе с ними всевозможные стримеры и прочие генераторы фанатского контента. Однако великие Близзард решили проблему иначе: они сделали означенный красный контур постоянно меняющим цвет. Для глаза это незаметно, а вот программа уже зацепиться не может, или её придётся заставлять реагировать на огромное количество оттенков красного, к тому же, возможно, встречающихся в декорациях.
  • Вангеры — не вполне понятно, баг это или фича злобных разработчиков хардкора девяностых, но побочные генерируемые квесты в игре выглядят так. Заходишь в магазин, покупаешь специальную штуковину, выходишь наружу, получаешь квест от святого Рандомия, если повезёт, делаешь, и купленная штуковина резко поднимается в цене, после чего её нужно довезти и продать. При этом табутаск считается обычным грузом и, сделав квест, можно не получить награды просто потому что он выпал из кузова в перестрелке.
  • Uncharted 2, сцена с поездом — в отличие от игр и фильмов прошлого, движется не пейзаж, а сам поезд, без обмана. Но сам путь состоит из двух гигантских петель(с зеленью и со снегом), чтобы игрок мог в любое время включить триггер и перейти на новый этап
  • Half-Life 2: а вот здесь движение поезда именно что имитировалось — двигался не поезд, а источники света.
    • Мимопроходящий анон скромно уточнит, что речь идёт о сцене в Episode One, где Аликс Вэнс и Гордон Фримен сбегают из Цитадели на поезде Альянса. Кроме потолка с мелькающими лампами, из вагона поезда ничего не видно, а следовательно, и нет нужды создавать полноценное движение поезда. В любых других сценах поезда с игроком движутся честно.
  • Wing Commander — при выходе из игры выводилась ошибка менеджера памяти. Что сделали разработчики? Правильно — заменили текст ошибки на благодарность за игру! Всё равно баг проявлялся только при выходе…
  • ArmA 2 — как сделать гранатометы РПГ-18 и М-136 одноразовыми? Очень просто: пусть выстрел к ним занимает половину инвентаря (6 ячеек из 12), чтобы игрок не смог взять второй выстрел, не оставшись без патронов (это притом, что выстрел к РПГ-18 или М-136 не должен ВООБЩЕ занимать место в инвентаре, так как забит в тубу на заводе без возможности извлечения и замены)! Притом, что более мощные выстрелы к гранатометам РПГ-7 и SMAW занимают 2 или 3 ячейки, и выстрелов можно взять на те же ячейки, соответственно, 3 или 2, а то и больше ценой патронов к автомату!
    • Как сделать так, чтобы ИИ мог стрелять ракетами из орудий танка Т-90 и БМП-3? Вынести ракеты в отдельную пусковую установку (ИИ моментально полюбил «дуплет» снарядом и ракетой), и при этом сделаем у пусковой установки перезарядку полторы минуты и уберем функцию захвата цели — ракетой приходится стрелять на глаз причем почему-то по квазибаллистической траектории. Если сделать ракету выстрелом к орудию (для этого нужно в конфиге просто прописать «магазин» ракет в перечень магазинов орудия, делается за две минуты, из них полторы на конвертацию файлов), то стрелять ракетами сможет только игрок, зато все будет правильно.
    • Как сделать симуляцию войны на площади 15 квадратных километров, притом, что численность войск ограничена 144 бойцами для каждой стороны? Да просто тупо перенести в тактический шутер классические элементы «стратегий»: в поле строятся казармы, генерирующие пехоту, танковые заводы, ремонтные базы…. Деревня захватывается, когда на ее территорию заходит один вражеский солдат и туту же идет дальше, а победа достигается уничтожением вражеской базы.
    • Мы сделали карту 15*15 км, но населить ее не можем? Легко, ставим зону, при выходе из которой игрока убивает снайпер.
    • Танки имеют много хитов. Убиваются 600 выстрелами из пулемета или открытым контактом с зенитной установкой.
  • «Как достать соседа» — в результате некоторых пакостей сосед бежит в туалет либо проблеваться, либо опорожниться. Разработчики решили «на все случаи жизни» прорисовать анимацию, где сосед бежит, держась одной рукой за рот, а другой — за задницу.
  • Crossout — в один момент перед разработчиками встала проблема возможности развития машиной запредельных скоростей. Ответ был дёшев и сердит: при превышении некоторого порога появляется урон от столкновений с землёй, ваншотящий любую машину (от столкновений с другими машинами тоже ваншотит). Почему не сделать столкновения с землёй честно? Помимо того что это больше расчётов, в игре и без того довольно суровая спираль смерти, а куча тупейших способов умереть игроков, которые и так опрокидываются на каждом шагу, точно не обрадует.
  • Fallout: Tactics — квестовая «разломанная силовая броня», которая должна сниматься с трупов после убиения врагов, заботливо уложена им в карманы. С флагом «невозможно украсть». Кстати, «челюсти волка» и прочее подобное — просто предмет-оружие данные соответствующим противникам в «руки». С флагами «невозможно уронить», «невозможно подобрать».
    • Там же — как сделать робота-камикадзе? Дать ему рукопашное оружие со свойствами «сплэш-дамаг в радиусе N» и «уничтожает носителя при использовании».
  • Jagged Alliance 2 — Примерно так же здесь реализуется оружие нестандартных противников, т.е неотбираемое и скрытое оружие, вроде челюстей рысей или жуков. Но вот то что пушка танка реализуется также, игроков в свое время изрядно веселило, особенно когда такие пушки и челюсти, багоюзом научились отбирать у врагов.
  • The Elders Scroll 3: Morrowind — Анимация делается по принципу: модель ставится в нужную позу, а после на неё навешиваются множители роста и толщины от расы. Большую часть времени все выглядит нормально, но время от времени наблюдаются cпецдефекты (особенно у орков и альтмеров) в духе «круглое стало овальным» или когда персонаж смотрит вверх его голова становится… Но делать все расы через одну модель — это реально надо было додуматься!
    • В той же серии — как по-ленивому сделать манекены для брони? Это просто парализованные стражники с другой текстурой. Сцуко, до слёз!
    • Курицы, замечающие игрока в стелсе из той же серии. Явно делались на основе базового класса «NPC».
  • Fallout: New Vegas — Неписи, которые должны лежать на локации мертвыми, на самом деле погибают при входе в нее, ваншотаясь сверхвысоким уроном. Если их видно сразу же при входе на локацию, процесс смерти можно даже застать лично. С учетом того что движок игра делит с Fallout 3, неудивительно будет если этот финт работает и там.
    • S.T.A.L.K.E.R тоже король этого тропа. Там неписи не только умирают по приказу, но и разбегаются на запомненные места со стартовой точки.
  • For Honor — крипы в режимах, где они есть, это такие недоигроки. На них можно применить приёмы если не все, то многие, в том числе если вам нужна была другая цель. Крипы даже могут захватывать точки, просто они сами туда не заходят.

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

  • Пользовательские карты для Warcraft 3 в золотое время середины нулевых этим тропом жили и дышали. Если автор правки правильно помнит (десять лет прошло, как-никак), то…
    • Как сделать возможность входить в здания? Правильно, создать крошечного, неуязвимого и невидимого юнита с минимальным реальным размером, но текстурой огромного дома. И облепить здание по периметру, кроме дверей, невидимыми объектами «блокиратор пути», чтобы зайти через стены нельзя было.
    • Как сделать так, чтобы здание генерировало войска автоматически, пока стоит (именно такой была механика спавна крипов в древнейших AoS-картах, предках DotA)? Нарисовать перед зданием скриптовую область, и прописать условие «если объект Х стоит, то раз в Y секунд создавать Z войск».
    • Через скрипты прописывался и выбор героя на картах типа «Арена» (Angel Arena, например, в компьютерных клубах родного города автора правки была едва ли не популярней Доты). Для игрока это выглядело обычно так: на момент начала игры каждый игрок контролирует по юниту для выбора (обычно это были Светлячки Ночных эльфов, не наносящие урона). Перед ним — локация, в которой стоят все доступные герои. Подводим светлячка к герою — герой появляется на основной карте. На самом деле скрипт работал так: при приближении к герою срабатывает триггер => создается определенный герой для данного игрока в скриптовой зоне => светлячок получает 999999 урона и уничтожается.
    • Другим вариантом выбора героя, и не только для арен, но и для первой Доты, был закуп героя в таверне. Механика игры требует, чтобы для активации таверны рядом был принадлежащий игроку юнит. Вот и создавали для каждого игрока рядом с тавернами юнита, неспособного к движению и атаке, с текстурой Круга Силы или Духов-целителей.
    • Виртуозное владение скриптами вкупе с этим тропом позволяло создавать даже шутеры, космосимы и спортивные симуляторы на движке Варкрафта, но автор правки их не препарировал, пусть кто-то другой напишет.
  • У создателей карт для 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, мод «Альтернатива» — автор сделал несколько девушек, с которыми возможен секс. Как? На экран выводятся при помощи механизма запуска роликов два скриншота из эроге. Проблема в том, что текстура, не считая голой женщины, прозрачна, и через нее можно заметить стоящую напротив девушку, с которой ты, собственно, это самое. Чтобы этого не допустить, одновременно запускается анимация «игроку плохо», от которой экран начинает бешено крутиться, не считая текстуры с голой девушкой

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

  • Из пародийной переписки разработчиков игры:
« 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: Извините, что не сразу ответил. Я тут подумал и решил, что проще забанить того неприятного человека.Белые полоски делать не надо, всем отбой. Пойду думать, как бан обосновать.

»
— Автор неизвестен