«Ветеранская усталость» в UFO: Enemy Unknown: игровая механика, появившаяся из-за бага?
Девяностые годы — странная эра в истории компьютерных игр. Маленькие команды разработчиков, работая в условиях ограниченных ресурсов и несовершенных технологий, создавали революционные игры, изобретая новые жанры и игровые механики. И… Часто границы между багами и осознанными дизайнерскими решениями размывались, приводя к появлению необычных и запоминающихся игровых особенностей.
Одна из таких необычных механик, о которой я хочу рассказать сегодня, появилась в культовой стратегии UFO: Enemy Unknown (она же X-COM: UFO Defence) из-за банального бага, но впоследствии стала одной из самых запоминающихся и обсуждаемых особенностей игры. Речь идёт о так называемой «ветеранской усталости» — как минимум, так её назвали в гайде по игре с «триадовского» диска.
Представьте ситуацию: вы командовали отрядом бесстрашных солдат в десятках, а то и сотнях опасных миссий по всему миру. Ваши (выжившие) бойцы отряда X-COM превратились в элитных ветеранов, настоящих машин для уничтожения пришельцев. И вдруг, после очередного успешного задания, один из них, без каких-либо объяснений, резко «сдавал» — его характеристики падали до нуля, и доблестный воин превращался в бесполезную обузу. Как такое могло произойти?
Как это было
Представьте себе: вы только что успешно завершили очередную сложную операцию против пришельцев. Ваши бойцы, закаленные в десятках смертельно опасных миссий, истинные ветераны войны с инопланетными захватчиками, вновь доказали свое мастерство (на этот раз даже без потерь). И вдруг… один из них, гордость вашего отряда, возможно даже — один из выживших «с первого набора», внезапно «сдувается», словно воздушный шарик. Его характеристики, чаще всего — здоровье или очки действия, обнуляются без видимой причины. Боец, которого вы так долго растили и прокачивали, мгновенно превращается в бесполезную обузу — и его остаётся только «отправить на дембель».
Такие случаи в русской версии UFO: Enemy Unknown были далеко не редкостью, особенно ближе к концу игры. Игроки, вложившие массу времени и усилий в развитие своих оперативников, испытывали шок и недоумение, сталкиваясь с этой аномалией. Ветераны, проявившие чудеса храбрости и отваги, вдруг оказывались не способны даже держать оружие. Причем происходило это совершенно случайным образом, без каких-либо предупреждающих признаков.
О том, как (и почему) это обосновано с точки зрения логики мира, я поговорю чуть позже — а пока предлагаю посмотреть, что в этот момент происходило «под капотом».
Почему так получалось: всё же баг?
На первый взгляд, ситуация с обнулением характеристик ветеранов выглядит как чистейший баг. Однако, если копнуть глубже, становится ясно, что это произошло из-за наложения сразу двух особенностей реализации игры разработчиками.
- Во-первых, в изначальной (не «доработанной» издателем после релиза) версии UFO: Enemy Unknown характеристики оперативников де-факто не имели лимита на рост. Это означало, что ваши бойцы могли развиваться практически бесконечно, становясь настоящими супер-солдатами. Достаточно лишь «прорвать порог» определенной характеристики, на котором на время застывало развитие.
- Во-вторых, игра использовала однобайтовые переменные для хранения характеристик персонажей. Как известно, максимальное значение однобайтовой переменной — 255. И вот, когда очередное повышение характеристики приводило к переходу через этот порог, по несчастливому стечению обстоятельств, не срабатывала резервная проверка «на переполнение переменной» — примерно в одном случае из десяти, когда вы приблизились к «опасному порогу». В результате, характеристика оперативника обнулялась.
Первая особенность — отсутствие лимита на рост характеристик с «порогом прорыва» — скорее, была задуманной игровой механикой, позднее измененной издателем в угоду баланса. Вторая же особенность — несработка «защиты» на переменной в частности и использование однобайтовых переменных в целом — выглядит как классический баг.
Объединив эти два фактора, мы и получаем причину «ветеранской усталости»: доведя характеристику солдата до числа, равного или почти равного 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, она же «та игра про пришельцев», безусловно, относится к числу культовых хитов, которые формировали целые поколения геймеров.
Когда я запускал эту игру в далекой даже не молодости, а юности, «ветеранская усталость» воспринималась как нечто совершенно нормальное. Это было частью атмосферы, частью вызова, с которым нам предстояло столкнуться — и не выглядело как какой-то баг (да я и слова таког оне знал:-).
Представьте, как это было: отважный отряд солдат в очередной раз возвращается с победой. Вы с гордостью смотрите на ряды бывалых бойцов, закаленных в десятках жарких схваток с пришельцами. И вдруг, на следующий день, один из них, прошедший с вами огонь и воду, оказывается не в силах даже встать с постели. Удар по самолюбию? Безусловно. Но в то же время это добавляло игре столько драматизма и реалистичности!
Ведь война — это не только подвиги и слава. Это еще и потери, травмы, сломленные судьбы. И пусть причиной «ветеранской усталости» был простой баг, он придавал игре ту самую изюминку, которая, среди прочих, выделяла её из множества других стратегий того времени. Делала людей — людьми, а не просто «юнитами»
Для меня и, уверен, многих других фанатов серии эта особенность стала неотъемлемой частью игрового процесса. Мы принимали ее как должное и находили способы бороться с ней. Кто-то старался чаще ротировать бойцов, не доводя их до критической точки и «сохраняя» слишком прокачанных вояк для финальной миссии на отдельной базе. Кто-то шел ва-банк, жертвуя ветеранами ради решения тактических задач. А кто-то просто мирился с неизбежностью и воспринимал это как очередной вызов судьбы. В конце концов, этот феномен отчасти отразился даже в официальной русской новеллизации «Враг неизвестен»!
Так что моя позиция такова: неважно, был ли это баг или осознанная задумка разработчиков. «Ветеранская усталость» стала неотъемлемой частью уникального шарма X-COM — и напоминанием о том, что даже величайшие герои остаются лишь людьми. И именно поэтому мы все так любим эту игру.
F если вам интересно прочитать, чем эта игра была столь значима для индустрии, лично меня и к чему привело её появление — вместо послесловия я категорически советую прочитать прошлую статью, комментарии под которой и сподвигли меня на написание этой, более «узкой»:
30 лет игре X-COM: UFO Defence (UFO: Enemy Unknown): Как это было тогда, и стоит ли играть сейчас?
Спасибо дочитавшим.
Изображение в превью:
Автор: Mythos Games
Источник: UFO: Enemy Unknown