«Ветеранская усталость» в UFO: Enemy Unknown: игровая механика, появившаяся из-за бага?

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com
| Мнение | Игры

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

Одна из таких необычных механик, о которой я хочу рассказать сегодня, появилась в культовой стратегии UFO: Enemy Unknown (она же X-COM: UFO Defence) из-за банального бага, но впоследствии стала одной из самых запоминающихся и обсуждаемых особенностей игры. Речь идёт о так называемой «ветеранской усталости» — как минимум, так её назвали в гайде по игре с «триадовского» диска.

Автор: Кот Веселый

Представьте ситуацию: вы командовали отрядом бесстрашных солдат в десятках, а то и сотнях опасных миссий по всему миру. Ваши (выжившие) бойцы отряда X-COM превратились в элитных ветеранов, настоящих машин для уничтожения пришельцев. И вдруг, после очередного успешного задания, один из них, без каких-либо объяснений, резко «сдавал» — его характеристики падали до нуля, и доблестный воин превращался в бесполезную обузу. Как такое могло произойти?

Как это было

Представьте себе: вы только что успешно завершили очередную сложную операцию против пришельцев. Ваши бойцы, закаленные в десятках смертельно опасных миссий, истинные ветераны войны с инопланетными захватчиками, вновь доказали свое мастерство (на этот раз даже без потерь). И вдруг… один из них, гордость вашего отряда, возможно даже — один из выживших «с первого набора», внезапно «сдувается», словно воздушный шарик. Его характеристики, чаще всего — здоровье или очки действия, обнуляются без видимой причины. Боец, которого вы так долго растили и прокачивали, мгновенно превращается в бесполезную обузу — и его остаётся только «отправить на дембель».

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

О том, как (и почему) это обосновано с точки зрения логики мира, я поговорю чуть позже — а пока предлагаю посмотреть, что в этот момент происходило «под капотом».

Почему так получалось: всё же баг?

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

  • Во-первых, в изначальной (не «доработанной» издателем после релиза) версии UFO: Enemy Unknown характеристики оперативников де-факто не имели лимита на рост. Это означало, что ваши бойцы могли развиваться практически бесконечно, становясь настоящими супер-солдатами. Достаточно лишь «прорвать порог» определенной характеристики, на котором на время застывало развитие.
  • Во-вторых, игра использовала однобайтовые переменные для хранения характеристик персонажей. Как известно, максимальное значение однобайтовой переменной — 255. И вот, когда очередное повышение характеристики приводило к переходу через этот порог, по несчастливому стечению обстоятельств, не срабатывала резервная проверка «на переполнение переменной» — примерно в одном случае из десяти, когда вы приблизились к «опасному порогу». В результате, характеристика оперативника обнулялась.

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

Автор: Mythos Games Источник: habr.com

Объединив эти два фактора, мы и получаем причину «ветеранской усталости»: доведя характеристику солдата до числа, равного или почти равного 255, и попытавшись повысить ее ещё раз, игра в некоторых случаях сбрасывала значение обратно к нулю. По сути, это был баг, но баг, спровоцированный необычными игровыми условиями.

Железобетонное основание: всё же механика?

Если отбросить технические детали и взглянуть на ситуацию с точки зрения игрового мира и самих оперативников X-COM, то «ветеранская усталость» начинает выглядеть как вполне оправданная и логичная механика.

Давайте не забывать, что UFO: Enemy Unknown — это игра о борьбе человечества с неизвестными пришельцами. Наши бойцы сталкиваются с чем-то, что выходит за рамки их понимания и опыта. Даже отборные элитные солдаты могут испытывать огромный стресс и эмоциональное напряжение в такой ситуации.

Неудивительно, что даже самые закаленные ветераны X-COM могут поймать нервный срыв, уйти в депрессию или даже отъехать в дурку. Человечество просто не привыкло воевать с инопланетными захватчиками, и это может сказываться на психическом здоровье даже лучших бойцов. И даже если в ряды X-COM отбирали лучших из лучших, человеческая психика не была приспособлена к войне с инопланетными захватчиками, которые из миссии в миссию плюются в тебя плазмой. Неспроста, знаете ли, в игре есть шкала «морали».

Таким образом, с точки зрения игрового мира, «ветеранская усталость» выглядит как вполне логичная и оправданная механика. Она отражает тот факт, что даже самые опытные солдаты X-COM в конечном итоге могут сломаться под давлением постоянных столкновений с пришельцами.

Конвергенция геймдизайна девяностых

В девяностые годы игровая индустрия, по существу, едва-едва начинала «оперяться». Игры разрабатывались маленькими командами или даже парой энтузиастов. В такой среде грань между багом и осознанной геймдизайнерской фичей была очень тонкой, фактически сводясь к простому правилу: «если это не работает, как надо и бесит — баг, даже если мы сами это заложили; если это работает, круто и атмосферно — хай будет, даже если не планировалось».

Подобная размытость границ привела к появлению множества необычных игровых механик, которые позже стали неотъемлемой частью геймдизайна некоторых игр. Взять, к примеру, знаменитую распрыжку в Quake, бег по диагонали в DooM (1993), возможность бить по своим в моде DotA или комбо в файтингах — все эти механики изначально были непреднамеренными, но позже стали нормальными — или вообще неотъемлимыми.

В таких условиях зачастую решающим фактором становилось не то, было ли что-то запланировано или появилось случайно, а насколько это вписывалось в общую концепцию игры и нравилось игрокам. Если баг работал, он оставался. Если механика портила атмосферу — её убирали в патчах или сиквеле, невзирая на первоначальный замысел. Так что, «что есть баг» для игр девяностых и даже начала «нулевых» — вопрос сугубо дискуссионный. И «ветеранская усталость» в UFO: Enemy Unknown является ярким тому примером.

Заключение: И мы играли…

Ностальгия — удивительная вещь. Она может заставить нас с теплотой вспоминать даже самые несовершенные и сырые игры прошлого… И X-COM: UFO Defence, она же UFO: Enemy Unknown, она же «та игра про пришельцев», безусловно, относится к числу культовых хитов, которые формировали целые поколения геймеров.

Когда я запускал эту игру в далекой даже не молодости, а юности, «ветеранская усталость» воспринималась как нечто совершенно нормальное. Это было частью атмосферы, частью вызова, с которым нам предстояло столкнуться — и не выглядело как какой-то баг (да я и слова таког оне знал:-).

Да. Прошлое не вернуть, но его можно вспомнить — и понять, что работало на /ту самую/ атмосферу. Воссоздано нейросетью по памяти — с почти идеальной точностью
Автор: Mythos Games, Кот Веселый

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

Ведь война — это не только подвиги и слава. Это еще и потери, травмы, сломленные судьбы. И пусть причиной «ветеранской усталости» был простой баг, он придавал игре ту самую изюминку, которая, среди прочих, выделяла её из множества других стратегий того времени. Делала людей — людьми, а не просто «юнитами»

Для меня и, уверен, многих других фанатов серии эта особенность стала неотъемлемой частью игрового процесса. Мы принимали ее как должное и находили способы бороться с ней. Кто-то старался чаще ротировать бойцов, не доводя их до критической точки и «сохраняя» слишком прокачанных вояк для финальной миссии на отдельной базе. Кто-то шел ва-банк, жертвуя ветеранами ради решения тактических задач. А кто-то просто мирился с неизбежностью и воспринимал это как очередной вызов судьбы. В конце концов, этот феномен отчасти отразился даже в официальной русской новеллизации «Враг неизвестен»!

Так что моя позиция такова: неважно, был ли это баг или осознанная задумка разработчиков. «Ветеранская усталость» стала неотъемлемой частью уникального шарма X-COM — и напоминанием о том, что даже величайшие герои остаются лишь людьми. И именно поэтому мы все так любим эту игру.

F если вам интересно прочитать, чем эта игра была столь значима для индустрии, лично меня и к чему привело её появление — вместо послесловия я категорически советую прочитать прошлую статью, комментарии под которой и сподвигли меня на написание этой, более «узкой»:

30 лет игре X-COM: UFO Defence (UFO: Enemy Unknown): Как это было тогда, и стоит ли играть сейчас?

Спасибо дочитавшим.

Изображение в превью:
Автор: Mythos Games
Источник: UFO: Enemy Unknown
Пошаговая стратегияТактикаPC
Автор не входит в состав редакции iXBT.com (подробнее »)
Об авторе
Наношу добро, причиняю пользу, благодарен за лайки и содержательные (дополняющие статьи) комментарии.

10 комментариев

Добавить комментарий

V
«Первая особенность — отсутствие лимита на рост характеристик с «порогом прорыва» — скорее, была задуманной игровой механикой»
Да нет же. Не было это ни задуманной игровой механикой, ни даже отсутствием лимита. Значения больше 80 просто вылазят за пределы экрана и забаговывают визуал. Какая же эта механика продуманная, алё? Лимит в 80 был реализован криво, не через <= а через ==. Точнее криво в контексте того, что характеристики могут расти более чем на 1.
Но для истории когда рост ограничен 1, багов не было бы. Потому, возможно изначально в пререлизной версии рост ограничивался единичными значениями, потому такой способ ограничения работал, но потом в ходе разработки Голлопов попросили увеличить скорость прогресса характеристик (мол, сильно слабо растут), и они расширили формулы, которые стали давать значения и более 1, но if лимитирующий исправили только спустя месяц после релиза, с первым патчем (в котором исправили и крэш во время анимации превращения в криссалида).
И никто в мире этой «ветеранской усталости» не ведал, потому что сразу обновили версию на не багованную. А ваш «добрый дядя-русификатор» подкинул свинью, выбрав для перевода багованную версию. Благодарите его, а не разработчиков.
Лично я русификации не признавал (особенно такие пафосные как эта Уфо), и о такой креативной интерпретации бага как «ветеранской усталости» впервые здесь узнал. Вот уж выдумщики, спасибо.
LeVK
Позвольте не согласиться. В таком виде проект был отдан издателям, а дальше игру правила уже команда поддержки — самого Голлопа почти сразу бросили на сиквел, так что стоит ли здесь его авторское видение или мнение издателя о балансе — вопрос открытый. А про то, что грань между багом и фичей в играх девяностых де-фато отсутствовала, я уже писал в самой статье: те же комбо в файтингах появились из-за того, что в одном из них определенная последовательность удров скипала анимацию.
Так что благодарить тут можно, в общем-то, всех. И я, собственно, благодарен, поскольку без этого опыт игры был бы для меня /другим/.
V
Удивляет ваше упорство называть откровенный баг «механикой». Можете сами спросить Джулиана, была ли вообще такая задумка о сбросе статов в 0 — он вполне активен в соцсетях.
То что вы называете механикой — ни одного признака оной не содержит. Рафинированный баг со всеми признаками бага. И сиквел (tftd) Голлопы не делали — они продали (лицензировали) движок, и патчи эти были авторскими (в рамках допиливания).
Была как я понимаю задумка чтобы солдаты увольнялись из-за количества фатальных ранений в миссии (есть строка текстовая на это намекающая «REIRED THROUGH INJURY»), но это вообще никакого отношения к сбросу статсов из-за недосмотра в коде — не имеет, это в экране результатов миссии.
На основании чего такое утверждение что НЕ БЫЛО ГРАНИ между БАГОМ и ФИЧЕЙ? Заявление очень громкое и требует существенных доказательств. Баги есть баги, вне зависимости от того насколько они fatal (разрушают возможность пройти).
LeVK
1) Задумки о *сбросе* не было, это, как раз, стопроцентно «багованная» часть. Вопрос «было ли так задумано изначально», скорее, именно к тому, что в первых версиях вместо лимита был «порог», который можно перейти и качаться дальше.
2) Как я уже писал, в реалиях игр девяностых баг — то, что делает игру хуже, механика — то, что делает её лучше. Не более и не менее. Та же распрыжка в наследных Quake движках есть до сих пор, что характерно, в той или иной форме — вплоть до последнего билда Source 2, хотя это вот прямо чистейший баг.
3) Под сиквелом я подразумеваю Apocalypse, над которым начали работать практически сразу, сдав кодовую базу оригинала издателю для поддержки патчами и разработки автономного аддона.
V
1. Вы к программированию какое-то отношение имеете, понимаете как и почему случаются баги, как проходит разработка?
Не в «первых версиях» он (этот баг) был, а в единственной первой версии, которая из-за бага с криссалидом, и кривыми ассетами базы пришельцев была фактически непроходима. И само собой баги эти правил Джулиан, потому что tftd еще даже не начался, исходники движка не передавали, и никто кроме него не мог это сделать в сжатые сроки.
2. Нет. Баг — это баг. К механикам этот баг с 80никакого отношения не имеет. Баги в механиках, которые визуально никак не отражаются (не выглядят как баг) _могут_ в перспективе стать какой-то разновидностью механики. Но это другое, это просто undocumented behavior. А недостаточно грамотная проверка на превышение 80, приводящая к перерисовкам на экране сверх положенного, и wrap-over через 0 — это чистейший баг.
3. Апокалипс делать их никто не «бросал», была придумана куча плохо связанных идей и концепций, которые неохотно превращались во что-то жизнеспособное. Такой лютой спешки как вы себе представляете там не было. Был скорее хаос.
Вот просто безотносительно 1-3, зачем «задумывать» какой-то «порог», который довольно часто (случайно) преодолевается? И когда преодолевается — на экране информации о солдатах все шкалы ломают весь визуал… залезают на другие строки слева… кто в здравом уме будет задумывать такую корявость? Вот безотносительно сброса в 0. Могли сделать ограничение в 200 ведь. Ну и что что все криво выглядит, правда ведь?.. 160-то вообще прекрасно влезало, но порог почему-то не на 160 даже.
В предыдущей игре (laser squad), из которой ufo в общем-то и вырос (задумываясь как laser squad 2), были максимальные характеристики солдат в 66. Но там они жестко прибиты к миссиям (среди врагов одной из них, кстати, есть сектоиды). Рост не предусматривался. И тем более огромные значения. Они весь баланс ломают. «Ветераны» с Time Units в 220 (как в вашей русской версии бывало) — нарушают весь баланс. Их не должно было быть.
1
Уважаемый автор, а в «Мир кораблей» Вы играете?
LeVK
Чисто случайно, играю. А что?
1
Да просто как-то в бою на топовых уровнях встретил игрока с таким ником на латинице :)
Вот и решил узнать, насколько тесен игровой мир…
LeVK
Если [MIND2], то чисто случайно я. Возможно, что и тесен.
R
Спасибо за статью. Времена когда мне было около 13 лет. Играли вместе с другом на его невероятно дорогом ноутбуке Fujitsu с цветным жк экраном оставляющим мощнейшие шлейфы картинки и курсора при движении и почти нулевыми углами обзора. Но это всё казалось нормой. Тогда он стоил порядка $4000, при средней месячной зарплате по стране $50. Его отец был при деньгах, и купив себе эту игрушку очень быстро отдал её сыну. Из характеристик помню что это был какой-то 486й, без звуковой карты, а только pc speaker, поэтому мы никогда не слышали музыки и звуков ни в одной из UFO. Вместо этого атмосферу создавали потрескивание HDD и малошумный кулер. Уже гораздо позже я услышал midi музыку этих игр и она воспринималась как что-то чужеродное, будто совсем не подходя к серии UFO. С описанным багом мы не сталкивались.

Добавить комментарий

Сейчас на главной

Новости

Публикации

Кладоспориоз на томатах: как распознать, остановить и не допустить в следующем сезоне

Бурые пятна на листьях томатов — не всегда фитофтора. Кладоспориоз: как распознать, чем лечить и какие сорта выбрать, чтобы не терять урожай в теплице.

Зачем над дорогами на проводах висят разноцветные шары

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

Белые или желтые: какие крышки для консервации выбрать, чтобы банки не взрывались

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

Что такое турецкий кокореч, сколько он стоит и стоит ли жарить его на мангале

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

✦ ИИ  Чёрные яблоки Black Diamond: загадочный фрукт Тибета, который выглядит как реквизит из фэнтези

На первый взгляд кажется, что это не настоящий фрукт, а предмет из дорогой рекламной съёмки или декорация к фильму про волшебный сад. Глянцевая тёмно-фиолетовая кожица, почти чёрный оттенок,...

Как Стив Джобс пытался привести компьютеры Apple в СССР 4 июля 1985 года

4 июля 1985 года состоялась встреча, которая сегодня кажется почти невероятной. В разгар холодной войны представители советского руководства обсуждали со Стивом Джобсом возможность...