Astra55 Far Cry: AI автобаланс: как он устроен?
[more] Одним из интересных нововведений в Far Cry можно считать опцию автобалансировки сложности игры. В своих исследованиях наша команда старается разобраться в можестве файлов *.lua, которые прописывают условия и характеристики игрового мира, а также правила по которым реализуются многие события в нем. Итак мы обнаружили два файла gamerules.lua и BALANCING.lua, которые имеют прямую связь с балансировкой уровня сложности в игре. Изучение структуры этих скриптов дает повод предполагать систему работу автобаланса сложности игры. Однако окончательные выводы мы сможем сделать только тогда когда станет ясно за что отвечает каждый из этих скриптов (весь каталог scripts.pak).
В файле balancing.lua прописывается количество «позволенных смертей игрока» (allowed death) в привязке к каждому промежутку между контрольными точками. Например: catacombs_C1 = { deaths = 5, } Запись означает, что для участка первой контрольной точки игрок может без последствий умереть 5 раз. В случае если он умирает большее количество раз – сложность уменьшается. По всей видимости если игрок проходит его без превышения данного лимита игра не станет повышать сложность, это повышение реализуется другими способами (ниже).
Файл gamerules.lua описывает условия нанесения повреждений противнику (будь то мерк или мутант) и наоборот (повреждения игроку от этих "друзей"). Схема реализованная в этом файле дает повод говорить о том, что в зависимости от количества нанесенных противнику повреждений и наоборот динамически происходит выбор таблицы модификаторов повреждений, что влияет на сложность игры в реальном времени.
Таблицы модификаторов это условно принятые множители для параметров повреждения для каждого из участков тела в зависимости от того кто и кому их наносит:
ai_to_player_damage = { 1, 1, 1, 0.5, 0.5, 0.5 }
Расшифровка такая:
Искусственный интеллект наносит игроку (ИИ ) (ai_to_player_damage): а в скобках указаны зоны повреждений: Голова=1, сердце=1, корпус=1, рука=0.5, нога=0.5, поражение взрывом=0.5.
Таким образом если игрок успешно и постоянно наносит повреждений существенно больше чем получает в ответ, игра подменяет эту таблицу ставя игрока в более сложные условия. Например выстрел в голову будет перемножаться не на 10 а на меньшее число и так далее. Таким образом изменяется динамически "стойкость" противника по отношению к вашим выстрелам.
Я постараюсь разобраться со всеми скриптами до конца и этот документ будет доработан в случае открытия новых неизвестных.
[/more] источник
http://www.farcry.ru/data/dsp/ai_autobalance/ вот еще алтернативный способ прохождения последнего уровня
[more]
неслолько иной способ:
где лежит арсенал броня аптечки берется пистолет
и с помощью его гонится 2 стула к внутренним воротам за которыми все эти монстры. открываем их и двигаем на место закрытия эти стулья
получается что ворота отрыты постоянно. дальше мы открываем внешние ворота а сами остаемся внутри со всеми боеприпасами и аптеками и растреливаем монстров которые во внутрь войти не могут
проблема одна -двери дергаются все равно и стулья могут сползти с места
так же есть еще точка между двумя этими дверями где они до тебя сидячего не дотягиваются но и стрелять не могут т.е. стоят просто и их можно просто расстрелять [/more] источник
http://www.farcry.ru/forum/viewtopic.php?t=48