Помощь - Поиск - Пользователи - Календарь
Полная версия: ИИ для морского боя
Форум студии Seaward.Ru > Прочие игры > Разработка на Unity. Мини-игры "Пиратики" и т.п.
Страницы: 1, 2, 3
Джафар
Цитата(Rolando @ Jun 14 2009, 16:17) *

А под каким флагом шли Вы и какой нации и НГЗ были ?


Голландский флаг был у меня, НЗГ небыло ни от одной сторон, а даже наоборот "Восхищение".
Serginio
Не буду описывать какое-то конкретное сражение, т.к. сути основных тактических моментов это не изменит.

Итак самыми важными стратегическими факторами для оценки ситуации до схватки считаю.
1. Направление ветра.
2. Сила ветра.
3. Калибр орудий противника(ов), т.к. от этого зависит дистанция стрельбы.
4. Количество и скоростные данные кораблей противника.
5. Умения вражеских кэпов, по убыванию значения: защита, пушки, меткость, абордаж, нава.

Практически всегда хожу парой. Целью ставлю "Всех абордировать". Перед боем опустошаю трюм своего флагмана оставляю только и исключительно: картечь (количество на 10 круговых выстрелов), книппеля и бомбы (в половину от картечи), порох (на 10 круговых), оружие и лекарства по числу максимальной команды с перегрузом. Всё остальное перегружаю компаньону. Команду перегружаю себе.
Но это индивидуальная тактика геймера и для ИИ она как бы бесполезна. Но вот дальнейшие мои действия ИИ должен бы учитывать-прогнозировать, иначе ему придётся худо biggrin.gif

Итак. Команда компаньону "Уплыть", иначе ему начинают сбивать паруса и выбивать команду, а я этого очень не люблю. Сам, сохраняя недоступную для стрельбы противника дистанцию, ухожу так, чтоб оказаться от него с наветренной стороны. Первой жертвой выбираю противника (в порядке убывания приоритетов):
1. С максимально мощным вооружением. Если вооружение одинаковое, то с макчимальными статами "пушки и меткость" у вражеских кэпов. Если и тут разница небольшая, то с минимальной "защитой" у кэпа.
2. Максимально скоростного (корветы, заразы достают).
3. Ближайшего в строю.

Тактиа "Акула", как наиболее используемая - быстрое сближение по ветру, активный обстрел картечью выбранной в эскадре противника жертвы (возможно абордаж), быстрый разрыв дистанции по ветру. Такие атаки повторяю циклически, до полного уничтожения противника. Абордируемых или топлю предварительно ограбив, или сажаю на них компаньонов и командую "уплыть". Экипаж обычно перегружаю назад на флагмана, игра это позволяет при постановке борт к борту (делаю это больше для сохранения команды). Активный обстрел жертвы провожу из зоны, где атакуемый мною шип прикрывает меня от залпов своих же компаньонов.

Последовательность действий при такой тактике:
1. Провоцирую, чтоб противник разрядил борт(а) на максимальной дистанции (обычно это ядра). Принимая залп, становлюсь к нему носом (или кормой) и спускаю паруса.
2. Пока противник разворачивается, активно с ним сближаюсь. Заряжен всегда картечью.
3. Если у противника дальнобойные орудия, то таких рывковых сближений иногда приходится делать по 2-3 до момента моего первого залпа.
4. Выбиваю команду и абордирую.
5. При маневрировании вблизи противника активно использую "Манёвренный разворот" и "Быструю перезарядку". Всегда стараюсь держаться в глухой необстреливаемой противником зоне (45 градусов от его носа или кормы).
6. Подхожу к борту противника только непосредственно после его бортового залпа или, когда он начинает перезарядку на другой вид боеприпасов.

Об это нужно сказать особо. Иногда ИИ постоянно перезаряжает свои корабли, некоторые уходят на дно, так и не успев выпустить ни одного заряда. Если бы кто-то из вражеской эскадры был постоянно заряжен книппелями, другой - картечью, а третий - бомбами не зависимо от дистанции, они смогли бы навредить мне гораздо больше. С такими "тугодумами" всегда возни больше. Практически никогда не удаётся подойти к ним в борт, отсюда и обстреливуаю их только из "мёртвой зоны", да ещё и маневрировать приходится в ущерб скорострельности.

Тактиа "Дельфин" применяется при неблагоприятном ветре или неудачной конфигурации береговой линии - беспорядочно разряжаю борта, заряженные книппелями и ухожу в крутой бейдевинд (обычно в противоположную от компаньона сторону, чтоб отвлеч на себя внимание). Ухожу дооолго, иногда использую команду "Доплыть до...", чтоб макимально растянуть караван противника. Когда расстояние между кораблями противника начинает превышать максимальную дальность стрельбы их орудий, разворачиваюсь и уже поветру быстро атакую одного за другим. Корабли, которые планирую оставить после абордажа себе, абордирую последними.

Такая тактика возможна благодаря бестолковости ИИ. Если бы корабли противника сохраняли строй независимо от повреждения парусов (т.е. самые быстрые равнялись на самых медленных), эта тактика была бы непреемлима. А корветы и бриги охраны не пёрлись бы в догонку за моим люггером, а конвоировали бы кильватерный строй противника по бокам, увеличивая тем самым зону обстреливаемую орудиями эскадры, то против них пришлось бы использовать другую тактику.
Для караванов противника можно было бы прописать тактику ИИ, чтоб грузовые суда уходили к ближайшему форту, стремясь укрыться под огнём его орудий, а боевая охрана такой отход прикрывала. И отход не беспорядочный, а клином, к примеру, или уступом (лучше - каре), в зависимости от втера и изначального строя в эскадре. Боевой корабль эскорта не должен гнаться за мной, он должен стермиться занять позицию между мной и основной частью грузового каравана.

Но для этого у меня есть ещё одна тактика.
Тактика "Барракуда" - в сложных и неудобных боёвках или когда нас застали врасплох. Абордируем ближайший, доступный для абордажа с минимальными потерями, шип (пусть даже самый небольшой). Грабим и отпускаем. Дальше используем его, как щит, и высовываясь из-за него разряжаем борта в противника. Бывали случаи, когда этому шипу его же компаньоны мачты сбивали, пытаясь попасть по мне. Но пустой шип будет иметь большую скорость и манёвренность, поэтому его нужно удерживать от побега, постоянно баражируя перед его носом. В конце концов, он всё равно слиняет, оставив нас против мощных врагов. Продолжаем ту же тактику. Только теперь наша жертва - самый мощный с большими пушками противник. Абордируем, сразу снимаем с него всю команду (в особых случаях, сажаем компаньона с перком "Спасение на шлюпке"). Вот это будет щит, который уже никуда от нас не денется, лишь бы корпус выдержал. Даём ему команду "Уплыть", чтоб не вертелся как ни попадя, а дальше преследуем свои цели. Основной огонь принимает на себя "щит". Когда противник будет рассеян, то можно спокойно перегрузить товар из "Щита", а его затопить, чтоб не мучался.

Тактика "Пиранья" используется в случаях, когда нам не нужна вся эскадра противника, но топить абордированных не с руки (имеем малый трюм) - уходим в крутом бейдевинде, затем делаем дугу и атакуем последний(е) корабли в колонне (обычно это грузовики). Потом их легко увести по ветру от основных сил противника.
Опять же ИИ увлекается погоней, а не защитой.

Есть ещё тактика "Анаконда", когда битва планируется заранее. Покупаем галеон или ТГ, загружаем его командой лохов с перегрузом. Опустошаем трюм, оставляем только картечь и порох на 1-2 круговых выстрела, оружие, лекарство. После выхода в "Море" командуем компаньону "Уплыть", а сами на этой "Анаконде" прём быстро напролом к самому мощному кораблю эскадры противника. Немного его обстреляв, абордируем и пересаживаемся. Свой галеон чаще всего топим, в особых случаях можно очистить трюм и посадить компаньона с перком "Спасение на шлюпке" (всё равно это корыто будет потоплено противником). Теперь наша крепость находится в колце неприятеля. "Манёвренный разворот", "Быстрая перезарядка" и после 2-3 оборотов вокруг нас только пузыри или лоханки без парусов или экипажей (в зависимости от того, какие цели перед нами стоят). Но чаще всего, приходится уводить эту крепость, активно работая картечью, по ходу абордируя обескровленного противника с небольшой командой, набивая себе трюм или разбрасывая вокруг себя свои и чужие "щиты". А завершается разгром обычно на корабле своего компаньона (он остаётся менее повреждён при такой тактике). И корабли, которые мы планируем оставить себе обычно абордируются последними, чтоб их бывшие союзники не попортили им шкурку.

Какие корабли я топлю без абордажа? Обычно корабли охраны при контрабанде, пиратов, ОЗГов, т.е. те, чьи трюмы заведомо пустые. Также очень не люблю абордировать большие корабли с мушкетным залпом. Если удаётся, то переигрываю сцены и топлю их без абордажа.

Вот, собственно, почти все тактические схемы, применяемых мною боёвок. некоторые возможны только благодаря неповоротливости ИИ, другие достаточно универсальны, чтоб быть успешными ипри любых схемах поведения компьютера...

Буду рад, если хоть что-то из написанного пригодится для конструирования поведения виртуального противника...
Rolando
Цитата(Serginio @ Jun 14 2009, 15:45) *

Буду рад, если хоть что-то из написанного пригодится для конструирования поведения виртуального противника...


Чувствую, у уважаемых разработчиков против такого разнопланового корсара будет большое искушение ограничиться тактикой "Черепаха" для всех противников 1.gif
ALexusB
Да уж... пока искушение токо одно - оставить токо бои человек-человек, чтоб не мучать "бедных зверушек ИИ" smile.gif
СТРАННИК
Много тут наговорили уже.
Позвольте и мне вставить свои 5ть копеек.
Вот Mitrich говорит
" Для пирата абордаж - задача №1. Ты прав. Только хочется уточнить. Если пират знает, что ты ничего не везешь, то станет ли он рисковать и абордировать тебя? Думается нет."

Почему нет? пустой галеон стоит 50 000-60 000 это что не деньги?
При месячных расходах на команду в 200 000 это четвёртая часть тоже нормально.

Serginio играйте в патч 1.2.3 - бейтесь с Джентельменами удачи и предлагайте нам новые тактики.

Тактиа "Акула",
прекрасная тактика. противник на расстоянии сливает 2 борта книппелей
иду к нему на сближение с картечью, и тут он разворачивается и в упор расстреливает меня бомбами с двух бортов.

Цитата
Если бы кто-то из вражеской эскадры был постоянно заряжен книппелями, другой - картечью, а третий - бомбами не зависимо от дистанции, они смогли бы навредить мне гораздо больше.
.

Вот как раз в 1.2.3 Дж. удачи. они так и заряжены.

Тактиа "Дельфин": прекрасно беру на вооружение.
Тактика "Барракуда" пробовал (палка о 2х концах этот корабль мешает противнику и тебе тоже)

Тактика "Пиранья": у Дж. удачи что последний что первый корабли мощные идут сплочённой группой экипаж всегда по полонй (с горкой) замыкающий обычно большой корабль.

Тактика "Анаконда", (пробовал) подходит великолепно, только когда один корабль противника мощный а другие слабые.
ALexusB
разница в перезарядки бортов КВЛ и ГПК есть и она существенная - это разные алгоритмы принятия решения когда заряжать и чем.

Для построение алгоритмов ИИ новой игры это не криично, тк там будет все свое (но близкое именно КВЛ), просто к слову.
Serginio
Цитата(СТРАННИК @ Jun 15 2009, 09:56) *
Serginio играйте в патч 1.2.3 - бейтесь с Джентельменами удачи и предлагайте нам новые тактики.

Так об этом и речь. За убегающими обычно не гоняюсь. Только, если беглец жирным был, иногда море в его кильватере серфлю.
А тактики у каждого геймера свои. Изобретайте, нарабатывайте...

Цитата(СТРАННИК @ Jun 15 2009, 09:56) *
Тактиа "Акула",
прекрасная тактика. противник на расстоянии сливает 2 борта книппелей
иду к нему на сближение с картечью, и тут он разворачивается и в упор расстреливает меня бомбами с двух бортов.

А трубой подзорной пользуетесь?
Бомбы и картечь - это самое неприятное. Но с картечью бороться легче. Как только ИИ начинает картечью заряжать, нужно успевать подготовить и осуществить абордаж или разорвать дистанцию до окончания перезарядки.
Если же начинается зарядка бомбами, а дистанция велика для обстрела картечью или абордажа, то лучше сразу рвать дистанцию. Здесь главное уловить момент, когда опять пойдёт перезарядка на книппеля или бомбы, тогда время не теряй. И не забывайте принимать залп носом или кормой, а лучше резко спускать паруса и делать манёвренный разворот. Тогда очень часто получается недолёт...

Цитата(СТРАННИК @ Jun 15 2009, 09:56) *
Вот как раз в 1.2.3 Дж. удачи. они так и заряжены.
Дык топите их нафиг! Чего Вы ис-под них хотите? Отморозки - они и есть отморозки.

Цитата(СТРАННИК @ Jun 15 2009, 09:56) *
Тактика "Барракуда" пробовал (палка о 2х концах этот корабль мешает противнику и тебе тоже)
Не спорю, но тебе он ещё и помогает, а противнику только мешает...

Цитата(СТРАННИК @ Jun 15 2009, 09:56) *
Тактика "Пиранья": у Дж. удачи что последний что первый корабли мощные идут сплочённой группой экипаж всегда по полонй (с горкой) замыкающий обычно большой корабль.
Вот опять ДУ!
Да зачем же против них "Пиранью" применять? Эта тактика для маленького ГГ, чтоб флейты и пинассы из конвоируемых караванов выхватывать.
Rolando
Недавно встретилась явная "дыра" в поведении противника.

Дело было так. Загнал я преследующую меня голландскую военную эскадру в бухту Порт-Ройала 1.gif
Флагман эскадры (военник) вошел в бухту за моими 3-мя кораблями и как буриданов осел остановился примерно в центре бухты чуть ближе к маленькой части форта Порт-Ройала. Практически не стрелял. Остальные корабли занялись фортом.
При попытке атаковать флагмана 3-мя кораблями (абстрел картечью) он начал двигаться и отвечать. Но когда я переиграл и приблизился к нему на СП (остальные - в дрейфе) он активно двигаться не стал и отвечал только кормовыми пушками. Короче вынес ему большую часть команды и перк мушкетного залпа его капитану не помог wink.gif

Дальше с 5-й попытки вырвался из бухты без больших повреждений и причалил у ближайшей бухты. Иду на СП посмотреть, как там у эскадры с фортом дела - гляжу, впритирку к берегу справа (с другой стороны, не где форт) идет бэтлшип. Понял, что это добыча - бысторо к нему, книпелями мачты кроме задней снес и картечью стал стрелять. Он мог прицельно попадать только из носовых - попытку развернуться сделал только в самом конце и стал ко мне кормой (берег сильно ему мешал отчалить lol.gif ). У этого капитана тоже был перк мушкетного залпа, но как штурман он салага.

Предлагается сделать вражеским кораблям явный приоритет в целях на атаку корябля ГГ и попутно, особенно если корабли крупные типа бэтлшипов - ввести для них запретную зону вблизи берега хотя бы на длину корабля
СТРАННИК
Проходил квест 20 моноваров
Лин кор у меня был.

Использовал тактику Serginio тактику "Дельфин"
Только так и прошёл

А как вы проходите 20 мановаров?
Serginio
Цитата(СТРАННИК @ Jul 4 2009, 12:11) *
А как вы проходите 20 мановаров?

1.gif Дык для них родимых и придумал эту тактику. Иначе они очень больно кусаются.
Rolando
Цитата(СТРАННИК @ Jul 4 2009, 13:11) *

А как вы проходите 20 мановаров?


Использую Арабеллу для взятия описи методом с/л: корабли прочностью поменьше не успевают после взятия нужного мановара улепетнуть, пропуская смертельный залп, а корабли покрупнее проигрывают в скорости.

Далее отрываюсь от мановаров, причаливаю к бухте Аматика и - о-ля-ля lol.gif
Serginio
Цитата(Rolando @ Jul 6 2009, 20:32) *
Использую Арабеллу для взятия описи методом с/л: корабли прочностью поменьше не успевают после взятия нужного мановара улепетнуть, пропуская смертельный залп, а корабли покрупнее проигрывают в скорости.

Я С/Лом опись никогда не ищу. Использую его только, если мой кораблик генерится в центре их стаи и не успевает из неё выбраться в приличном состоянии.
А если уж выбрался, то им хана.
И эта, для дельфина Арабелла слишком уж медленная, её лучше для акулы юзать. Я мановары на ПВ беру. Как и ЗФ впрочем.
Blood5
Всем привет!

И так конкретное:
1. Вижу эскадру - нападаю если:
а) У меня пустые трюмы;
б) У меня нет компаньонов (редко они есть, как боевые);
в) У меня достаточно команды, есть оружие, лечилки и т.д.;
г) Мой корабль соответствует кол-ву соперников (бриг - на 2-3 врага; корвет - на 4-6 врагов; фрегат или варшип - на 7-8 врагов( в том числе и на ЗК); "Пёс войны" - пофиг сколько их);

2. Нападаю сначало:
а) Если моя цель деньги - на торговцев, потом на охрану;
б) Если мне надо попросто прокачаться, то топлю всех пофигу! Но 1-2 всё равно беру на абордаж - это, в основном, охрана, так как там всё вкусненькое - серебро и золото.

3. Смываюсь:
а) Нет настроения;
б) Меня преследует 1 баркас;
в) За мной эскадра пиратов более, чем из 2 кораблей ;
г) У меня малая команда или мало HP корпуса или парусов;
д) Рядом шторм (что бы не оказаться между молотом и наковальней);

4. Использую:
а) Ядра - если мне охота поржать, топлю всех ядрами... 5%
б Картечь - если иду на абордаж (корвет против Галеон, ТГ корвет, Пинас, Варшип, Батл и Лайн Шип, а так же Ман-О-Вар) - 25%
в) Книпели - если только смываюсь или делать нечего - 10%
г) Бомбы - почти всегда. Даже если иду на абордаж - мне пофиг! - 60%
_________________________
Принципы:
1. Не люблю эскадры за собой таскать;
2. Не люблю брать штурмом города;
3. Ненавижу Ман-О-Вары брать на абордаж;
4. Ненавижу книпели, летящие в мои паруса;
5. Ненавижу ветер 3-5 узла посреди Карибского моря, далеко у островов;
6. Ненавижу дальние бои;

Тактика:
Подошёл в нос эскадры, потопил или взял на абордаж (в зависимости от цели);
Потом далее - военные корабли в конце почти всегда;
От носовых и кормовых орудий не уварачиваюсь, а от бортов стараюсь держаться подальше;
Использую "мёртвую зону", если выходит;
Все бортовые залпы стараюсь принимать кормай ( не долетает; если носом - рвёт паруса);
В основном полагаюсь на скорость;
______________________________

Но против себя я бы сразу пошёл на абордаж! Или подошёл в упор, если противник сильнее и пару залпов картечи решили бы всё вмиг! Для этого подойдёт использование ПГГ 2-х перков - "Быстрая перезарядка" и "Манёвренный поворот корабля".
Тут выиграет тот, у кого пушки поменьше и канонир лучший.
Для этого корветы и сделаны, наверное... biggrin.gif
______________________________
Ну вот, собственно, и всё!
Ссори, что длинно, в 3:14 голова уже не варит... sad.gif
Миротворец
Если выхожу на охоту , то используя перк у меня на корабле паруса той нации на кого охочусь , пушки заряжены картечью , подхожу в плотную , стараясь занять позицию между двумя кораблями , далее залп из двух бортов и моментальный абордаж обречённых судов , если добыча меня устраивает и трюм под завязку то перезаряжаю на книпеля и дёру , снося по ходу отступления паруса особо рьяным преследователям smile.gif Так почему бы не дать и пиратам использовать такую же тактику , вроде решил напасть на купцов , и на тебе , они рядом с тобой подняли Весёлого Роджера ))
VladNiP
Расскажу о своей тактике в морском бою:
В зависимости от ситуации, если требуется потопить или если требуется взять на абордаж.
Взять на абордаж.
Если пираты, то тупо иду на них ( корабли у них по большей части маленькие ), при этом у меня заряжена картечь.
Если военная эскадра, то заряжаю книппелями. Стараюсь им максимум снести параметр "Паруса".
После того, как они уже не в состоянии что-либо сделать, заряжаю картечью.
Как правило, противник даже не пытается отбится. Стреляю по нему картечью, чтобы довести параметр "Команда" до максимально низкого уровня. Тактика относится и к торговцам.
Если потопить, то всегда покупаю кулеврины 32 фунта.
Использую максимально дальнюю дистанцию, чтобы противник не нанес или нанес минимум повреждений.
Если противник изначально союзник мне, но при этому он находится в категории "Торговцы", то я максимально близко плыву к нему, заранее заряжаю картечью и, как только зарядится, меняю флаг на пиратский и стреляю. Как правило, у противника остается малая часть команды. Сразу беру на абордаж.
Если же все-таки команды у противника относительно много, то повторяю.
Цитата
Паруса, корпус, команда, типы кораблей?

Оцениваю противника по команде - для абордажа.
Или по корпусу - для морского боя.
Насчет золотого флота. Брал. Сейчас расскажу как. ( брал на голландце )
Сначала у противника было оченб большое численное превосходство. Нужно было лишить противника прыти. В этом случае помогает только книппель.
Еще перед тем, как напасть на флот, я заряди корабль книппелями.
Я топил корабли с помощью абордажа по одному.
Для этого я первому снес мачты, и вплотную подошел к нему, стреляя картечью. От выстрелов других кораблей я прятался за этим кораблем. Пару залпов хватало, чтобы лишить противника команды. Сразу брал на абордаж. Аналогичную операцию повторял с следующим кораблем. Примерно половину абордировал. Команды у меня не было, чтобы продолжать вести авбордаж.
Не задумываясь, зарядил бомбами. Теперь цель была только одна - выжить. Постепенно потопил всех.
Цитата
Усложним задачу - как бы вы играли против себя?

В таком боя я бы исключительно держался на дальних дистанциях. Сначала я бы попытался ослабить соперника, максимально уничтожив ему паруса. Не исключено, что он тоже бы попытался это сделать.
Но, поскольку, я играю против живого игрока, то он бы не стал стоять на месте, а начал бы маневрировать. Ослабив его, я бы попытался немного уйти от него.
Вел бы обстреля ядрами.
Для абордажа.
Начала тоже, дабы он не ушел от меня.
При сближении заряжаю картечью. Поскольку играю против живого, то он мог бы зарядить бомбами.
В таком случае сраху бы взял его на абордаж.
При каждом случае такого боя поглядывал в трубу, чтобы оценить текущий заряд, кол-во команды и HP врага.
Если бы у врага калибр был меньше, то держался в мертвой зоне.
Книппелями бы не стрелял. Часто, попадения ядер тоже немного рвут паруса.
Керосин
предлагаю таким образом усовершенствовать тактику боя ИИ:
Торговый караван под охраной военных судов.
1. Корабли охранения не должны мотаться в хвосте, а находиться, если их два – справа и слева от основного каравана на уровне чуть впереди второго судна. Если их три – то третий еще в конце каравана.
2. Корабли каравана не должны растягивать караван в ходе боя, т.е. соблюдать дистанцию между собой, чтобы противник в случае атаки на абордаж находился под обстрелдом нескольких судов.
3. При подходе чужого судна под дружеским флагом все корабли каравана должны вести перезарядку орудий соответствующую расстоянию. Ядра – книппели – бомбы.
4. При приближении чужого корабля на дистанцию, позволяющую нанести эффективный выстрел картечью и абордаж, корабли каравана должны давать предупредительный выстрел и если сближение продолжается – первыми начинать обстрел.
5. Так как целью торговца является не захват или потопление пирата, а доставка грузов по назначению – то и торговые корабли и корабли охранения должны вести оборонительную, а не наступательную тактику – т.е. не уходить в погоню за пиратом, а охранять торговые суда. А торговые суда - занимать компактную оборону с общим разворотом или на нападающего – или от него.
6. Военные корабли должны быть быстрее торговых. Так, например ТГ охранения из-за недостатка скорости и маневренности – не может оказаться вовремя там, где нужно и способен, в лучшем случае, защитить только себя.
7. при появлении корабля даже под дружеским флагом корабли охранения должны приближаться к нему на расстояние эффективного выстрела книппелями/бомбами.
8. и отменить возможность быстрого перехода - "доплыть до"
Думаю подобные меры значительно бы осложнили мне захват торгового каравана
Rolando
Цитата(Керосин @ Aug 6 2009, 14:01) *

предлагаю таким образом усовершенствовать тактику боя ИИ:


Полностью согласен, но для старших уровней ГГ

Когда у ГГ корабль до 4 уровня включительно, нужны некоторые послабления - например, перезарядку адекватную, а компактный строй кораблей - нарушить одним двумя торговцами, или расположение компактное, а кто-то зарядит неадекватно - если у ГГ хорошая труба, он должен уловить слабое место.
Керосин
или вот пример морского боя (реально бывший в игре): торговец на 4 флейтах, и охранение - 2 мановара!, оба в конце каравана. идут курсом почти по ветру.
Поставь один мановар впереди другой сзади, или по бокам, и флейтам не давать от них отрываться - пришлось бы помучаться с этим караваном - а так просто все - вытягиваем караван, пока мановары не отстанут - и последовательный абордаж с бригантины всех 4 флейтов. Первый мановар на расстояние выстрела успел подойти только при захвате четвертого флейта. а потом - все вместе дружно бежать от них по ветру
FoKyS
В бою у меня сразу идет
1. анализ состояния:
* сил противника (примерно равны, больше, меньше, сильно больше, сильно меньше).
* направления ветра

#Если я слабее
1)Отступаю

#Если на равне
1)Беру на абордаж.
2)В сражении использую в основном картечь.
ALexusB
Прочел книжецу
C / С++ : C++ мастер-класс. 85 нетривиальных проектов, решений и задач - М. В. Мозговой
http://www.ozon.ru/context/detail/id/2985461/

Пришел к некому концепту реализации ИИ для мор боя, как кальки с действий человека. Чтоб не в коде зашивать, а было во внешних файлах и можно было один ИИ на другой натравить, потестить.
Ответа по ИИ в книге нет, есть разные идеи и их решения, которые наводят на другие идеи smile.gif
Рекомендую.
N.tony
Цитата(ALexusB @ Apr 27 2010, 07:58) *
Пришел к некому концепту реализации ИИ для мор боя, как кальки с действий человека. Чтоб не в коде зашивать, а было во внешних файлах и можно было один ИИ на другой натравить, потестить.
Обычно в таком случае ИИ сильно неловкий получается. Я тоже думал делать через "интерфейс", чтобы доступ к игровому персонажу был реализован только через стандартные операции ввода (типа, все возможные клавиши которые нажимает геймер). Но так как делать самообучающийся ИИ сложно, будет сильно муторно подбирать контроллер для него через одну лишь допустимую информацию о состоянии поля боя. Проще будет, если количество разных вводов сильно ограничено (а ходы дискретны) - делать "натуральный" контроллер для всяких игр типа шахмат куда проще.
Hawcker
Цитата(ALexusB @ May 20 2009, 22:31) *

2.* слинять из боя
* всех потопить

Слинять из боя можно и при помощи мин, если кораблик имеет хорошую скорость( как и у ГГ )
...как обычно я делаю если корабль имеет гдето равную скорость как и корабль противника, ~1000-2000 ед. корпуса (иначе долго топить) ..
стараюсь держать по возможности гдето 2000 ед. пороха т.е. хотяб на 10 мин ... rolleyes.gif
m-traxx
Постараюсь рассказать, что на мой взгляд позволяет легко справляться с ИИ соперника.

ИИ не умеет делать массу важных вещей:

1. Не бережёт паруса - смена положения парусов зависит только от его маневров, а иногда от балды - на залпы не реагирует.

2. Распыляется - может сделать 1 залп по одному кораблю, следующий залп по другому.

3. Меняет заряды в зависимости от дистанции - может начать перезаряжаться картечью, хотя мог уже бомбами пустить на дно.

4. Не ходит галсами против ветра - часто складывается впечатление, что ИИ вообще не умеет учитывать направление ветра.

5. Пытается догнать корабли, которые имеют большое преимущество в скорости - именно это позволяет растягивать его эскадры и валить всех поодиночке.

6. Не ставит промежуточных задач. Например, не пытается получить абсолютного преимущества в скорости а уж потом топить, или сначала выбить всю команду, а уж потом абордировать.
Т.е. ИИ конечно и паруса клацает и команду выбивает, но до абсолюта не доводит и даже не пытается.

7. Не оценивает состояние корабля, на который пересаживается после абордажа.
Например, если я подставлю фрегат без мачт под абордаж целёхонькому корвету, то кэп корвета пересядет на эту баржу и станет совершенно уязвим.
bullet
Кста, а мона в сетке где-нить нарыть основы/правила морского боя на парусных судах ? Ну те, которым 300 лет назад в Навигацкой школе обучали.
Captain Flint
Цитата(bullet @ Apr 27 2010, 21:17) *

Кста, а мона в сетке где-нить нарыть основы/правила морского боя на парусных судах ? Ну те, которым 300 лет назад в Навигацкой школе обучали.

http://lib.aldebaran.ru/author/shtencel_al...konca_xix_veka/
Она у меня на полке стоит. Прочитал от корки до корки. Это, конечно, не сборник наставлений по ведению морского боя. Это - "История войн на море", написанная профессионалом. Там кроме собственно истории есть и "разбор полётов" - анализ сражений и действий флотоводцев.
Также были ещё Мэхэн и Коломб, труды которых изучали в Морском Корпусе больше века назад, но их я не искал.
В Библиотеке Конгресса США есть кое-какие наставления касательно парусных флотов, в том числе и сочинение Павла Госта. Однако я не нашёл, как их оттуда скачать. Может, Тимофей подскажет?
ALexusB
Цитата(N.tony @ Apr 27 2010, 10:25) *

Обычно в таком случае ИИ сильно неловкий получается. Я тоже думал делать через "интерфейс", чтобы доступ к игровому персонажу был реализован только через стандартные операции ввода (типа, все возможные клавиши которые нажимает геймер). Но так как делать самообучающийся ИИ сложно, будет сильно муторно подбирать контроллер для него через одну лишь допустимую информацию о состоянии поля боя. Проще будет, если количество разных вводов сильно ограничено (а ходы дискретны) - делать "натуральный" контроллер для всяких игр типа шахмат куда проще.

Я отказался от самообучения - мне проще самому идти не по пути ИИ, а по ЭС (экспертным системам) - обучая (дописывая) по ходу тестов и игры самому.
Со временем, имея базу боев в виде логов, можно натравить на них обработку и эти данные превратить в знания. Но это же другая утилита, она не работает во время боя, а потом (отдельно на локале, тк долгая).
Сам же НПС в бою будет именно "жать" доступные игроку кнопки команд. Иначе это какие-то сверх читы.
Другое дело, чем он будет мотивироваться и куда смотреть (какие статы видеть без подзорной трубы, как прикидывать в своем комьютерном уме траектории движения и тп) - тут тупизна ИИ может компенсироваться его сверхосведомленностью.
Скилы капитана - это понижение возможностей ИИ. То есть изначально он должен быть оч хитрым, а скилами тупеть.

Многие не задумываются, что сложность игры задается понижением возможностей в упрощении, а не наоборот. То есть все игры имеют максимум возможностей, которые потом снижаются.
Исключение составляют количественные сложности - это когда урон ГГ снижается, а получаемый начинает зашкаливать - это уже простой трюк "невозможных" уровней. Логики ИИ тут нет.
N.tony
Цитата(ALexusB @ Apr 30 2010, 22:43) *
Я отказался от самообучения - мне проще самому идти не по пути ИИ, а по ЭС (экспертным системам) - обучая (дописывая) по ходу тестов и игры самому.
Да, это именно то что я имел в виду. Из меня просто программер кустарный, поэтому я некоторых определений не знаю smile.gif

Цитата(ALexusB @ Apr 30 2010, 22:43) *
Со временем, имея базу боев в виде логов, можно натравить на них обработку и эти данные превратить в знания. Но это же другая утилита, она не работает во время боя, а потом (отдельно на локале, тк долгая).
Сколько раз встречал подобные заявления - ни разу не видел воплощения на практике.

Цитата(ALexusB @ Apr 30 2010, 22:43) *
Сам же НПС в бою будет именно "жать" доступные игроку кнопки команд. Иначе это какие-то сверх читы.
Не сверхчиты, но читы, да. А как иначе? Достаточно посмотреть на любой автосимулятор - с 99% вероятностью поведение машины ИИ лишь отдаленно напоминает поведение машины, управляемой ручками. ИИ не "крутит баранку", а доворачивает колеса напрямую, да и прочими параметрами скорее всего управляет напрямую - т.е. акселерацией, скоростью, смещением и т.п. Потому как написать контроллер, ведущий машину по оптимальной траектории, да еще и замечающий препятствия - задача настолько нетривиальная, что уже десятки лет по ней научные статьи пишут.

В общем, считаю что подход с "симуляцией ввода" - обречен на тупизм, если только не выполнены условия, о которых я писал выше. Т.е. если ходы дискретны по времени (а еще лучше и в пространстве) - тогда вариант вполне жизнеспособен. Если же все реалтайм - будут проблемы. Они, кстати, могут решаться тем самым способом с "у меня больше, у тебя меньше". Например, считая что компьютерные оппоненты имеют при прочих равных лучшие параметры по сравнению с игроком. Типа скорость, ускорение, скорость поворота и все такое у них выше.
ALexusB
Пробовать буду - тема интересная мне, потому и делаю прототип для моделирования в виде игры, чтоб зря не тратить время smile.gif

"Докручивать" я не могу - тк все пишется в лог, кто что сделал и куда повернул.
Потому и сложности - проще ИИ не делать вообще, а ПвП оформить.

Пока я до ИИ мор боя не дошел, хоть с него и начал - сча окучиваю прочие ядерные вещи. Все же есть разница - делать аддон на все готовое, развивая его до восприятия новой игры или с нуля писать двигу, да еще и сетевую.
HenMoR
Цитата(ALexusB @ May 1 2010, 00:35) *

Пробовать буду - тема интересная мне, потому и делаю прототип для моделирования в виде игры, чтоб зря не тратить время smile.gif

"Докручивать" я не могу - тк все пишется в лог, кто что сделал и куда повернул.
Потому и сложности - проще ИИ не делать вообще, а ПвП оформить.

Пока я до ИИ мор боя не дошел, хоть с него и начал - сча окучиваю прочие ядерные вещи. Все же есть разница - делать аддон на все готовое, развивая его до восприятия новой игры или с нуля писать двигу, да еще и сетевую.


Алексус, если есть чувство, что порой не хватает фундаментальности в мыслях, попробуй обратить свое внимание на раздел высшей математики "Теория игр". Все ответы-вопросы о поведении в конкретной ситуации все же вторичны.
ALexusB
Статья в тему ИИ
http://xitri.com/2010/10/27/ai-creation-to...-kiev-2010.html

Не со всем я согласен по итоговой реалиазции, в комментах к статье минусы верно описали.

Но общий принцип реализации по задачам ИИ верный - сам так думаю.
Автор статьи - флашер-художник со стажем, но только начал переходить на AS3 с его ООП, потому не все ООП использует, где-то по старинке мерками AS2 пишет.

О сайте этом уже говорил - кладезь полезного, жаль, что стал редко обновлять.
Shadow
Цитата
Но общий принцип реализации по задачам ИИ верный - сам так думаю.

Э-э-э, разве это не описание реализации ИИ на основе стэйт машины? И при том весьма дубово, правда, может флэш и не вытянет тяжелых алгоритмов.
ALexusB
Не знаю, открою ли я тайну, но во многих играх, даже когда в описании пишут "используется улучшенный, продвинутый ИИ", никакие научные изыскания из теории ИИ и ЭС не используются вообще smile.gif
Или куча ифоф или шаблоны задач (сами шаблоны задач - тоже формализовано в теории ии и эс, но делают сами на глаз)

Тут влияет цель - игра (визуальное состояние и восприятие), а не супер цель прикрутить к игре нейронную или другую сесть и тп
Опять же ОЗУ и вычислитель лимитирован.
Иногда достаточно расставить врагов в редакторе и задать скрипт их выпрыгивания по тригерам, либо сделать "мега ИИ" из ранд() функций выбора направления движения с парой ифоф проверок статов ГГ.

Это в шутера. В стратегиях и тактиках несколко иначе, там нужно смотреть "свысока" на саму диспозицию и принимать групповые решения и иметь план действий (тактику).

-------
Еще комент про статью
Вешать обработчик на каждый кадр - плохо, видимо автор не разобрался еще в системе прерываний (мыслит процедурно).

Рефреш нужен, да, но по таймеру раз в 1-2 сек, а не 20-30 раз в сек. Что изменится за 1/20 секунды? Пользователь ничего не успеет нажать.
А если изменится, то есть прерывание - вот его и нужно обработать.
Иначе при >100 объектах будут жуткие тормоза, если каждый начнет на каждый кадр обрабатывать сложную логику.
Что оч просто видно, если в презентации из статьи прокликать добавку зомби, глядя на загруз проца.

Именно так и устроена боевка в Сторм-2.х
Тоже есть шаблоны и обработчики прерываний.
Shadow
Цитата
Не знаю, открою ли я тайну, но во многих играх, даже когда в описании пишут "используется улучшенный, продвинутый ИИ", никакие научные изыскания из теории ИИ и ЭС не используются вообще smile.gif

Не откроете.

Цитата
Это в шутера.

Иногда, но не всегда. Вот, почитайте про ИИ в F.E.A.R, если интересуетесь темой: http://www.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.pdf Они юзают FSM вообще только с 3 стэйтами на чара и им хватает smile.gif
ALexusB
В тему ИИ
книжка аж 1975года, но от того даже интереснее smile.gif
М.М.Ботвинник. О кибернетической цели игры
тык

Книга экс-чемпиона мира по шахматам Ботвинника, в которой он рассказывает про свой опыт создания алгоритма игры в шахматы. Она дополняет его же книгу <алгоритм игры в шахматы>.
Книга будет очень интересна тем, кто умеет играть в шахматы и задумывался о том, как этому можно научить компьютер.
Книга научно-популярная и может читаться человеком с любой подготовкой.
Commandor_S
Цитата(ALexusB @ Dec 27 2010, 23:21) *

В тему ИИ
книжка аж 1975года, но от того даже интереснее smile.gif
М.М.Ботвинник. О кибернетической цели игры
тык

Книга экс-чемпиона мира по шахматам Ботвинника, в которой он рассказывает про свой опыт создания алгоритма игры в шахматы. Она дополняет его же книгу <алгоритм игры в шахматы>.
Книга будет очень интересна тем, кто умеет играть в шахматы и задумывался о том, как этому можно научить компьютер.
Книга научно-популярная и может читаться человеком с любой подготовкой.

А я то думаю, почему так а не этак. lol.gif
Цитата
Остановимся, прежде всего на том, о каких машинах идет речь и каким образом они могут играть в шахматы. Имеются в виду современные вычислительные машины дискретного действия, так называемые ЭВМ, которые относятся к числу программно управляемых. Применение электронной техники делает их очень быстродействующими, однако основная их черта - автоматическое управление процессами переработки информации - вовсе не связана с этой техникой. Такие машины представляют собой сложные автоматы, состоящие из ряда связанных между собой устройств: устройства управления, запоминающего устройства (называемого также памятью), операционного устройства, устройства ввода информации и устройства выдачи результатов. Информация может быть введена в программно управляемую машину и фиксирована в ее памяти в алфавитно-цифровом виде (в виде слов и чисел, которые представлены, понятно, в машинном коде).
Hovgaard
По теме:

1. Оценка погодных условий;
2. Проверка месторасположения вражеских кораблей(я) относительно
собственного корабля(ей) и (если есть) берегового ландшафта, рифов;
3. Анализ предположительных ходовых характеристик кораблей(я)
противника по предположительной загруженности его трюма, класса
корабля (парусного вооружения) и текущей скорости относительно вектора ветра.
4. Анализ условной опасности противника (каждого корабля отдельно,
и всех вместе).
5. Подсчет возможных затрат и потерь (в т.ч., временных) на уничтожение
противника.
6. Определение боевой задачи - бегство, расстрел, абордаж (кого именно,
судьба неабордированных кораблей) прикрытие за союзными силами или
рельефом берега/рифов (если есть).
7. Определение боевой тактики - алгоритм сближения/ухода/укрытия/расстрела.
Golden Hind
Слабость ИИ в практически любых компьютерных играх состоит в том, что он не умеет мыслить абстрактно и тем самым он не может мыслить комбинационно. Другими словами ИИ действует только по обстановке, но он не может создать логически направленную цепь определённых действий, имеющую общую конечную цель. Потому все действия ИИ просчитываются игроком без каких-либо проблем. Могу привести пару примеров как действительно должен действовать ИИ на примере корсарской тематики, чтобы максимально очеловечить его действия.

1. Оценка ситуации перед боем. Здесь учитывается соотношение сил. Скорость и направление ветра. Для этого необходимо заложить в действия ИИ несколько вариантов поведения в той или иной ситуации.

2. Выбор плана боя, исходя из правильной оценки ситуации. План необходимо обязательно сделать многоходовым, то есть очередная фаза действий ИИ начинается лишь по полному завершению предыдущей фазы. Остановимся к примеру на таком плане игры ИИ.

Допустим, что ИИ имеет двойное преимущество перед противником в силе, но не в дальности огня своих пушек и небольшое преимущество в скорости, да к тому же ещё идёт по ветру. ИИ видит также перед собой торговый корабль с возможной добычей, но где в два раза больше чем у ИИ моряков. В данном случае ИИ сразу же назначает конечную цель - абордаж и как промежуточную цель - сведение преимущества большой команды противника на нет. Исходя из того, что скорость корабля ИИ лишь незначительно превышает скорость корабля противника, то ИИ обязательно должен поставить ещё и вторую промежуточную цель - ещё более уменьшить скорость вражеского корабля.

Таким образом ИИ имея конечную цель абордаж уже заранее определяет вид боеприпасов, которые он и должен будет применять во время боя - книпеля, а позже картечь. Причём если ИИ удаётся сблизиться с противником на расстояние картечного выстрела, то он сразу же обязан переключиться на картечь, так как выбивая команду противника, он тем самым не только снижает скорость вражеского корабля, но и интенсивность ответной стрельбы противника.

Если всё проходит для ИИ нормально и после перестрелки ИИ получает значительное преимущество в количестве команды, то ИИ сразу же должен идти на абордаж и довести тем самым до конца первоначальный план боя. Если же противнику всё же удаётся в процессе боя значительно повредить корабль ИИ бомбами, то в этом случае первоначальный план ИИ прекращается и ИИ тогда должен принять новый план:

а) продолжать идти на абордаж, если расчёты ИИ показывают, что он всё же успеет это сделать, несмотря на небольшое преимущество противника в людях;
б) выйти из боя, если есть преимущество в скорости и ветер также способствует этому;
в) подороже продать свою жизнь, переключив стрельбу только на бомбы (или ядра) с целью утопить своего противника, пока тот его не утопит.

Примерно такой же план боя с определённой конечной целью можно составить также и для других возможных вариантов действий ИИ, исходя из определённых параметров, которые ИИ имеет перед боем. Допустим, что ИИ проигрывает по каким-то параметрам противнику или если перед ним военный корабль, который лучше утопить, чем рисковать брать на абордаж. Ну и кроме всего прочего ИИ обязательно должен расчитывать план боя из тех характеристик своего корабля, которые у него более предпочтительные. Так к примеру с более манёвренным кораблём ИИ лучше не идти на сближение с противником, а вести бой со значительного расстояния. Если же у корабля ИИ главное преимущество в скорости, то желательно при всех других преимуществах идти на быстрый абордаж. Другими словами при выборе плана боя ИИ просто обязан исходить из той характеристики своего корабля, которая у него наиболее выгодная по сравнению с кораблём противника.
Serginio
Цитата(Golden Hind @ Feb 16 2011, 07:03) *
Слабость ИИ в практически любых компьютерных играх состоит в том, что он не умеет мыслить абстрактно...
Мне кажется, что не меньшей слабостью ИИ является неумение оперативно менять стратегические задачи.

Вернее, разработчики при создании ИИ не уделяют этому вопросу должного внимания.
От этого ИИ никогда не бывает "хитрым", не может заманить в ловушку, ему не присущи такие качества, как разумный риск, осторожность или самонадеянность.
Он всегда стоически (как любой робот) выполняет возложенную (зачастую очень простую) миссию - атаковать, уничтожить, держать позицию, удрать, защищаться и т.д.

Но, если ИИ научить быть хитрым, то играть с ним станет невозможно, т.к. обсчёты возможностей противника он делает мгновенно (в отличие от геймера)...
ALexusB
Наконец-то подошел к задачам уровня ИИ для их практического решения. Есть полигон для применения - кораблики плывут, палят, тонут.
Есть замысел вообще для режима отладки сделать в коде возможность подключения разных ИИ, что б их можно было натравливать друг на друга. И тем калибровать параметры.

Но пока все понятные логики использования стратегий на несколько ходов (что выше описаны по делу) разбиваются о реальность - зрею, с какой стороны это все начать грызть. Кругами хожу и пока не нашел.
Начал с метрик описания всего, что есть в бою (дальности, попадание в сектор и тп). Потом это все нужно как-то анализить, чтоб принимать решения по маневру и уже от них сами команды (лево-право).
То есть, еще и траектории некие или последовательности движения нужно задавать. Чтоб не забыл ИИ в середине оверштага, зачем он его делал и что он вообще его делает smile.gif
Hovgaard
Цитата(ALexusB @ Feb 17 2011, 17:01) *

Наконец-то подошел к задачам уровня ИИ для их практического решения. Есть полигон для применения - кораблики плывут, палят, тонут.
Есть замысел вообще для режима отладки сделать в коде возможность подключения разных ИИ, что б их можно было натравливать друг на друга. И тем калибровать параметры.

Но пока все понятные логики использования стратегий на несколько ходов (что выше описаны по делу) разбиваются о реальность - зрею, с какой стороны это все начать грызть. Кругами хожу и пока не нашел.
Начал с метрик описания всего, что есть в бою (дальности, попадание в сектор и тп). Потом это все нужно как-то анализить, чтоб принимать решения по маневру и уже от них сами команды (лево-право).
То есть, еще и траектории некие или последовательности движения нужно задавать. Чтоб не забыл ИИ в середине оверштага, зачем он его делал и что он вообще его делает smile.gif


Я не программист и не математик (базовые/средние познания), но немного читал о применении эвристического подхода в кибернетике, заинтересовало. Популярно и красиво изложен в книге Стаффорда Бира "Мозг фирмы" (рус. пер.), очень рекомендую всем, кому интересна теория управления. Исходя из почерпнутых сведений, осмелюсь предложить где-то такую структуру расчетов ИИ:
Глобальная задача , определяется со старта, по входным параметрам. Инициализирует дробный (например, [0 - 1]) управляющий параметр, или "параметр успеха" (ПУ) на пути достижения глобальной задачи. Дальнейшие действия ИИ будут его повышать (в случае успешных тактик) либо понижать (противник успешно огрызается). При выборе одной из возможных тактик (оформленных в в виде дочерних к глобальной задаче процедур) достижения задачи ИИ пытается грубо просчитать, каким будет ПУ через (например) минутные интервалы в результате применения каждой из шаблонных тактик (процедур).
Среднесрочная стратегия боя будет избрана та, которая в прогнозе дала наибольший ПУ (или сумму ПУ дискретных чекпоинтов прогноза) в виде запуска действия по программе одной из алгоритмических тактик или их комбинации (ход в лоб 40с, залп ядрами, сближение, на книппеля и т.п.). При этом, сама стратегия НЕ является алгоритмом - через определенный промежуток времени, либо при драматическом изменении ключевых параметров (успешный залп бомбами с тремя критикалами) проводится извлечение текущего значения ПУ и проводится новый среднесрочный расчет (прогноз) его значения как результата применения различных стандартных тактик или их комбинаций. В итоге, предположительно наиболее успешная (с наибольшим ПУ) среднесрочная стратегия заменяет собой текущую.

Такой подход устраняет сразу несколько классических недостатков ИИ:
1. Узколобость, ограниченность в инструментарии тактик и стратегии в целом.
2. Стоический консерватизм - удержание давно неактуальной стратегии боя, определенной в начале боя или просто по слишком устаревшим параметрам.
3. Предсказуемость - даже если оставить в стороне постоянное жонглирование алгоритмическими тактиками (хотя бы, "в уме" компа, при прогнозировании на чекпоинтах, пускай он и будет выбирать одну пол-боя), эвристический подход будет иногда вносить "непредсказуемый тупизм" наряду с оригинальными, свежими боевыми комбинациями (вторых будет меньше), неизбежных вследствие проявления главного недостатка эвристического подхода - принципиальной сложности оценки и прогнозирования ПУ в процессе выполнения задачи. Собственно, оценка ПУ и есть самым сложным во всем этом.
4. Ну и резюмируя, он не страдает этим
Цитата
Слабость ИИ в практически любых компьютерных играх состоит в том, что он не умеет мыслить абстрактно и тем самым он не может мыслить комбинационно. Другими словами ИИ действует только по обстановке, но он не может создать логически направленную цепь определённых действий, имеющую общую конечную цель.
, так как именно увеличение ПУ и есть той нитью Ариадны, ведущей ИИ к успеху (выполнению глобальной задачи.
Serginio
Цитата(Hovgaard @ Feb 21 2011, 12:10) *
Глобальная задача , определяется со старта, по входным параметрам...
Интересный метод, но его применение чревато ситуацией, которую мы можем наблюдать и сейчас - реагируя на тактическое изменение ситуации, ИИ постоянно перезаряжает орудия на различные боеприпасы (по мере приближения к нему противника), в конечном итоге гибнет, так и не сделав ни единого выстрела.
Причина в том, что не идёт просчёт "предполагаемых действий противника" - игрока.
Поэтому игроку не составляет труда растянуть караван ИИ так, как ему (игроку) будет удобнее его щипать.

ИМХО - обучать ИИ нужно с того, что определить ему чёткие "варианты боевого построения" в зависимости от выбранной тактики. А тактику выбирать исходя из единой стратегической задачи, как то - утопить ГГ; абордировать ГГ; сохранить все свои корабли; сохранить грузовые корабли каравана (один спецкорабль); увести грузовой транспорт в порт; и т.д....

В этом случае действия ИИ будут более адекватны и похожи на морской бой, а не настойчивые попытки суицида.
Hovgaard
Цитата(Serginio @ Feb 21 2011, 12:53) *

Интересный метод, но его применение чревато ситуацией, которую мы можем наблюдать и сейчас - реагируя на тактическое изменение ситуации, ИИ постоянно перезаряжает орудия на различные боеприпасы (по мере приближения к нему противника), в конечном итоге гибнет, так и не сделав ни единого выстрела.
Причина в том, что не идёт просчёт "предполагаемых действий противника" - игрока.
Поэтому игроку не составляет труда растянуть караван ИИ так, как ему (игроку) будет удобнее его щипать.

ИМХО - обучать ИИ нужно с того, что определить ему чёткие "варианты боевого построения" в зависимости от выбранной тактики. А тактику выбирать исходя из единой стратегической задачи, как то - утопить ГГ; абордировать ГГ; сохранить все свои корабли; сохранить грузовые корабли каравана (один спецкорабль); увести грузовой транспорт в порт; и т.д....

В этом случае действия ИИ будут более адекватны и похожи на морской бой, а не настойчивые попытки суицида.


Не спорю, контроль за приемлемостью "отрыва от своих" у кораблей быть должен.
Но его вполне можно запрограммировать в простенький алгоритм.
А вот ввести истинную непредсказуемость действий алгоритмически невозможно.
Думаю, просчет предполагаемых действий игрока - вещь весьма простая в краткосрочном
прогнозировании (линейная экстраполяция параметровЮ описывающих статус игрока)
и очень сложная - в длительных прогнозах. Кто его знает, что этому человеку в голову взбредет?
Serginio
Цитата(Hovgaard @ Feb 21 2011, 19:50) *
Думаю, просчет предполагаемых действий игрока - вещь весьма простая в краткосрочном
прогнозировании (линейная экстраполяция параметровЮ описывающих статус игрока)
и очень сложная - в длительных прогнозах. Кто его знает, что этому человеку в голову взбредет?
Совершенно верно.
Но из всего возможного многообразия действий игрока, для ИИ важны только те, которые могут помешать ему выполнить генеральную стратегическую задачу. И не только действия предпринятые противником, но и возможные его действия.
Другими словами - идёт караван ИИ в порт (по ветру). Корабли находятся в предустановленном для случая конвоирования боевом порядке. А тут генерится геймер со своим люггером и пытается против ветра атаковать караван. ИИ просчитывает, что к моменту, когда этот камикадзе подойдёт на расстояние выстрела, последнее судно из каравана уже войдёт под прикрытие порта. Какие действия должен выполнить хитрый ИИ?
Варианта 2:
1. Никаких.
2. Изменить боевой порядок так, чтобы корабли охранения находились между вражеским люггером и охраняемым караваном. Сбалансировать скорости всех судов в эскадре, чтобы этот строй сохранялся, зарядить борта боевых кораблей книппелями, а конвоируемых - бомбами. Эти действия будут очень полезны на случай, если значительно поменяется ветер.

Согласитесь, что прописать указанные действия для ИИ не так уж сложно. Алгоритм будет универсальный для многих случаев. Просто в данной иллюстрации не затрагивается такой важный аспект, как изменение направления движения каравана (его цель находится по ветру).
ALexusB
Самое интересно, что навернуть стратегию высокого порядка (посмотри на такие-то корабли, оцени их, сравни с собой) сделать проще, чем примитивные базовые вещи - держать строй, плыть галсами в нужную сторону, выровнять скорость тп
Вот с ними пока вожусь.

А так все по делу, закопипастил себе в Ворд стратегии по этой теме по оглавлению, от кого инфа. Для перечитываний и вывода модели. Спасибо - помогает.
Kunla
кстати по поводу абордажа, например в PotBS зацепить корабль противника на абордаж значительно сложнее чем в серии Корсары, в частности, прицепить корабль невозможно если скорость хотя бы одного из судов выше определенного значения (8 узлов), корабль имеющий более чем в 2 раза меньшую по численности команду не может зацепить противника, так же значение имеет защита и всевозможные бонусы на зацеп получаемые со скилами и улучшениями корабля. По этому для того чтобы абордировать противника его надо для начала подготовить, т.е сбить команду и снизить его скорость, и тут либо сбить паруса чтобы затормозить его либо притереть его своим корпусом к ветру. Так что если интересно PotBS стала бесплатной и можно свободно ознакомится её игровой механикой, может быть позаимствовать от туда кое какие правила.

Для примера если кому интересно существуют в ней люди оснащающие специальные корабли именно под абордаж и более ни для чего, задача получить скоростное и маневренное судно с длинным корпусом и лёгкими быстро зарядными орудиями и значительной по численности командой, в 99% случаев это Шебека, затачивают её на скорость и зацеп, задача в бою быстро сблизиться пересекающимся встречным курсом, пользуясь косым парусным вооружением и возможностью идти круто бейдевинд, дать залп картечью и остановить более тяжелый и неповоротливый корабль собственным длинным корпусом и воспользовавшись снижением скорости и отсутствием команды взять на абордаж, в случае же, если бой затянулся Фрегат увернулся и не дал снизить себе скорость, и Шебека будучи обстреленной получила значительные повреждения, она уходит крутым галсом от преследования и судно с прямым парусным вооружением отстает. Таким вот видом пиратства промышляют многие на серверах PotBS. Открытую перестрелку с Фрегатами Шебека вести не может, так как она более картонная с более легким вооружением, но может какое то время держать удар сбивая паруса противнику но не более. Однако она легко уходит практически от любого преследования (за редкими исключениями), и может атаковать практически любой по тяжести одиночный корабль, хоть 1вый рейт, риск конечно в этом случае огромен, т.к очень тяжелый корабль пустит картонную Шебеку на дно с одного двух залпов, но тут всё зависит от рукастости пилота cool.gif быстро войти в мертвую зону и очень быстро взять на обордаж иначе труп, более легкие фрегаты не способные утопить Шебеку в залп зачатую оставшись с ней 1на1 очень сильно рискуют.

Интересен так же способ противодействия подобного рода атакам, в частности фрегату попавшему под настойчивую атаку Шебеки важно самому лишить её команды и не дать ей притереть себя к ветру, для этого необходимо разойтись с шебекой на встречных курсах вплотную и произвести залп в упор ни в коем случае не поворачиваясь и не ведя бой на параллельных курсах, т.к в этом случае Шебека подойдет по касательной пользуясь косым парусным вооружением и поставит Фрегат "носом в ветер" и возьмет на абордаж.

Алекс если интересны подробности могу расписать более подробно, не знаю как это соотносится с реальными боевыми тактиками но в Корсарах Онлайн это всё довольно занимательно и сложно, сам играю в эту игру более 2ух лет.
ALexusB
пока это все мне рано, базовых вещей нет. Такие тонкости скорее всего будут на уже открытой бете балансироваться.
Но пока с начала марта времени нет у меня на разработку ИИ, так что опять придется заново все восстанавливать в памяти, тк ОЗУ головы было обнулено и перегружено оперативной работой не по играм.
ALexusB
Однако, какая хорошая тема и она снова актуальна для нового проекта по корабликам по настолке.
http://www.seaward.ru/forum/index.php?showtopic=14552

Всем большое спасибо за ответы, прям восстановление знаний из бакапа в мозг произошло!
Книги, что упоминались, тоже нашел.

Флаш заглох как раз в 2012 и теперь на Юнити порт делаю всего арта и идей. Пока по простой схеме. пошаговых правил

10 лет, я как-то был на паузе в части геймдева, т.к. тогда не получилось быстро войти в новую платформу.
Перегрузы на работе, фриланс заказы, если было время. Это не оставляло место творчеству без монетизации и НИОКР.

Перечитал тему с интересом, что-то опять перенес в ДизДок, т.к теперь акцент уже не на реалтайм игру и чем заряжено орудие, там проще, но тоже сложно делать.

И забавно, я 10-12 лет назад был более оптимистичен в "сча тут все быстро сваяем" smile.gif
Теперь уже нет, задача ИИ оч сложная и еще вчера я даже не знал, как начать думать ее делать. А 10 лет назад знал выходит, но забыл... ага.
Но.... обчитался инфой и теорией вчера и.. мысли есть.

За прошедшее время я сталкивался с нейронной сетью на работе, с год ее учили помогать на вопросы отвечать, но.... вырубли в итоге.
Хотя мы видим, как это все реально работает - дип-фейки, восстановление фото по куску и прочие автопилоты.

Так что в решение анализа логов для самообучения ИИ в игре я уже не верю. Это не тот уровень и бюджет, где это уместно.
Конечный автомат (экспертная система по шаблонам) - это разумный компромисс.

До самого ИИ я дойду сильно позже, когда будет кликабельная игра с PvP на одном экране.
Пока просто отмечу, что тема будет обсуждаться и прошу, кто мимо проходил и заглянул - заглядывать чаще, тут была тишина, да
Но теперь есть движуха в моем лице - так что "велкам бэк на борт"!
ALexusB
Полезные статьи про ИИ в играх-стратегрях
https://dtf.ru/gamedev/91889-razrabotka-isk...kticheskoy-igre

https://gamedev.ru/code/articles/?id=6143
ALexusB
Добрался до ИИ
Пока сделал просто выбор всех вариантов хода в массив и рандом по нему.
Пока делал, собрал кучу проблем, которые порешал, чтоб "мультик" хода ИИ не рвался.
Теперь даже играется, просто случайно тыкая в плашки хода, даже стрельнуть может.
Давать такое не буду, т.к. нужно же какую-то тактику сделать
Куда плыть, держать курс. Приоритет стрельбы и по кому, когда и где в ремонт.
ALexusB
Я это сделал!

ИИ игровой

http://seaward.ru/pirates/ - сборка на тест

"маленький шаг для человека, но...." хотя это не про меня, но чувство у меня такое, т.к. месяц назад я даже не знал, как начать это делать.

Тут нет нейросетей, тут все "экспертная система" (как в вузе курсовую делал 25 лет назад).
Но слепок с меня самого - как бы я играл сам.

Есть что еще учесть, но и так норм.
Я сыграл пару игр с ПК и продул одну, вторую в ничью.

Сразу отмечу - ПК не жухлит! хотел такое сделать, как больше шанс или знать ветер, но.. это еще сложнее, чем просто жать плашки честно.
То есть ИИ думает, что жать из плашек хода и жмет - визуально даже видно, что он жмет (она моргает).

Для тестов можно натравить ПК на ПК
Ход будет через 5 сек сам закрываться для ПК-ПК игры (но вот рекламу нужно жать закрыть, если будет, хотя игра продолжится под ней, я так оставлял и тестил фоном, пока ужинал). Для ПК-Чел нужно ручками жать, как было

Подробные правила на 4х языках в как играть справке.

В табличке хода - название миссии, а то не ясно где что.

Какие-то еще правки по мелочи, забыл уже где, по ходу находил.

Иконки кораблей выдают название корабля при автоходе и выстреле - чтоб понято было, что это за корабль.

Оставил вероятности где-то, чтоб корабли могли сами что-то решить, как в +, так и минус - где-то реально тупят.
Люггер по испанскому золоту ищ-за Кубы еле выплывает - не понимает куда ему поворачивать

Хотя поиск пути сделан по матрицы полные "фронтом волны" и как бы обплыть может.

Просьба протестить ситуацию, когда ПК таки доплывет до порта назначения.
Может просто дать ему это сделать, не мешать плыть.

У меня вечно бой шел.
А у ИИ есть фича "не проходить мимо", если можно бахнуть в упор smile.gif

В логику ИИ вдаваться не буду - интереснее ее понять по ходу игры.

Где тупит - пишите кейсы, буду делать заплатки.

Еще клик по пробел и энтер закрывает ход корабля и плашку хода - тоже удобно, если нужно тестить именно ИИ игру.

Изображение
Вот это ПК против ПК результат.
И это у меня уже третья игра - в пользу испанцев.
Пиратам е везет или таки баланс не за них.
Тут было два абордажа, но в взяли 1, у меня было 0/2 до того. Так-то если бы "да", то оставшиеся корабли 1 бы загоняли.

Уровень Спасти пирата буду балансить - пока там без шансов проплыть.
Может ТТХ кораблей еще изменю
===
Да, поменял
В спасти пирата - корвет вместо брига и у галеона 4/6 в начале, а не 3/6, а то любой шторм и его не довести, т.к. негде чинить.
У корвета 2 галса, он слабее флейта и пинаса, но будет маневр.
У шхуны сделал 3 галса.

Вопрос (для ответов в соседней теме) - какие еще миссии на этих 12и типах кораблей сделать?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2025 Invision Power Services, Inc.