Электронная библиотека

Хакер


Хакер

О чем думают монстры в Кваке

Xakep, номер #006, стр. 006-071-3


Опять рассмотрим идеальный случай. Поскольку в компьютере есть все данные игрока, монстр знает, куда смотрит твое оружие. Стало быть, можно создать такого бойца, который, как только на него будет направлен шотган или BFG, совершит скачок в сторону. Этот монстр будет почти неуязвим, попасть в него можно только случайно. Нет, я понимаю, что ты шибко крутой, реакция у тебя сверхъестественная и ты можешь подстрелить муху в полете. Но нервные импульсы распространяются по клеткам со скоростью около 120 м/сек, и от того момента, как ты решишь выстрелить, до нажатия кнопки мыши пройдет не менее одной сотой секунды. А в недрах компьютера все сигналы летят со скоростью света, стало быть, реакция монстра заведомо превышает твою.

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

Такой алгоритм иногда называют "танцующая муха", но это прямое оскорбление бедного насекомого. Раз уж я тут выступаю в качестве адвоката, заступлюсь и за нее. Летящая на запах дерьма муха действительно совершает скачки из стороны в сторону, кружит на месте, словом, движется вроде бы хаотично. На самом же деле ее действия вполне обоснованны, ведь запах, в отличие от света и звука, распространяется не по прямой, колебания воздуха перемешивают молекулы дерьма, создают локальную концентрацию в одном месте и пустоту в другом. Муха же летит всегда в том направлении, где запах погуще. Как видишь, ее поведение обусловлено изменениями в окружающей среде, а монстр действует случайным образом.

Стрельба по тарелочкам

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

Назад на стр. 006-071-2  Содержание  Вперед на стр. 006-071-4