|
|
|
Статьи |
|
∙Главная |
Критика X-COM: Apocalypse. Часть 2. Вначале я хотел написать очень сердитую критическую статью и обругать в ней "Апокалипсис" за множество алгоритмических ошибок. К счастью, ранее, чем я успел сделать это, я прочёл, КАКИМ "Апокалипсис" задумывался его создателями (братьями Голлоп) и это до определённой степени реабилитировало его в моих глазах. Поэтому я ругаться не намерен. Сперва я опишу, каким "Апокалипсис" должен был быть, затем дам описание алгоритмических ошибок (если их можно таковыми назвать), которые присутствуют в так называемой финальной версии игры. Но прежде чем я сделаю это, дам небольшое пояснение (люди, искушённые в программировании, могут эти абзацы смело пропускать). Что я считаю "алгоритмической ошибкой"? Это никоим образом не ошибки из разряда тех, которые "вешают" систему в процессе игры, из-за которых неверно работает мышь или не восстанавливается сохранённое состояние и т.п. Это всё я отношу к "глюкам". К алгоритмическим же ошибкам можно отнести ситуации в игре, когда (возьмём для примера игру Commandos 1) танк не в состоянии преодолеть забор из кустов или ограждение из колючей проволоки, когда броневик взрывается от нескольких выстрелов из автомата, когда у пулемёта дальнобойность не больше водяного пистолета, когда снайпер берёт с собою на миссию 4 винтовочных патрона, а потом прилетает самолёт и подбрасывает ещё несколько ящиков с боеприпасами, содержащих другие 4 патрона и т.д. Теперь я расскажу о понятии "версия программы". Допустим, нам надо сделать очень сложную программу, которая бы выполняла ряд различных сложных операций: А, Б, В, Г и т.д. Сразу сесть и сделать такую программу нельзя. Поэтому мы берём кусок бумаги и пишем на ней: "Версия программы 0.01. Задача - реализация операции А.", а затем садимся и пишем программу, которая действительно реализует операцию А, а в тех местах, где должен был бы находится программный код, выполняющий другие операции, содержащую "заглушки" (как правило, это гордые комментарии вида "Здесь будет код, реализующий операцию ..."). Отладив версию 0.01, мы радуемся тому, что цели, поставленные перед нею, полностью достигнуты. Порадовавшись, берём другой кусок бумаги и пишем: "Версия программы 0.02. Задача - реализация операций А и Б." Полученная программа будет реализовывать операции А и Б и содержать заглушки на месте кода всех остальных операций. В идеале можно было бы продолжать так и дальше до тех пор, пока все операции не будут выполняться программой. Тогда можно будет полученную версию назвать 1.0.0 и, при желании, продолжать работать над ней дальше. В реальности же мы имеем ту проблему, что все операции, которые требуется реализовать, ВЗАИМОСВЯЗАНЫ. Ну как прикажете отлаживать операцию Б, если она должна использовать данные, получаемые в результате выполнения операций Ж и Ф, а на их месте в программе красуется лишь "И на Марсе будут яблони цвести"? Поскольку в такой ситуации одной заглушкой уже не отделаться, пишем простенький код, который лишь ИМИТИРУЕТ выполнение соответствующей функции, генерируя "с потолка" правдоподобные, но совершенно неверные данные. К счастью, поскольку версия 0.02 - тестовая, то этого позора никто не увидит, и благодаря такому приёму можно спокойно отлаживать программу. На середине этапа разработки имеем такую ситуацию: половина операций отлажена и работает, на месте другой половины имеем их заменители, более или менее приближающиеся к тому, что там должно находиться в действительности. Неверно было бы про такую версию заявить, что уже реализованные в ней операции работают правильно - ведь они, как я уже говорил, взаимосвязаны с другими. Они лишь отлажены - и работали БЫ верно, если бы ВСЕ ОСТАЛЬНЫЕ операции были реализованы полностью. Надеюсь, Вы поняли, что я имею в виду. Итак: Каким задумывался "Апокалипсис"
Вот примерно таким и ЗАДУМЫВАЛСЯ X-COM "Апокалипсис". Прямо скажем, это просто грандиозный замысел. К сожалению, его реализация очень затянулась. С 1994-го года корпели над ним ребята из Mythos. Очевидно, в 1997 они решили, что провозились достаточно, и решили выпустить ту рабочую версию, которая была на текущий момент, украсив её званием версии "1.0" и "финальной", а также повыбрасывав из неё все те элементы, работа над которыми на тот момент ещё не была закончена. И, естественно, на место некоторых в спешном порядке присочинив другие, более быстро и легко реализуемые. Отсюда мы, дорогие товарищи, и имеем "врата миров" вместо устройств перемещения между измерениями, бредятину в плане соблюдения законов сохранения энергии и материи и прочие "прелести", которые я опишу ниже. Иными словами, нельзя вести речь о том, плоха или нет игра "Апокалипсис", ибо строго говоря он таковой не является. "Апокалипсис" есть программа-полуфабрикат. Если бы её доделали в том объёме, в котором задумывалось, мы бы получили шедевр, который бы оставался лучшей игрой мира на протяжении десятилетия - даже несмотря на устаревшую графику. К сожалению, по финансовым соображениям игра была в своём недоделанном виде выкинута на рынок, и в силу этого буквальна нашпигована заглушками, которыми ей пытались придать вид завершённости. Из-за этих заглушек в "Апокалипсис" полным-полно алгоритмических "дыр". Невозможно ругать за них программу, как невозможно критиковать версию 0.4 внутреннего пользования для целей разработки за то, что она не выполняет все функции коммерческого продукта версии 1.0 (хотя бы даже этого продукта и не существовало никогда). Поэтому я ограничусь простой констатацией фактов - из любви к истине. Итак: Алгоритмические ошибки в X-COM 3 "Апокалипсис" Самая страшная ошибка, которая только может быть в игре, моделирующей самодостаточный город - несоблюдение законов сохранения материи и энергии. Фактически программа оперирует не математической моделью города, а ИМИТАЦИЕЙ математической модели. Как следствие, снаряжение, транспорт и даже люди появляются (и исчезают) из ниоткуда (в никуда). Пример: Сколько раз атакуешь враждебную организацию, столько раз внутри находишь всё новых и новых охранников. Спрашивается, откуда берутся эти всё новые и новые охранники и оружие для них? Явно не с рынка - число потенциальных рекрутов, а также вооружений и боеприпасов не изменилось. Допускаю возможность существования иного источника рекрутов. Скажем, помимо рекрутов, желающих записаться в X-COM, существует иной набор рекрутов, желающих записаться в бандиты или религиозные фанатики (в самом деле, не хотят же они все поступить во все организации сразу!). Тогда 2 соображения:
Допускаю, что оружие и боеприпасы в отсутствие совершения покупок на рынке могут происходить из запасов организации. И на этот счёт соображения:
Из того же разряда - страдания юного Вертера по поводу быстрого расходования боеприпасов в бою. Боеприпасы кончаются, а ещё взять неоткуда - и так уже всё подмёл с рынка до последней обоймы. Что поделаешь, если в паршивом городе в неделю производят только 20 обойм! Правда, на базе есть мастерские, оборудованные по последнему слову техники, так что в принципе всё недостающее вооружение и боеприпасы можно было бы производить самостоятельно. А если для того, чтобы их производить, их устройство недостаточно детально известно, можно было бы исследовать соответствующий проект - ведь на базе присутствуют и научно-исследовательские мощности. Конечно, себестоимость производства была бы несколько выше, чем фабричная у оригинального производителя - в силу мелкооптовости производства; зато я экономил бы на отсутствии необходимости платы рабочим - ведь земного вооружения не хватает только в первой части игры, когда инженеры всё равно сидят без дела, а зарплата им идёт. По правде говоря, боеприпасов в X-COM должно катастрофически недоставать - они тратятся не только на миссиях, но и ДОЛЖНЫ БЫЛИ БЫ тратиться в процессе тренировок агентов (которые занимаются этими самыми тренировками непрерывно, когда не спят зубами к стенке). Может мне кто-нибудь объяснить, как можно ЭФФЕКТИВНО тренироваться и при этом НЕ тратить боеприпасы? Я специально отметил слово "эффективно", предупреждая возражения того плана, что мол, возможно используются симуляторы вооружений - какие-нибудь имитации оружия, стреляющие лазерным лучом и т.п. Допускаю возможность существования имитаций в целях обучения, но их постоянное использование НЕМИНУЕМО привело бы к выработке у агента неправильных навыков. Даже более того - можно обучаться меткой стрельбе только из конкретного оружия, и тогда на миссии агенту и надо будет пользоваться именно этим оружием. Немыслимо тренировать человека сутки напролёт стрелять из снайперской винтовки (особенно лазерной - нет отдачи), а потом отправить его на миссию с автоматом и ждать от него результативной стрельбы. Из того же разряда - доставка предметов по городу.
Из того же разряда - каждая организация обладает бесконечным парком транспортных средств. Сколько раз Вы нападаете на какое-либо здание, столько раз будут появляться всё новые и новые корабли (кстати, вылазят непонятно зачем даже корабли, не несущие никакого вооружения - типа транспортов). Т.е. число кораблей, вылетающих на контратаку за раз - ограничено, общее их число - нет. Единственный способ остановить этот бесконечный поток - уничтожить шахты, из которых появляются корабли. К сожалению, при их уничтожении равняется с землёй как само здание противника, так и половина других зданий в округе. По тем же причинам совершенно нет смысла уничтожать наземные транспорты враждебных организаций - их число бесконечно велико. Организации неуничтожаемы. Они не могут разориться и, соответственно, их нельзя разорить, даже если загнать в очень отрицательный баланс. Их ресурсы вооружений и воинов нескончаемы (а про транспорты я уже говорил). Даже если сравнять с землёй ВСЕ здания в городе, принадлежащие корпорации, она преспокойно продолжает существовать дальше. Допускаю, что корпорация может продолжить своё существование за счёт подразделений в других городах, хотя игра и предполагает, что кроме Мегапрайма ничего на свете нет - но в таком случае хотя бы присутствие этой организации в городе должно было бы сойти на нет. Нет возможности проводить миссии совместно с силами другой организации - так, как это задумывалось изначально. Игра просто уведомляет о нападении одной организации на другую и не более того. Хотя движок тактического боя вполне способен поддерживать по крайней мере 4 воюющих стороны, как это видно на примере миссии зачистки от пришельцев здания организации враждебной X-COM - в бою принимают участие контролируемые игроком агенты и контролируемые компьютером пришельцы, охранники и гражданские (вот только последние безоружны). Программа аккуратно сообщает не только чьей стороны сейчас ход, но и кто ею управляет. Казалось бы, если игрок управляет силами X-COM, кто же ещё кроме компьютера может управлять другими воюющими сторонами? Маленькие гномики с арифмометрами, которые живут в процессоре? Без сомнения, это является реликтом с тех времён, когда в игре планировали сделать возможность мультиплейера. Как я уже писал, нет возможности захватить в плен никого из людей ввиду отсутствия в игре тюремных камер (хотя такая возможность задумывалась изначально) - даже если они и валяются без сознания по окончании миссии. Надо полагать, раненых и потерявших сознание бойцов противной стороны агенты X-COM просто приканчивают. После того, как бой в здании враждующей организации выигран, мои солдаты всё равно вынуждены уйти. Почему это, спрашивается, я вынужден убираться из захваченного мною здания? Отчего бы не зажить там припеваючи, или взорвать его, или сдать в аренду? Что хочу, то с ним и делаю, а если это кому не нравится - пусть попробует отобрать его у меня. Кроме того, если атаковать любое здание силами транспорта, из него всегда вылетят несколько транспортов-защитников. Иными словами: в КАЖДОМ здании в городе есть хотя бы несколько транспортов. Почему же я никогда не могу захватить эти транспорты, выиграв бой во вражеском здании и изгнав из него всех его защитников? Куда они могли из него деться? И уж коли на то пошло, начало боя должно разворачиваться непосредственно среди этих транспортов в гараже, куда корабль или транспорт X-COM доставляет агентов. Преглупо выглядит ситуация, когда после завершения боя с враждебной X-COM организации на заводе по производству оружия или складе в качестве трофеев получаешь только те предметы, которые несли НА СЕБЕ вражеские бойцы. А как же содержимое этих складов и заводов? Ведь я же во время миссии видел целые горы ящиков! Отчего бы не прихватить это добро с собой? Что надо - оставлю себе (особенно оружие), что не нужно - продам. Почему это я должен церемониться с собственностью противника? Они пытаются меня уничтожить, а я вынужден беспокоиться о сохранности хранящихся на их складе унитазов? УФОпедия пишет, что трущобы - остатки старой цивилизации, рассадник преступности и вообще не есть гуд (как говорил глава OCP в Robocop-2: "На их месте мы воздвигнем башни из бетона, стали и стекла..."). Почему же, если уничтожить какую-либо трущобу, на её месте ударными темпами воздвигается другая точно такая же? Если бы... Хотелось бы отметить одну вещь: хоть "Апокалипсис" и является незавершённой программой, я очень сомневаюсь, что тактический бой сколько-нибудь изменился бы даже если бы игру и доделали в полном объёме как она задумывалась изначально. Алгоритм действий пришельцев (который, кстати говоря, ОЧЕНЬ слаб) и неподконтрольных игроку действий агентов X-COM был бы, вероятнее всего, совершенно тем же. Имели бы место лишь следующие различия:
Конечно, последний пункт сделал бы игру более интересной, но едва ли добавил бы что-либо с тактической точки зрения - ведь эти "новые" пришельцы управлялись бы всё тем же прежним "пришельцевским" алгоритмом (Вы, наверное, обратили внимание, что все человекообразные пришельцы вне зависимости от вида в бою ведут себя, по сути, совершенно одинаково), а "новые" виды оружия едва ли бы выбились из широкого диапазона уже наличествующих в игре параметров мощности и меткости имеющихся типов вооружений. Знаете, чего мне более всего не хватало в "Апокалипсисе" по сравнению с первыми двумя играми сериала?
Это - большое упущение создателей, хотя, кто знает, в ПОЛНОЙ версии эти пробелы, возможно, были бы восполнены. Так что играйте совершенно спокойно - в тактическом плане Вы ничего не потеряли. А ведь именно тактическим боем игра всем и глянется. Вот отсутствие возможности сетевой игры, особенно разными игроками за разные стороны одновременно - вот это действительно потеря! Заключение Из первых в списке описанных ошибок видно, что игра умеет вести учёт ресурсов в городе только для одной организации - X-COM, а для всех других этого не делает. Таким образом игрок играет по одним правилам, а его компьютерные противники - по другим. Попробуйте теперь у таких противников выиграть! Ясно, что это невозможно. Легче покончить с угрозой из другого измерения, чем прекратить деятельность какого-то паршивого культа Сириуса (хорошо, что не это является условием победы в игре!). Это нечестно и даже подло по отношению к игроку. И всё же, пока ещё движок игры не устарел безнадёжно, у меня остаётся надежда, что выйдет наконец версия игры, в которой появятся отсутствующие на данный момент элементы и ещё много других интересных вещей. От автора По-моему, я перечислил основные ошибки. В игре ещё много других алгоритмических ошибок, но они уже, как мне кажется, в меньшей степени связаны с её недоделанностью, так что я перечислю их в отдельном подразделе. Если у Вас есть какие-либо соображения по этому поводу, то пожалуйста, поделитесь ими, и, если они того заслуживают, я их обязательно опубликую, естественно, указав Ваше имя. Автор: Александр Смолов |
|
|
|
|
© 1998-2008, Сергей (RSV) Радьков. |
|