Надежда Попова (congregatio) wrote,
Надежда Попова
congregatio

И пришла белочка

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

Ниже - несколько примеров забавных программных трюков.

* * * * *
Технология квестов/событий в Titan Quest имела серьёзную слабость — после срабатывания действия не было никаких способов его отложить. Поэтому если мы хотели, чтобы что-то произошло через пять секунд после того, как игрок пробежал через какой-нибудь ограничивающий объём, то мы никак не могли установить задержку. Действие всегда было мгновенным.

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

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

* * * * *
В недавно вышедшей игре «Distrust», к разработке которой я имею непосредственное отношение, имеется очень много таких «хаков», когда дизайнеры уровней придумывают хитрые системы из объектов, только чтобы реализовать свою логику, не отвлекая программистов, загруженных исправлением багов перед надвигающимся релизом. В этой игре, чтобы перейти на другой этап (перейти в другую зону), вам нужно выполнить квест, который уникален для каждой зоны. Например, дверь, которую нужно заминировать, на самом деле является печью, в которую мы «заправляем» топливо, когда устанавливаем бомбу. На этапе прототипирования квеста это возможно было сделать без программистов, с использованием уже готовых объектов. Тем не менее, мы не стали это трогать — оно работало и было протестировано, а мы просто добавили визуализацию «топлива» в виде таймера по специальной галочке внутри печи.

* * * * *
Поезд в Fallout 3 на самом деле броня, которая надевается на игрока. Это единственный транспорт в игре, с которым игрок может взаимодействовать, и писать под него отдельный уникальный механизм процесса не стали.

* * * * *
Примечание: Достоверность следующей истории не установлена.

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

* * * * *
Примечание: Достоверность следующей истории не установлена.

Ну, сделали и мы в Блицкриге эту самую ракету. Как и немцы, сделали ее уже ближе к концу проекта и соорудили на базе объекта "самолет". Но программисты несколько схалтурили и не пооткручивали у бывшего самолета подозрительную для баллистической ракеты функциональность. Оказалость, что если во время полета к цели начинал идти дождь или снег, то во-первых ракета говорила человеческим голосом "Fliege zuruck"(нем. лечу назад), а во-вторых разворачивалась и летела обратно на базу. Фигли там, погода то нелетная.

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

Но, беда в том, что в Блицкриге кроме собственно пехоты еще были всякие антуражные юниты, типа коров, свиней и собак. Выяснилось, что спецназ вовсе не чурается переодевания в бобиков и хавроний. Если учесть, что механизм этого самого переодевания несколько глючил и часть отряда можно было нарядить в одну форму, часть в другую, то можно было создавать совершенно безумные подразделения. Например, отряд из собак, свиней и панцергренадеров. Учитывая, что отряду можно отдавать всякие приказы типа "маршировать", "ползти" и т.д., то игроку предоставлялась уникальная возможность полюбоваться марширующими свиньями. Получалось это у них, впрочем, паршиво, потому что скелет свиньи не соответствует скелету пехотинца и выглядит это как отряд ездящих не попе хрюшек. А еще этот цирк-шапито можо было запихать в окоп. Сидят, значит, свиньи с собаками в окопе и периодически из него выглядывают.


Со свиньями был связан, кстати, еще один баг, из-за которого игра падала. В какой-то момент программисты что-то такое там подкрутили и свиньи перестали быть нейтральными, а обрели возможность принадлежать какому-то игроку. Управлять ими было нельзя, но формально они могли быть "наши" или "ненаши". Так вот свиньи роняли игру. Потому что видя неприятеля, патриотичная хавронья хотела дать врагу отпор и лезла за оружием, которого у нее естественно не было. Если мне не изменяет память, программисты исправили баг, просто выдав свинье пистолет Люгер без патронов. Визуально это никак не видно, но формально, теперь, видя врага, она лезет за оружием, видит что патронов нет и на этом успокаивается.

Взято с хабра, из статьи и комментариев.


Tags: любопытное
Subscribe
promo congregatio март 17, 2020 09:00 201
Buy for 50 tokens
FAQ
По совету читателей и примеру некоторых авторов - решила соорудить такой вот постик с наиболее часто задаваемыми вопросами, дабы и ибо, так сказать. Повисит тут пока. В случае изменений (которые в ближайшее время вряд ли предвидятся) - буду вносить правки. Будет ли допечатка "Стези…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 59 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →

Bestgwali0r

December 3 2017, 11:05:56 UTC 11 months ago

  • New comment
Собственно, вот видео с марширующими свиньями)))
https://www.youtube.com/watch?v=kfLzuQYfrzs
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →