stranger
|
Боевой AI, популятор и опасные системы |
|
![Не в сети Не в сети](./styles/subsilver2/imageset/ru/icon_user_offline.gif) |
---Elite--- |
![Аватар пользователя](./download/file.php?avatar=110_1386400902.png) |
Зарегистрирован: 15.05.11 Сообщений: 1531
|
На этот раз предисловие к моей презентации получилось настолько объемистым, что оно определенно заслуживает отдельной темы.
Геймер, помнящий еще Oolite 1.75, наверняка обратил внимание, что нынешний Оониверсум стал намного опаснее для зеленого Джеймсона. Геймер-новичок так вообще в шоке, как в этом мире можно вообще выжить и прокачаться хотя бы до топливного инжектора. Игра и правда стала требовать нового уровня тактического мышления. Справедливости ради, это нынешний геймер старую Элиту не застал или делает вид, что не помнит. Вот там реально была жесть. Целиться-то при пушечной дуэли уже за пределами десятка километров приходилось не в силуэт корабля, а в жирный пиксел. Без джойстика, да! Про системы захвата и распознавания цели с визуальными хелперами (бокс вокруг захваченной цели и директорная стрелка) не было и речи. Никакие приемы заблаговременного обнаружения угрозы и уклонения от боя не работали, потому что движок игры подсевал ботов в пузыре, окружающем корабль геймера, независимо от избранного маршрута, и они с ходу принимались с геймером взаимодействовать. Тактика выживания реально сводилась к тому, чтобы замесить на рефлексах всех, кто пытается тебя прикончить, и добраться до станции, пока тебя не прикончили. Это я не к тому, что нынешний геймер не чета давешному - эту вкусную тему уместней вбросить куда-нибудь в ветку "прочее". Возвращаясь к Оолиту - вам не показалось, Оониверсум поколения 1.8# и правда стал опаснее, чем был в 1.7#. На то есть две причины - очевидная и неочевидная.
Очевидная причина: боевой AI ботов стал намного лучше. Нынешний бот имеет быструю реакцию и метко ведет огонь с предельной дистанции. Как раз эта часть задачи технически самая простая. В пределе бот способен точно поражать цели на максимальной дистанции с первого выстрела с лагом порядка миллисекунд. Понятно, что при таких настройках AI у геймера с его человеческой реакцией никаких шансов выиграть пушечную дуэль с ботом нет. Поэтому в AI ботов предусмотрена симуляция конуса ошибок прицеливания и времени реакции, сравнимых с меткостью и временем реакции среднего геймера. Конус ошибок стал уже, а симулированное время реакции меньше. Но это далеко не все. Нынешний бот не заходит в лобовую атаку по прямой - он умеет уклоняться от встречного огня (опять же с симулированным временем реакции), в ближнем бою не ложится в предсказуемый установившийся вираж, а хаотично маневрирует, срывая огневое решение. Это все еще не AI хорошего авиасима (динамика в Оолите убогая), но это уже интересный AI с нетривиальным поведением. Более того, AI научились работать в команде. В Оониверсуме 1.7# пиратские группы были рыхлыми скоплениями, каждый бот воевал сам за себя. Стоило боту оказаться за пределами поля сканера, он моментально терял к геймеру интерес и выходил из погони. Опытному геймеру ничего не стоило разрыхлить группу и расправиться с пиратами поодиночке. Сейчас такое не прокатывает: потеряв геймера из виду, ведомые продолжают держаться за лидером и продолжают погоню до тех пор, пока лидер не потеряет свою цель. Изменения в тактике очевидны. Атака пиратского Питона с эскортом в старом Оониверсуме была утиной охотой, сейчас это не очень умный поступок, если ваш корабль не оснащен военным лазером. Добавлю к этому, боты адекватней оценивают соотношение сил и криминал-одиночка на Мамбе с импульсной пукалкой, скорее всего, воздержится от атаки на Кобру 3 XT с военным лазером. Геймеру тоже приходится адекватно оценивать соотношение сил и выбирать цели по зубам.
Неочевидная причина: заново переписанный популятор. В старом Оониверсуме популятор при засеве системы принимал в расчет только ее паспорт без учета окружения. В анархической системе, к примеру, популятор увеличивал количество пиратов и уменьшал количество патрульных кораблей Галкопа. В корпоративной системе - наоборот. Новый популятор принимает во внимание окружение системы и если демократическая Дисо, к примеру, имеет две анархии по соседству, то дополнительно к местным торгашам, копам и криминалам популятор добавляет вероятность появления пиратов из этих соседних систем. Я хочу ясно подчеркнуть две важных особенности работы популятора. Во первых, популятор засевает систему рэндомно. Он руководствуется определенным диапазоном значений: пиратских кораблей в пределах от стольки-то до стольки-то, больших кораблей минимум столько, максимум столько и так далее. При очередном визите в систему этих дополнительных пиратских групп может не быть, если популятор рэндомно их не добавит. Но в целом за счет опасного соседства Дисо перестала быть безопасной системой, где зеленый Джеймсон нагуливал жир, лишь изредка натыкаясь на плохих парней. В нынешней Дисо такие встречи происходят как минимум через два раза на третий. И во вторых, популятор добавляет в систему не корабли определенного типа, а корабли с определенной ролью. Популятор просматривает все shipdata.plist, выбирает из них, к примеру, все записи с ролью "пират" или "старатель" и формирует популяцию пиратских кораблей или старателей пропорционально объявленному весу роли. Такой подход позволяет разработчикам пакетов включать новые корабли в Оониверсум естественным образом. Если вы хотите, к примеру, просто добавить в Оониверсум Бушмейстер из пакета Staer9's Shipset, вам не нужно писать скрипт с принудительным засевом этого корабля. Для популятора достаточно того, что в shipdata.plist этот Бушмейстер объявлен под ролью "старатель". При засеве системы, формируя популяцию старателей, популятор выберет этот корабль из списка и с определенной вероятностью добавит к популяции системы, причем сам позаботится определить для него типичное местообитание где-нибудь в астероидном поясе.
Все изложенное выше относится в основном к дефолтной игре. Насколько активно разработчики пакетов используют эти новые правила и возможности? Честный ответ на этот вопрос - да почти никак. Ну, вышли из употребления пакеты вроде ToughGuys, в которых пиратские корабли были прокачаны в сравнении с дефолтными установками, чтобы хоть как-то скомпенсировать скуку утиной охоты. Сейчас даже дуэль с одиночным Крайтом - вполне себе нескучное занятие. ИМХО меньше стал интерес к юбершипам и вундервафлям по той же причине: тут бы с дефолтным зоопарком управиться. Конечно, квалифицированные разработчики пакетов прокурили, что старый способ принудительного засева кораблей на трассе больше не рекомендуется и научились доверять эту работу системному популятору. Но в целом есть такое ощущение, что как и в случае с новым экономическим движком, новые возможности востребованы в среде разработчиков пакетов где-то с пресловутым 3% к.п.д. паровоза. Есть, однако, два интересных пакета, которые привлекли мое внимание настолько, что мне захотелось раскрыть их потенциал по своему.
|
|
|
![](images/spacer.gif) |
stranger
|
Re: Боевой AI, популятор и опасные системы |
|
![Не в сети Не в сети](./styles/subsilver2/imageset/ru/icon_user_offline.gif) |
---Elite--- |
![Аватар пользователя](./download/file.php?avatar=110_1386400902.png) |
Зарегистрирован: 15.05.11 Сообщений: 1531
|
Random Hits Shipset (автор spara)
Этот пакет я уже упоминал среди опасностей, поджидающих зеленого Джеймсона. Пакет добавляет в Оониверсум банды криминалов с отмороженным AI из Random Hits, в сравнении с которыми обычные пираты, право, выглядят романтическими разбойниками со своим кодексом чести. Если у вас установлен только основной пакет Random Hits, криминальные банды вам ничем не угрожают до тех пор, пока вы не возьметесь выполнять задания по ликвидации их боссов. Random Hits Shipset - дело другое. Пакет исходит из вполне разумного допущения, что геймер может стать объектом интереса ОПГ помимо своего желания. Вот теперь самое время рассказать еще об одной интересной возможности системного популятора. К кораблю, объявленному в shipdata.plist, можно привязать скрипт, проверяющий определенное условие. Если это условие выполняется, скрипт возвращает значение true и системный популятор рандомно добавляет корабль в систему исходя из его объявленной роли, как я описал выше. Если нет - скрипт возвращает значение false и засев корабля блокируется. Конкретно в Random Hits Shipset скрипт, управляющий засевом криминалов, работает так. Если система анархическая, скрипт возвращает значение true. Если нет - проверяется окружение системы в пределах 7 LY. Если в 7 LY окрестности таких систем нет, возвращается значение false. Если есть хоть одна анархическая система, скрипт сравнивает рандомную величину с порогом, который зависит от политического устройства местной системы. Корпоративные системы имеют максимально высокий порог безопасности, но даже в их случае есть не равная нулю вероятность, что скрипт вернет значение true. Идея отличная - я использовал этот скрипт как прототип в своем пакете Feudal Raiders, который дополняет Оониверсум кораблями из пакета The Feudal States, если в 7 LY окрестностях есть феодальные системы. Но в случае с Random Hits Shipset алгоритм можно доработать. Привязка феномена организованной преступности исключительно к анархическим системам - не слишком ли упрощенное правило? И разве не логично допустить, что общий уровень опасности системы для навигации как-то зависит от количества соседей с нестабильными политическими режимами? Думаю, вы поняли идею. По хорошему, нужен индекс опасности системы, учитывающий совокупный вклад всех ее соседей в пределах 7 LY.
|
|
|
![](images/spacer.gif) |
stranger
|
Re: Боевой AI, популятор и опасные системы |
|
![Не в сети Не в сети](./styles/subsilver2/imageset/ru/icon_user_offline.gif) |
---Elite--- |
![Аватар пользователя](./download/file.php?avatar=110_1386400902.png) |
Зарегистрирован: 15.05.11 Сообщений: 1531
|
Skilled NPCs (автор cim)
Ключевая особенность этого пакета - он делает ботов более опасными бойцами, модифицируя их параметр accuracy. Боты с высоким значением параметра accuracy, как можно догадаться, ведут более меткий огонь и поражают цели с большей дистанции, но это далеко не все. Боты с высоким значением параметра accuracy более склонны к непредсказуемым для геймера маневрам и лучше оценивают тактическую обстановку. Бот, вооруженный военным лазером, к примеру, не будет тупо переть в лоб по прямой на максимальной скорости, а будет стараться расстрелять цель издалека, оставаясь вне зоны ответного огня лучевой пушки. Численное значение параметра accuracy может принимать значения от -5 до +10.
Bad AIs
Боты с отрицательным значением параметра accuracy (то есть в пределах от -5 до 0) - те самые лузеры, соискатели премии Дарвина, пушечное мясо для практики и набора рейтинга. AI такого бота сопоставим с навыками совсем зеленого Джеймсона: бот прет в атаку по прямой, не обращая внимания на ответный огонь, и пытается вести огонь невзирая на перегрев своей пушки. Уйти от атаки такой бот пытается по предсказуемой прямой линии, на огонь в угон почти не реагирует, кормовым лазером пользуется абы как.
Normal AIs
Боты с параметром accuracy в пределах от 0 до 5. По уровню боевых навыков сопоставимы с Джеймсоном рейтинга Harmless, который успел приобрести какой-то боевой опыт и даже добился нескольких побед. Такой бот уже умеет учитывать перегрев пушки и прерывает атаку, чтобы ее охладить, или переключается на кормовую. Напоровшись на встречный огонь, делает маневр уклонения. При огне в угон тоже старается петлять, а не уходить по прямой. Точность огня из кормового лазера все еще хуже, чем из носового, но ненамного.
Skilled AIs
Боты с параметром accuracy в пределах от 5 до 10. Примерно соответствуют навыкам геймера с рейтингом от Almost Harmless на нижем крае шкалы до Competent на верхнем. Умеют энергично уклоняться от встречного огня и тут же возобновить атаку, петляют при стрельбе в угон. Ведут одинаково точный огонь изо всех доступных портов (по счастью для геймера, бортовые порты дефолтных ботов пушек не имеют). Если вы видите, как заходящий в атаку Крайт "качает маятник", срывая вам огневое решение - это он, родимый, боец десятого уровня. В принципе опытный терпеливый геймер дуэль с таким ботом обычно выигрывает или как минимум сводит вничью, но в одиночку против троих таких - ну нафиг, даже не пробуйте. Ну вот, если вы все еще думаете, что бои с ботами в Оолите - реальная жесть, я вам немножко подсыплю фасоль на рану. При засеве дефолтной популяции параметр accuracy распределяется в диапазоне от -5 до 5. Значения от 5 до 10 зарезервированы для особых случаев, которые должны быть явно объявлены через shipdata.plist или через скрипт.
Итак, что именно делает Skilled NPSc. Первым делом при засеве кораблей популятором скрипт проверяет их параметр accuracy. Если accuracy >= 5, это бот из пакета с явно прописанными настройками, Skilled NPSc оставляет его как есть. Все отрицательные значения параметра accuracy меняют знак на положительный. Явные недоумки из популяции изымаются - считается, что они успели получить свою премию Дарвина без участия геймера. Остаются середнячки с нормальным AI. К параметру accuracy, который теперь находится в диапазоне от 0 до 5, прибавляется модификатор, который состоит из двух частей. Постоянная часть - это поправка к уровню сложности, которую геймер может настроить через OXP Config или непосредственно в скрипте. По умолчанию равна нулю. Если вы, к примеру, установили уровень сложности на +2, все боты, включая таргоидов, увеличат параметр accuracy на 2 единицы. Переменная часть модификатора добавляется индивидуально и выбирается рандомно из диапазона, который определяется политическим устройством системы и ролью корабля. В целом правила такие: Пираты, наемные киллеры, торгаши, старатели, курьеры и контрабандисты получают максимальный бонус к параметру accuracy в анархических системах. При этом торгаши, старатели, курьеры и контрабандисты получают половинный бонус, так как по роду своих занятий они стараются вступать в огневой контакт лишь в случае крайней необходимости. Пилоты патрульных кораблей Галкопа и законопослушные охотники за призами наоборот получают максимальный бонус к параметру accuracy в корпоративных системах. Будучи профессиональными бойцами, пилоты Галкопа имеют удвоенный базовый параметр accuracy, к которому добавляется рандомный бонус. Пилоты кораблей эскорта получают рандомный бонус к параметру accuracy независимо от политического устройства системы, так как по роду занятий им приходится бывать в разных системах и часто вступать в бой, чтобы защищать торгашей. Таргоиды - двойной базовый параметр accuracy независимо от политического устройства системы. Ну и напоследок скрипт проверяет полученное значение параметра accuracy пиратов и охотников. Если, к примеру, после всех модификаций параметр accuracy пиратского корабля все еще меньше заданного порога (0 в корпоративной системе и 7 в анархической), добавляется еще один бонус, величина которого зависит от политического устройства системы. Аналогичное правило действует для охотников, но для них заданный порог максимален в корпоративных системах.
То же самое на паре примеров в цифрах.
Листи, корпоративная система (gov = 7). Популяция пиратов в системе после инверсии отрицательных величин имеет базовый параметр accuracy в пределах 0...5. Бонус к параметру accuracy для пиратов равен rnd * (7 - gov), то есть для пиратов равен нулю. Нижний порог accuracy < (7 - gov) тоже равен нулю, так что пиратская популяция в корпоративной системе остается как есть. Пиратских кораблей с accuracy > 5 в корпоративной системе нет, если их не добавляют явно другие пакеты. Копы в Листи получают удвоенный модификатор параметра accuracy, то есть теперь их параметр accuracy находится в пределах 0...10. Плюс к этому системный бонус rnd * gov от 0 до 7. В итоге средний коп в системе имеет accuracy (5 + 3.5) = 8.5, причем верхнего предела accuracy = 10 достигает много бойцов. Проверки нижнего предела параметра accuracy для копов нет и в их популяции попадаются середнячки с accuracy в пределах 0...5, но в целом популяция копов в корпоративных системах - элита Галкопа.
Теперь смотрим анархическую Ридкуат (gov = 0). Популяция пиратов с базовым параметром accuracy 0...5 получает бонус rnd * (7 - gov), в среднем получается (2.5 + 3.5) = 6 и определенная доля пиратов получает максимальный параметр accuracy = 10. Но так как проводится дополнительная проверка на нижний порог accuracy < (7 - gov), то все пираты с accuracy < 7 получают дополнительный бонус к accuracy 0.75 * (7 - gov), то есть +5.25. В результате популяция пиратов в системе имеет accuracy в пределах 7...10. Копы изначально получают удвоенный параметр accuracy в диапазоне от 0 до 10, и на этом все - никаких системных бонусов в анархической системе для них нет.
В целом Оониверсум с этим пакетом становится опаснее, при этом увеличивается вилка между системами - если в корпоративных системах небольшой рост агрессивности пиратов за счет замены пафосных недоумков на бойцов с нормальным AI более чем компенсируется ростом квалификации патрулей Галкопа, то в анархических системах пираты лютые, а патрули Галкопа мало того что малочисленны, но еще и существенно уступают пиратам в боевой подготовке. Небольшая техническая деталь: при определении бонуса к параметру accuracy скрипт принимает в учет политический строй не местной системы, а системы принадлежности корабля (ship.home_system). Но поскольку при засеве систем популятором home system по умолчанию совпадает с локальной системой, в игровом плане разницы нет. Поэтому диапазон значений параметра accuracy ботов одинаков для всех систем с данным политическим строем, окружение в учет не берется. В принципе все логично в рамках лора, если принять, что анархические системы - и правда убогие отстойники для неудачников, которые вместо неустанного повышения боевого мастерства крышуют криминал, жрут лакоголь и нюхают дурь. Но мы-то знаем, что в реальной реальности обычно все с точностью до наоборот: реальный боевой опыт приобретается лишь в регулярных столкновениях с опытным опасным противником, и анархические системы как раз дают массу возможностей для набора боевого опыта. И кстати, что за пафосные недоумки нобигают на корованы в корпоративных системах, где копы умелы и многочисленны? Не следует ли ожидать, что рейды в такие плотно охраняемые системы требуют определенного уровня подготовки? И снова тот же вопрос, отчего бы не использовать как входной параметр не шаблонный множитель, заданный политическим строем системы, а индекс опасности, зависящий от ее окружения?
|
|
|
![](images/spacer.gif) |
stranger
|
Re: Боевой AI, популятор и опасные системы |
|
![Не в сети Не в сети](./styles/subsilver2/imageset/ru/icon_user_offline.gif) |
---Elite--- |
![Аватар пользователя](./download/file.php?avatar=110_1386400902.png) |
Зарегистрирован: 15.05.11 Сообщений: 1531
|
Мы подошли к сути моего алгоритма. Изначально я планировал создать нечто вроде матрицы взаимоотношений, в которой будут учитываться взаимные симпатии родственных режимов и антагонизм неродственных, но потом отказался от этой идеи в пользу предельно простого алгоритма. История двух мировых войн и множества локальных на Гайе доказывает, что формальная близость политических систем влияет даже на вероятность возникновения полномасштабных военных конфликтов между государствами чуть более чем никак, а уж пиратству и организованной преступности общие идейные скрепы вообще по барабану. Базовый уровень опасности системы по прежнему определяется ее политическим строем, но учитывается вклад каждого соседа в радиусе 7 LY. Нуль шкалы опасности соответствует конфедерации. Силовые формы политического устройства от коммунизма к анархии увеличивают уровень опасности, демократии и корпорации уменьшают. Так как центр шкалы смещен, для компенсации влияния одного анархического соседа нужно несколько соседей со стабильной формой правления. Вес влияния каждого соседа в пять раз меньше, чем базовый уровень, но их совокупного влияния вполне достаточно, чтобы превратить, к примеру, безопасную саму по себе демократическую Дисо в умеренно опасную систему (негативное влияние анархических Усзаа и Риедкуат плюс феодальной Орерве более чем перевешивает позитивное влияние корпоративных Листи и Оррере). Полученное значение уровня опасности сравнивается с уровнем предельной опасности: анархическая система, окруженная анархическими соседями. Индекс опасности системы соответственно укладывается в диапазон от -0.4 (предельный случай для корпоративной системы) до +1.0 (предельный случай для анархии). Подробное описание алгоритма расчета индекса опасности с конкретными примерами и сводной статистикой, я думаю, уместно изложить в отдельном документе. А здесь я отделаюсь общими фразами. В целом окружение локальной системы обладает буферными свойствами: низкий сам по себе индекс опасности систем со стабильными формами правления растет, высокий индекс опасности нестабильных систем снижается. Буферный эффект, что вполне ожидаемо, максимален в плотно заселенных регионах вроде Железных Звезд на первой карте. В принципе в процедурно сгенерированном Оониверсуме возможно существование островов порядка и стабильности, индекс опасности которых за счет особо удачного соседства может принимать отрицательные значения, но смещенная шкала гарантирует, что такие оазисы благолепия будут встречаться лишь изредка. С другой стороны, и индекс опасности, близкий к максимальному пределу, будет встречаться лишь изредка и зловещая репутация особо опасных регионов получит мотивированное подкрепление. Ни технологический уровень соседних систем, ни их экономический уклад, ни ВВП в алгоритме расчета индекса опасности явно не учитываются. Эти моменты имело бы смысл учитывать при симуляции полномасштабных военных конфликтов. Пиратство и прочие формы организованной преступности - по определению межсистемный бизнес, не ограниченный рамками и ресурсами отдельно взятых локальных систем. Замечу все же, что высокотехнологичные и индустриальные системы с высоким ВВП в целом более безопасны, постольку в дефолтном Оониверсуме они как правило имеют более стабильные формы правления. Расстояние между системами также в явном виде не принимается во внимание. Я не знаю, как именно работает популятор и принимает ли он во внимание расстояние до соседних систем при засеве локальной системы. Если да - нет смысла умножать сущности сверх необходимости.
А теперь два примера реализации индекса опасности на практике.
|
|
|
![](images/spacer.gif) |
stranger
|
Re: Боевой AI, популятор и опасные системы |
|
![Не в сети Не в сети](./styles/subsilver2/imageset/ru/icon_user_offline.gif) |
---Elite--- |
![Аватар пользователя](./download/file.php?avatar=110_1386400902.png) |
Зарегистрирован: 15.05.11 Сообщений: 1531
|
Random Hits Shipset ST (модификация пакета spara)
В этом пакете я модифицировал условие засева в локальной системе криминальных банд. Теперь скрипт возвращает значение true с вероятностью, пропорциональной индексу опасности системы, и криминалы могут появиться в системе, даже если в ее 7 LY окрестностях нет ни одного анархического соседа.
Skilled NPCs ST (модификация пакета cim)
Параметр accuracy засеянных ботов, как вы догадались, зависит от индекса опасности системы. Но это не всё: правила присвоения бонуса к параметру accuracy тоже изменились. Копы в опасных системах прошли сито отбора Дарвина и являются более опасными бойцами, чем их коллеги из курортных систем. Новые правила выглядят так:
Начальные правила засева популяции остались без изменений. Все отрицательные значения параметра accuracy меняют знак на положительный. К параметру accuracy, который теперь находится в диапазоне от 0 до 5, прибавляется постоянная величина модификатор уровня сложности (по умолчанию равный нулю). Рандомный бонус к параметру accuracy равен rnd * 10 * индекс опасности системы. Пираты, наемные убийцы и охотники за призами получают рандомный бонус, привязанный к индексу опасности системы. Проверка на минимальный уровень параметра accuracy из скрипта изъята: если, к примеру, пират с accuracy = 1 получил бонус +1, то даже в анархической системе с этим итоговым параметром accuracy = 2 он так и останется. Пилоты Галкопа имеют удвоенный базовый параметр accuracy, к которому добавляется рандомный бонус, тоже привязанный к индексу опасности системы. Старатели, торгаши, курьеры и контрабандисты получают половинный рандомный бонус, привязанный к индексу опасности системы. Корабли эскорта получают бонус rnd * 5, не привязанный к индексу опасности системы. Таргоиды, как и в исходном скрипте, получают двойной базовый параметр accuracy независимо от индекса опасности системы.
Какие последствия новые правила имеют для геймера? Я в курсе своей репутации основоположника пути бусидо в русском секторе Оониверсума. Но как ни странно, перенастроенный пакет получился мягче оригинала. Разгиб вилки между безопасными и опасными системами уменьшился, при этом опасность корпоративных систем и демократий в среднем выросла ненамного, а опасность анархий и феодальных систем уменьшалась существенно. В Дисо, к примеру, по правилам канонического пакета пираты получают бонус к параметру accuracy rnd * 1 и с учетом того, что популяция подрезается снизу до минимального значения accuracy = 1, популяция пиратов укладывается в диапазон параметра accuracy от 1 до 6 со средним значением параметра accuracy = 3.5. По моим правилам индекс опасности Дисо равен 0.15 и пираты получают бонус rnd * 10 * 0.15, то есть максимум +1.5. Так как популяция снизу не подрезается, получаем в итоге диапазон параметра accuracy от 0 до 6.5 со средним значением 3.25. В анархиях в исходном пакете cim все очень жестко. Как я уже писал выше, пираты в анархических системах имеют минимальный параметр accuracy = 7, при этом как бы не большинство бойцов получают максимальное значение accuracy = 10. Поэтому правило боя для зеленого Джеймсона, не прокачавшего свою Кобру до "железной задницы", в анархиях сводится к трем словам: даже не думай. В моем пакете типичная анархия в окружении соседей имеет индекс опасности где-то от 0.5 до 0.7. Возьмем близкое к среднему 0.6, тогда рандомный модификатор увеличивает параметр accuracy в среднем на 3 единицы и максимум на 6, то есть полученная популяция ботов почти равномерно заполняет диапазон от 0 до 10 со средним близко к 5.5. Бойцов с максимальным уровнем параметра accuracy даже в анархических системах немного и внимательный геймер имеет возможность выбора противника по силам. Несомненный плюс новой системы - каждая система теперь имеет индивидуальный уровень опасности. При игре по дефолтным правилам геймер принимает в учет политический строй системы лишь как сопутствующее обстоятельство и то, если речь идет о прокладку пути через нее. По новым правилам анархическая система Есзараксе в регионе Тортуга намного опаснее анархической Риедкуат в Старых Мирах не только в силу оторванности от ближайшего высокотехнологичного мира, где можно в случае крайней нужды отремонтироваться, но и в силу близкого соседства с тремя анархическими системами.
|
|
|
![](images/spacer.gif) |
Гость
|
Re: Боевой AI, популятор и опасные системы |
|
|
Здравствуйте, уважаемый stranger! Скажите пожалуйста, не могли бы вы поделиться вашими модификациями вышеупомянутых пакетов? Я так и не смог найти ссылки на них через поиск сайта, а во внутреннем менеджере, предсказуемо, ссылки только на оригинальные пакеты. Я поставил Skillen NPC, но душа просит чуть большего. Если же возможности поделиться по какой-либо причине нет, что ж, значит полезу в скрипты самостоятельно. Большое спасибо!
|
|
|
![](images/spacer.gif) |
ikki24
|
Re: Боевой AI, популятор и опасные системы |
|
![Не в сети Не в сети](./styles/subsilver2/imageset/ru/icon_user_offline.gif) |
Harmless |
Зарегистрирован: 27.01.20 Сообщений: 1
|
Прошу прощения за фальстарт с просьбой о ссылке: я смог найти ссылку на материалы в авторской колонке автора.
|
|
|
![](images/spacer.gif) |
stranger
|
Re: Боевой AI, популятор и опасные системы |
|
![Не в сети Не в сети](./styles/subsilver2/imageset/ru/icon_user_offline.gif) |
---Elite--- |
![Аватар пользователя](./download/file.php?avatar=110_1386400902.png) |
Зарегистрирован: 15.05.11 Сообщений: 1531
|
ikki24: Прошу прощения за фальстарт с просьбой о ссылке: я смог найти ссылку на материалы в авторской колонке автора. Все в порядке. Спасибо за интерес. Я пока (на время, надеюсь) отошел от активной разработки по личным обстоятельствам и не конвертировал эти пакеты в формат OXZ. По хорошему, надо презентоваться на англоязычном форуме - и надеюсь, в будушем выберу на это время.
|
|
|
![](images/spacer.gif) |
|
|