Помощь - Поиск - Пользователи - Календарь
Полная версия: ИИ для морского боя
Форум студии Seaward.Ru > Прочие игры > Разработка на Unity. Мини-игры "Пиратики" и т.п.
Страницы: 1, 2, 3
ALexusB
Нужна ваша помошь!

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

Начитался статей, много думал - понял, что к моменту начала кодинга ИИ кораблей нужно иметь базу знаний.
Помогите ее сделать!

Знания - это калька поведения нас - игроков в бою. Берем за основу бой в КВЛ-ГПК и текстом записываем свои действия.

Начну с себя, как пример, без деталей.

В бою у меня сразу идет
1. анализ состояния:
* сил противника (примерно равны, больше, меньше, сильно больше, сильно меньше).
* направления ветра

2. мои цели
* слинять из боя
* всех потопить
* всех абордировать
* часть абордировать и часть потопить
* часть абордировать и слинять из боя
Подзадачи:
* продержаться какое-то время (если это задача такая по квесту)
* защитить купца
- все это сводится в списку выше

3. Корректировка стратегии со временем, то есть повтор 1. и смена на 2.

4. Шаги для достижения цели 2.
* перезарядка
* выстрел
* маневрирование
* поднять-опустить паруса
* абордаж
* выкинуть товар

что еще обычно бывает?

И давайте лезть в детали - на что смотрим, когда оцениваем больше-меньше?

Паруса, корпус, команда, типы кораблей?

Попробуйте на примере конкретного боя описать свои действия - мне нужна статистика, я сам сведу по полочкам.
Пойдет рассказ "как я брал золотой флот" и типа того. Но в описании решений и критериев их оценки, а не литературных изысков про "отлетающие доски после бортового залпа".
Dir
Цитата(ALexusB @ May 20 2009, 22:31) *

В бою у меня сразу идет
1. анализ состояния:
* сил противника (примерно равны, больше, меньше, сильно больше, сильно меньше).
* направления ветра

*сила ветра
*дистанция до ближайшего противника.
makarena
Для меня:
1.анализ состояния:
* сил противника (примерно равны, больше, меньше, сильно больше, сильно меньше).
* направления ветра

Цель – всех абордировать. После боя уже разбираюсь с призовыми корабликами (хватит ли команды на всех, чтоб доплыть до ближайшего острова).
Использую книппеля и картечь, т.к. ядра и бомбы с собой не таскаю.
Паруса в боевом положении. Маневр.
Часто приходиться защищать захваченный призовой кораблик, кэпу командуешь уплыть, а он прёт прямо под пушки противника, в итоге он или потоплен, а скорей всего захвачен, т.к. команды на нем нету.
Black Angel
1.1 Количество кораблей противника(не важен класс)
1.2 сила ветра
1.3 направление ветра
1.4 дистанция до ближайшего противника
1.5 скорость корабля противника
1.6 каким зарядом заряжены орудия противника
2. Зависит от 1.1:
Если кораблей >=3 то одного на дно и ходу,если меньше то на абардаж всех,за исключение каковы повреждения нанесены мне.
4. Бортовой залп книпелями,спуск парусов,разворот кормой для получения меньших повреждений и кормовой залп,следующий борт.Перезарядка бомбами если >=3,картечью <3.
/*Лирическое отступление:
Морские противники в ВМЛ были намного лучше нежели в последующих версиях игры.Но всем им не хватает одного-нелогичности в своих действиях,т.к.чем будет стрелять и куда поплывёт бот можно элементарно понять.*/
При убегании выкидываю товары по весу,а не по необходимости-жизнь дороже :-) На что смотрим?На паруса конечно же!Неподвижный пративник-мертвый пративник!
dima12
Оценка противника:
*Эскадра или одиночка
*Оценка сил эскадры/одиночки и моих сил (моей эскадры)

#Если я слаб.
Обстрел книпелями парусов ближайшего противника и дёру, держась ветра + облегчение трюма, если меня доганяют (т.е. моя скорость меньше ближайшего корабля).
#Если я равен по силам или больше.
Обстрел опять же книпелями парусов, разворот, играя скоростью корабля за счёт подъёма, спуска парусов (учитывая нацелены ли на меня заряженные пушки или нет).

Цель такая, чтобы сбить хотя бы 1 мачту, тогда противник менее повротлив и более медлен. После этого принимаюсь за другой корабль. После "обезвреживания" пары самых опасных судов либо топлю, либо абордаж.

*Если в бою проигрываю (не потопил ни одного корабля)+(остаётся ~60% от корпуса и парусов), то пытаюсь удрать. Опять же книпели, используя.
Джафар
Оценка противника:
Оценка : Эскадра/одиночка (класс роляет)
Оценка моих сил: Одиночка

Направление и сила ветра:

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

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

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

Речь о построении новой мат модели - не как играть против ИИ "секрет победы", а как играть ИИ против вас самих

На это акцент, плис.
dima12
Это сложнее.

*Противник равен мне по силам или сильнее.
Оценка уровня моего корабля и противника.

#Если я слабее
1)дёру, пытаясь отсреливаться книпелями по парусам
2)сброс товара из трюмя (если моя скорость меньше ближайшего приследователя)

#Если на равне
1)даю бой, НО
2)держусь дистанции, стараясь её выдерживать, если её длина от А до Б меняется.
3)В сражении использовал бы книпели и бомбы.

*Главное использовать промахи противника
1)повенулся не той стороной
2)опустошил 2 борта подряд
- тогда идём быстрее в атаку при условии попутного ветра. Сделали бортовой залп по нему и вернулись снова назад для удержания дистанции.

PS: Вопрос в браузерке предполается зарядка бортов разным видов снарядов? Тондем книпели + бомбы был бы интересен.
1)Подходим к противнику на близкое расстояние.
2)Обстреливаем бомбами.
3)И пытаемся отойти на безопасное расстояние, попутно стараясь книпелями порвать его паруса в клочья, чтобы сбавить его скорость.

PS2: Для проведения сравнения игры живых людей друг против друга можно использовать режим игры через инет в К3/К3СМ, используя Хамачи.

Цитата
Любое сближение

Но книпели же имеют самую дальную дистанцию обстрела. Если не приближаться на дистанцию, доступную для выстрела, тогда и обстреливать нет смысла. Не долетят.
Dir
Цитата(dima12 @ May 21 2009, 20:28) *

#Если на равне
1)даю бой, НО
2)держусь дистанции, стараясь её выдерживать, если её длина от А до Б меняется.
3)В сражении использовал бы книпели и бомбы.

*Главное использовать промахи противника
1)повенулся не той стороной
2)опустошил 2 борта подряд
- тогда идём быстрее в атаку при условии попутного ветра. Сделали бортовой залп по нему и вернулись снова назад для удержания дистанции.

Думаю,что тут оба противника будут первоначально стараться выдержать дистанцию и получить более-менее ощутимый перевес,воспользовавшись ошибкой противника.
Любое сближение(на дистанцию книпелей,а тем более бомб) чревато значительными потерями,те изначально боёвка будет вестись на дальних дистанциях.Получивший в итоге более-менее реальный перевес будет стараться сблизиться,чтобы развить оный.
ALexusB
Цитата
PS: Вопрос в браузерке предполается зарядка бортов разным видов снарядов? Тондем книпели + бомбы был бы интересен.

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

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

Для торговцев, логичее было бы, чтоб они чаще пытались уйти, а не догнать меня, когда я ухожу, т.к. чаще эта погоня становится для них последней.
Dir
В бою с равным соперником,потеря им части парусного вооружения ещё не победа.Малейшая ошибка, при сближении, может привести к ещё более серьёзным потерям уже у атакующего.
Джафар
Тогда можно будет использовать так называемые "мертвые зоны", там где пушек нет.
Bers
Цитата(Dir @ May 22 2009, 11:54) *

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

Это половина победы или как минимум ничья smile.gif
Как правильно отметил Джафар - это реальная возможность пользоваться мертвыми зонами, а также сближаться во время перезарядки противника, и отходить, не переживая, что он догонит.
Golden Hind
Анализ действий обычно начинается с оценки сил противника:

1. Класс кораблей противника и их расположение. Таким образом я определяю очерёдность столкновения с вражескими кораблями.
2. Выбор первой жертвы из чего определяется какой вид боеприпасов должен быть заряжен в первую очередь - книпеля, картечь или бомбы. Причём первая жертва это не обязательно первый корабль вражеского каравана. Если первый корабль противника по классу значительно превосходит мой, то заряжаю книпелями, чтобы лишить того скорости и манёвренности. Но более одного-двух раз по ниму обычно не стреляю, а перезаряжаю картечью и иду к выбранной жертве, если конечно эта выбранная жертва не скоростной корабль.
3. При атаке естественно учитываю направление и силу ветра, а также стараюсь зайти между двумя кораблями, чтобы обстрелять их одновременно с двух бортов и даже картечью, ибо выбивание команды снижает не только скорость и манёвренность вражеских кораблей, но и скорость зарядки их пушек.
4. После абордирования первой жертвы выбираю вторую жертву, если это позволяет состояние моего корабля - паруса и корпус. В противном случае покидаю поле боя, зарядив пушки книпелями.
5. Если же у меня значительное превосходство в силе корабля, в размере команды и в опыте команды с офицерами, то обычно самые "толстые и вкусные" корабли торговцев оставляю напоследок, чтобы увести их как трофеи с грузом на борту. В этом случае стараюсь в первую очередь потопить корабли охранения бомбами (реже ядрами), предварительно сделав их малоподвижными обстреляв книпелями.

Применяемые боеприпасы во время боя:

1. Чистое абодирование: книпеля - 30%, картечь - 70%.
2. Нормальный бой: бомбы - 30%, книпеля - 30%, картечь - 40%.

Советы по созданию отличного AI вражеcких кораблей:

1. Поведение кораблей охранения и патрульных кораблей во время боя. Пиратские корабли действуют идентично с патрульными кораблями.

Корабли охранения и патрульные корабли не должны гнаться за ГГ до тех пор пока не собъют его паруса до 66%. А для этого поведение подобных кораблей должно быть таким:

а) зарядка книпелями (реже ядрами);
б) выход на дистанцию огня в 2/3 от возможного обстрела книпелями (реже ядрами);
в) разворот к противнику бортом с поворотами на другой борт;
г) после уничтожения парусов противника погоня;
д) выход на дистанцию огня в 2/3 от возможного обстрела бомбами (для кораблей охранения) или картечью (для патрульных кораблей)
е) потопление противника кораблями охpанения или его абордирование патрульными кораблями

2. Поведение для малоподвижных торговых кораблей во время боя. Cкоростные корабли стараются уйти:

а) зарядка ядрами;
б) выход на дистанцию огня в 2/3 от возможного обстрела ядрами (реже книпелями);
в) разворот к противнику бортом с поворотами на другой борт;
г) при приближении противника перезарядка на картечь (реже бомбами)
д) выход на дистанцию огня в 2/3 от возможного обстрела картечью (реже бомбами);
е) потопление противника бомбами, когда у противника состав команды падает до 33%
ж) погони нет, только перезарядка с картечи, на бомбы, книпеля и в конце на ядра
Rаvеn
Проще всего рассмотреть тактику боя на примере, когда вы и соперник равны по силам, либо уступаете ему. Допустим, что по вооружению, команде и скорости примерно равны.
Прежде всего, конечно же, оцениваем силу и направление ветра, тип парусов косые или прямый, - это немаловажно.
1.В самом начале боя главное, как было уже сказано, сохранить свои паруса и нанести достаточный урон парусам противника. Поэтому пока паруса у обеих сторон целые и скорость равна, стараемся занимать в бою такую позицую относительно противника, чтобы ветер дул от него в нашу сторону. Это может показаться глупым, потому как дает преимущество противнику в случае, если он решит неожиданно сблизиться. Однако если он думает, как мы, то не велика вероятность, что он бросится на абордаж пока силы наших команд равны. Кроме того, когда ветер дует от противника, то мы задаем дистанцию а не он, ведь на данный момент боя нужно держаться на расстоянии. Для атак используем книпели, стараемся бить, когда противник перезаряжается и стоит поперек линии нашего огня, т.е в борт, так больше шансов сломать больше мачт. Стрелять в корму или нос, пытаясь порвать паруса, бесполезно, если ИИ думает как мы, то его паруса в боевом положении (сумеет их сберечь).
Когда он производит залп, подставляем корму, + если выдержали позицую, то в момент его атаки увеличиваем дистанцию уходя по ветру (противник сам будет сокращать дистанцию). Таким образом действуем, пока скорость и маневренность врага не упадет.
2.Дальше в зависимости от целей, сначала можно пройтись по противнику бомбами (имеют приличную дальность и наносят наибольший урон команде после картечи, ну может пару пушек удасться выбить + еще потеря скорости от дыр в корпусе) или сразу зарядившись картечью, сократить дистанцию и пристроится у кормы. Пытатся не попадать под бортовой залп и выбивать команду. При этом надо помнить, что целью почти поверженного противника, теперь не имеющего шансов на побег, становится абордаж. Он наверняка, тоже будет атаковать картечью. Так что у кормы удержаться немаловажно.

1. Этот способ так же идельно подходит в том случае, когда нужно пустить врага на дно. Только само собой, заряжаем бомбы или ядра.

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

У меня был случай, по-моему, на ГПК уже, когда в одном из боев невыгодных мне по числу врагов мой корабль (фрегат) остался без мачт и пороха 1 на 1 против БШ, который был почти в идеальном состоянии, правда капитан мазила. А у меня было преимущество в команде и ветер дул от меня в сторону НПС. БШ держался на дистанции и атаковал бомбами. Мне кроме как встать носом к противнику, чтобы уменьшить площадь поражаемого снарядами корабля и ждать, ничего не оставалось (пороха нет). В итоге простоял так минут 40 реального времени, потом БШ перестал стреять и просто уплыл по ветру 1.gif Не знаю, то ли ему надоело, то ли у него порох кончился. Но он уплыл.
Почему я не начал бой снова, когда все так повернулось, а ждал так долго? А все потому, что у меня команды было раза в 1.5 больше и статус "морсие волки". Я был на 100% уверен, что если случится абордаж, то выиграю я. И поэтому надеялся, что БШ попытается взять на абордаж, а я до того времени не потеряю превосходство в команде. Да и сама по себе ситуация интересная оказалась, как и развязка в итоге.
Это был единственный раз на моей практике, когда кораблик НПС отступил сам, имея такое превосходство.
mr.Li
Так, ну что же, я играл бы против себя так:
1 Осторожное сближение, форма - уход и позволение себя нагнать.
2 Лавирование, позволяющее открывать бортовые залпы ядрами и снижение скорости для уменьшения дистанции.
3 при вхождении корабля псевдоменя в зону поражения книппелей, открыть огонь по парусам.
4 при падении первой псевдомоей мачты - резкий разворот в сторону корабля, жесткий обстрел книппелями.
5 когда у псевдомоего корабля останется не больше 10 хп парусов, я буду уже в зоне поражения картечью. Заняв удобную позицию, а именно - перед-бок псевдомоего корабля - мертвая зона, развернуться бортом и вести огонь картечью.
6 дать бой на палубе или утопить бомбардировками.
Black Angel
Цитата(ALexusB @ May 21 2009, 17:25) *

Усложним задачу - как бы вы играли против себя?
Вы описываете игру "ас из" (текущую) с "тупым" ИИ компа.
Правильно сказано - он предсказуем.

Речь о построении новой мат модели - не как играть против ИИ "секрет победы", а как играть ИИ против вас самих

На это акцент, плис.

Задача не cложная надо бpatь наши же пpиемы и иcпользоваtь их пpоtив наc.Пpоще вcего эtо tyпое подpожание.Каких бы не cделали ИИ человек бyдеt вcё pавно yмнее пpatивника.Человек мыcлиt логичеcки и неt,a машина не yмееt пока.
Cкоpee вceго любой игpок caм пpоtив ceбя не ctaл бы бица,а yбегал бы taк как оctaлиcь бы оба без паpycов и не cмогли бы биtьcя дpyгими боепpипаcами tak kak оба находилиcь бы далеко-tолько книпели даctaвали бы.
2мr.Li
A teпеpь пpeдctaвь чtо tвой пpatивник делаеt tоже caмое.Как tогда бы tы делал?Воt чtо инtepecyet ALexusB'а.
ALexusB
В хорошем ИИ есть плохая сторона для игр - ИИ должен проигрывать игроку, интересно, качественно, захватывающе, но проигрывать
Если он будет выигрывать - тоже плохо smile.gif

Преимущество у ИИ есть - это точность движения (просмотр результатов приказов по формулам), тогда как человек в уме не сможет оценить без линейки и калькулятора.
Но соглашусь, сделать качественный ИИ сложно и долго - нуэно сделать интересный и масштабируемый (на потом докрутить).
Black Angel
2ALexuSB
Надо чtобы наpод pаcкaзал как он боpetца c 'tyпыми' а поtом взяtь их меtоды и оtдаtь ИИ.Повtоpив tak неcколько paз,оtдавая в наpод для tecta.Tak пpоще;-)
ALexusB
любой ИИ (даже тупой) нужно сделать, делать его сразу тупым - бред.
Любой регулятор сложности (скилы, ранги) - всегда идут на понижение ИИ, а не наоборот, как логично думается.
Есть эталонный ИИ, умнее он не будет, глепее сделать можно - спецом чтоб ошибался.
Описание нужно "против себя" - тк ИИ с людьми играть
navy
Цитата
Любой регулятор сложности (скилы, ранги) - всегда идут на понижение ИИ, а не наоборот, как логично думается.

Ага, для примера, вы играетесь с ПГГ на коэффициенте 0.3 smile.gif А срисовывал я их рост с себя
Golden Hind
Цитата(ALexusB @ May 23 2009, 00:28) *

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

Ну так а для чего тогда уровни сложности? cool.gif
Кстати, именно по караванам торговцев с сопровождением необходима для ИИ торговцев дать следующую формулу: Держаться кораблей охранения. И всё. А то торговцы как бы сами по себе, а их охраники тоже сами по себе.
mr.Li
Хочу заявить, что это не единственная моя тактика.

Да, еще бы я хотел предложить разработчикам включить групповой ИИ - морская тактика для эскадр: окружение, блокировка, и все подобное.
Kamil
Гм... Чтобы я делал играя против себя - нападать только при большом преимуществе в классе и количестве кораблей (допустим против корвета паре бригов и шхуне делать нечего), в начале игры с равным игроком справится еще можно, но потом ловить нечего. Пушки по умолчанию оставить заряженными книпелями, и обязательно сделать залп ими, а не пытаться постоянно перезарядится. Ну и главное если ИИ научат действовать командно то будет очень интересно и хорошо.
Black Angel
ALexusB вы меня не поняли.Я имел в видy 'tyпые' эtо te чtо на ypовне невозможный.
Для новых ИИ на лёгком ypовне можно взяtь ceчашний невозможный.Пyctь игpоки pacпишyt kak они c ними боpяtcя.И на ypовнях выше бpatь taktики игpakов и их иcпользоваtь пpоtив caмих игpаков.
Bucaneer
Для эталонного ИИ вполне можно взять существующий для Невозможного. Поскольку играл только на этом уровне, сравнить с другими уровнями не могу, но обзывать его тупым dry.gif я бы не стал. Во многих случаях, там где ИИ нацелен на атаку ( ОЗГи, патрули, каратели ), он ведет себя вполне адекватно (особенно, когда в эскадре есть скоростная мелочь типа люгеров), т.е. старается в первую очередь лишить противника маневра, а далее - утопить или абордировать, если нужно взять ГГ в плен smile.gif. Меня почему-то на абордаж никогда не брали smile.gif
Другой момент - торговые караваны. Торговцы разбегаются, охрана ковыряет в носу, делай что хочешь. С точки зрения командира конвоя - торговцы должны сохранять боевой порядок и вести стрельбу только на максимальное поврежнение атакующего (бомбы - ядра) всегда. Корабли охранения должны быть нацелены на немедленную атаку и иметь пушки заряженые книппелями, а трюма пустые smile.gif . Задача - лишить нападаюшего маневра, связать боем и дать каравану уйти. Как все это смешать в одном флаконе, я не знаю. Причем охрана не должна сдаваться на милость вообще dry.gif .
При таком раскладе еще подумаешь, стоит ли в одиночку нападать на конвой. Отсюда другая задача - компаньоны должны выполнять приказы ГГ :)правильно.
Тактика у всех одна - лишить противника маневра, отсюда появляется шанс победить. Как для атакующего, так и для обороняющегося. А чем стрелять и когда, зависит от типа и калибра орудий..ИМХО
Denis
В данной задаче необходимо посмотреть на ситуацию с ИИ не со стороны игрока, а со стороны ИИ, прописав ИИ строго оговоренные (уставные) действия. Только в этом случае, если мы не ставим задачу создания самообучающегося ИИ, действия ИИ будут сбалансированно правильными.

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

Типичные ситуации встреч в море – это:
1. Конвоирование торговых кораблей.
2. Плавание торгового корабля в составе каравана
3. Патрулирование.
4. Нападение.
5. Одиночное плавание.

Изначальные задачи, стоящие перед ИИ (приоритеты) выходят из описанных выше ситуаций. Это:
1. Защита каравана / конвоируемого судна и доставка его к пункту назначения.
2. Держать строй и не отставать от других кораблей, что бы не стать добычей атакующей стороны, минимизировать потери и добраться до пункта назначения.
3. Поиск вражеских кораблей и охрана объектов на строго ограниченной территории.
4. Целенаправленный поиск вражеских кораблей, а также: потенциальных призов; нападение на конвои и торговые караваны; нападение на прибрежные поселения и города.
5. Передвижение из пункта А в пункт Б.

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

Оценка превосходства сторон проводиться сравнением: соотношение количества кораблей с обеих сторон; количество орудий и их калибр; скорость кораблей с обеих сторон, причем для каравана эта формула вычисляется по принципу «скорость передвижения каравана равна скорости самого тихоходного судна в нем»; количество солдат на борту, готовых участвовать в абордаже или его отражении.

Вариабельность. Это то, что позволит разнообразить типичные ситуации. Сюда входит: фактор внезапности; погодные условия; диспозиция сторон относительно друг-друга; время суток; мораль и ментальность, предустановленная в национальных отличиях с учетом коэффициента торговец/военный/пират; состояние флотилии; наличие третей стороны в столкновении.

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

1. Национальная принадлежность.
2. Намерения ГГ.
3. Состояние флота.
4. Соотношение сторон.
5. Поведение ГГ.

Это позволит избежать таких ситуаций, как например, преследование корабля ГГ на протяжении трех-четырех суток прибрежным патрулем, при котором скорость кораблей одинакова, или нападение вражеского люгера на меновар ГГ.
sergo-kon
В большинстве случаев на низких уровнях развития ГГ иду в бурую на абордаж, будучи заряженым картечью. Один, максимум два залпа при максимальном, приабордажном сближении, что бы прорядить экипаж противника.
Таким образом будучи одиноким волком на судне четвёртого класса, если в эскадре противника три судна, до второго класса включительно, все абордируются и топятся. Если в эскадре четыре и более кораблей, смотрю соотношение количества экипажа, каждого отдельно взятого судна, выбираю самый ближайший шип и двигаясь в его сторону, обстреливаю книпелями самый крупный, далее по возможности маневрирую и сближаюсь с самым наглым из быстроходных(т.к. они обычно тоже прут в бурую учитывая численное приимущество своего экипажа или орудий). После абордажа смотрю соотношение сил с другими членами вражеской эскадры.
Если чувствую что на пролом хватает сил, иду на следующий абордаж с ближайшим. Если нет то пытаюсь отдалиться и вести обстрел книпелями по любому кто приближается больше других. Разумеется так же стараюсь беречь собственные паруса и по возможности убирать их если кто то из противников поварачивается бортом с явным намерением дать залп.
Прилично попортив паруса судам противника, если ещё позволяет состояние моего судна, опять иду на ближайшего. Разумеется стараюсь следить чем он заряжен и соответственно либо виляние, либо атакующий рывок на сближение с последующим абордажем.
Пару раз такая тактика срабатывала против эскадры из пяти шипов, где были: один военный корабль, два тяжолых галеона, два корвета и бриг или два брига и корвет. У меня же был пузатый и заточеный галеон с перегрузом экипажа в количестве 461 человек. Всех топил и шол на следующего.
В некоторых случаях такая тактика не оправдывалась т.к. состояние судна не позволяло эфективно вести бой маневрируя между врагом.
Получается так.
1. Опредиление задачи. (уничтожение или захват)
2. Оценка соотношения сил.(число судов, численность экипажей на них, маневренасть вр.шипов)
3. Оценка навыка капитана на вр.шипе, точность противника, при стрельбе с дистанции ядер, по отношению с моим навыком.
4. Выбор. Атака или ал бе бак. smile.gif
5. Если атака, книпелируем ( если такая возможность предоставляется)
А). При высокой точности стрельбы противника, максимально возможное по скорости сближение и абордаж с последующим потоплением или захватом, если есть офицеры.
Б). При не высокой точности, максимально возможное по скорости сближение с одним-двумя залпами картечью, с последующим захватом или потоплением.
6). Повторная оценка соотношения сил.(состояние судов, количество экипажей)
7). Выбор. Атака или ал бе бак. smile.gif
Схема простая как топор. 1.gif
Ван дер Декен
было бы не плохо если бы были специальные маневры кораблей и у гг и у вражеских. пытался взять караван по наводке пгг. и вот что получилось: (уверен что случайно) вражеские корабли начали окружать меня, ни чего сложного (особого, но нада простараться). Вот сейв, если интересно то посмотрите
Mitrich
Вот и пришло время заняться многострадальным ИИ. Приятно, черт меня подери!
Однако для того, чтобы потрудиться более плодотворно, хотелось бы уточнить задачу, т.е. вопросы, поставленные Алексусом, поскольку я не вполне представляю, что входит в зону ответственности этого самого ИИ. Итак,
1. Вопросы по сбору статистики, поставленные разработчиком, касаются только собственно морского боя, т.е. поведение противников сразу после встречи в море.
Вопрос: это все, за что отвечает ИИ? Если это так, то в предыдущих постах уже все сказано. Порядок действий одинаков, различия лишь в поведении конкретных игроков.

2. Если же ИИ отвечает за более широкую область игры (что подтверждает пост Denis'а), то просьба уточнить пределы этой области, а именно:
а) регулирует ли ИИ поведение кораблей всех наций на глобальной карте?
б) учитывает ли ИИ поведение кораблей различного назначения при выполнении ими характерных для них задач (пост Denis'а составлен так, что учитывает, а я в этом не уверен)?
в) входит ли в ИИ мод с флагами или это отдельная песня?
г) какие имеются ограничения, преодолеть которые (пусть в настоящее время) невозможно?

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

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

В ММО ИИ тем более не человек, это как Остап Бендер - одновременный шахматный турнир. Это тогда скорее паук.

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

Вообще игры изнутри - это как шок героя Джима Керри в Шоу Трумана, когда он зайдя в неучтенный банк увидел, что там вместо лифта гардеробная статистов, а за гранью его мира - стенка купола.

так вот - игроки играют - и пусть играют дальше, они верят в мир игры - а реально там, если капнуть - железные подпорки и никакой воды нет smile.gif

Не нужно туда лазить! smile.gif
"Ах, обмануть меня не трудно, я сам обманываться рад"(С)<АС Пушкин>
Denis
Mitrich
В своем посте я попытался сделать кальку морского боя, в которой определенной ситуации соответствует определенная задача, т.е., если ситуации в море условно соответствуют нынешним игровым, то задачи, которые я расписал для этих ситуаций, относятся к "идеальным" (шаблонным) задачам, которые, как мне кажется, должны были бы быть в разрабатываемой модели.

Именно поэтому я предлагаю посмотреть на ситуацию не со стороны того, как воюет игрок, а со стороны того как должен воевать ИИ. Вопрос выбора боеприпаса, например, безусловно важен, но это скорее третьестепенная задача для данного вопроса. Главное - модель поведения, на которую и будет надстроены паруса и ядра. Здесь я абсолютно согласен с ALexusB, что необходимо выстраивать те самые подпорки, которые будут держать картинку именуемую ИИ.

ALexusB
У меня есть вопрос, возможно ли в данной моделе прописать разные модели поведения купцам, кораблям охранения, охотникам и пр., с помощью которых можно было бы и решить типовые задачи?
ALexusB
Denis, да, возможно.
Только дело не в типе, а в стратегии на данный момент, "задаче" по-твоему.

Те же ОЗГи имеют цель - преследовать, но в процессе боя переключатся на убегать smile.gif
тк
"3. Корректировка стратегии со временем, то есть повтор 1. и смена на 2."

А вообще, в играх есть одна заповедь про ИИ. Он не должен выиграть у игрока! Он должен ему красиво проиграть!

Только в ММО свои законы, там всегда кто-то проиграет, если это ПвП, там ИИ может просто и не быть.
Mitrich
ALexusB
Отвечу за себя. У меня нет никаких "заблуждений в понимании ИИ" по той причине, что у меня полностью отсутствует это самое "понимание ИИ". Данное обстоятельство меня очень даже устраивает, потому что я действительно "обманываться рад", и очень надеюсь, что никогда не увижу этих "подпорок". В отличие от разработчиков - Game для меня не работа, а ИГРА.
Из твоего поста я понял, что в данной теме речь идет только о морском бое. Морской бой - это "набор условий и коэф-фициентов". Очень хорошо, предельно ясно. Из последующих постов я уяснил, что можно прописать "правила" поведения кораблям различного назначения. Замечательно! Из этого я делаю вывод: для того, чтобы помочь тебе я должен с точки зрения геймера описать свое видение поведения кораблей компьютера, т.е. описать "условия", а для того, чтобы ИИ красиво проигрывал, ты уже самостоятельно расставишь коэффициенты. Поправь меня, если я ошибаюсь в чем-то.

Denis
Твой подход совершенно правомерен. Лично меня еще с ВМЛовской жизни всегда раздражало то, что все абсолютно корабли противника действуют совершенно одинаково, без учета решаемых задач. Люгеры прут на линкоры, компаньоны спасаясь уплывают прямо под орудия враждебных фортов и т.д. Справедливости ради следует признать, что в последних играх ИИ существенно усовершенствовался, но проблема с привязкой к конкретным задачам не решена. Ну вот, настала пора ее решать. Только, чтобы наши дискуссии в данной теме имели смысл, надо договориться о словах (только представь, каково мне было узнать, что ИИ - это вовсе не ИИ, а ЭС).

Излагаю свою точку зрения.
1) Задачи - у каждой категории участника (со стороны компа) игры своя, каждый геймер может видеть их по-своему. Как пример может служить перечень задач ГГ-я, как это понимаю я (см.ниже).
2) Цели - основные и промежуточные, достижение которых ведет к решению задачи (иногда они совпадают, я, если честно, зачастую их путаю).
3) Способы достижения целей (решения задачи) - потопление, абордаж и бегство. Каждому из них присущ определенный набор (порядок) действий.
4) Действия - стрельба различными боеприпасами, маневр, паруса и т.д.
Поправьте, пожалуйста, если чего не так.

Итак, предлагаю немного систематизировать нашу дискуссию и далее излагать свое видение поведения ИИ (или чего там есть на самом деле) в морском бою применительно к следующим категориям участников игры:
1. Пираты
2. ОЗГи
3. Военные корабли
4. Купцы

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

Пожалуй, на сегодня все. Если я слишком навертел проблему в плане возможности воплотить все это в жизнь, то остановите меня (жду реакции Алексуса). Если чего упустил или загнул лишнего – поправьте. Свое видение изложу чуть позже – сейчас просто нет времени.
Denis
Mitrich
Ты прав в том, что надо определиться с терминологией, без этого никакой научности нет 1.gif
Другой вопрос, а нужно ли, что бы ИИ учитывал то, что собирается делать ГГ? Как то не логично. Зачем, к примеру, золотому флоту знать, что ГГ перевозит пасажира? blink.gif

На мой взгляд, более логично выглядят "уставные отношения" или же набор формул по которым происходят события. Пример такой формулы:

1. Купец-одиночка встретив корабль игрока в море по формуле "свой-чужой" (оценка принадлежности к нации) должен опознать ГГ и:

если ГГ "свой" - плыть спокойно дальше
если ГГ "чужой" то:
а) попытаться сбежать
б) если сбежать не получается, то оценив соотношение сил:
- сдаться;
- сражаться.

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

Да, все так
Цитата
Если я слишком навертел проблему в плане возможности воплотить все это в жизнь, то остановите меня (жду реакции Алексуса).

А тут остановлю.

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

Комп имеет все теже механизмы, что и игрок. Потому и аналогия с ГГ.

Стык шаблонов - это как запись макроса, проигрывание шаблонов подряд и есть стратегия (поведение типажа)
Пример,
- маневрируем на сближение (тоже задача, не ясно как делать - учитывать векропы курсов, ветра и тп)
- палить книппелями по парусам
- при близкой дистанции (заранее) заряд картечи (либо 1 борт картечью, а другим книпели)
- залп картечью
- сближение
- абордаж


Своими словами уже расписали, инфы достаточно - давайте вводить стратегии и шаблоны, а потом последовательность шаблонов внутри стратегии.
Чтоб в итоге я понял список задач уже для кода -оценил в часах, ужаснулся и забил болт smile.gif
Denis
Цитата
Своими словами уже расписали, инфы достаточно - давайте вводить стратегии и шаблоны, а потом последовательность шаблонов внутри стратегии. Чтоб в итоге я понял список задач уже для кода -оценил в часах, ужаснулся и забил болт


Тогда дай, плз, образец шаблона для описания моделей поведения с учетом того, что бы можно было развести поведение купцов и военных.
ALexusB
так выше дал

Идет сперва перечень шаблонов (кратное название- описание)
Потом список стратегий (тут последовательность шаблонов)

Потом список ролей и присущих им стратегий, с условиями выбора одной из них в один момент времени

Потом уже детализация шаблонов на состовляющие реализации (типа - маневр разворота - это последовательность команд лево руля)

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


И вот адекватные поступки согласно имитации погодных условий, это наверное будет посложнее.
Правда тут опять одна оказия влазит, это смена направления ветра при переходе с глобалки на открытое море, ну да шут с ней, компу это пофиг, только игрок кайфаломится(хотя нужно отметить достаточно сильно. Очень сильная фрагментация последовательности событий).
Mitrich
2Denis
Тут ты прав, «золотому флоту» незачем знать, что именно везет ГГ-й. Но я не зря попытался расписать участников игры (со стороны компа) по типам. Кстати сказать, «золотой конвой» не участник, это совокупность участников - купцов и охраны. Отличается от другого конвоя только своим составом, ну может более жесткой задачей по охране. Да, им это знать ни к чему. А пирату? Нужно ему знать, чем он может поживиться, чтобы принять решение на абордаж? Мне кажется нужно. Иными словами, я подошел к данному вопросу в более широком смысле, нежели просто частный случай охраны (также купец, свободный капитан и т.д.). Так что тут, я считаю, все правильно. Хотя и не бесспорно.

2 ALexusB
Ну вот, помаленьку приходим к пониманию существа вопроса. Ты только запасись терпением, поскольку для дилетантов программирования, таких как я, далеко не все вещи очевидны. Еще немало глупостей придется спросить.
Относительно необязательности привязки поведения типажей (если я тебя правильно пронял) к задачам ГГ-я я не вполне согласен, но сейчас спорить не буду. Уверен, что к этому мы еще вернемся. Еще вернемся и на тот самый стык локаций «моря» и «глобальной карты».

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

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

Дальнейшее будет попозже, если это описание удовлетворит, прежде всего, Алекуса.
ALexusB
ираектории джижения судов - это отдельная задача на "сделать" - как сделаем, так и будет - сча ничего нет вообще.
Комп имеет теже возможности (приказы), что и игрок
Соотв траекторию разворота с учетом ветра - это опытноопределяемая или теоретически обосновонная последовательность.

Погоды не будет визуально - влияение ее в виде коэфф высоты волны и ветра, а они уж влияют по законам физики-игры.

2Mitrich
Да, все так, пока делаем поверхностные сценарии - потом уже по реализации будет разбито на отдельные блоки, если что-то сделать не получится, будет заглушка или отказ от вида стратегии.

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

Если >2х1 - тут всеми дружно надо стремится на абордаж - попутно обрабатывая меня картечью. Корабль с наибольшем количеством команды должен остатся "напоследок". После абордажей численость моей команды сильно понижется, т.ч. либо я проиграю последний абордаж, либо не смогу отсреливатся - и меня можно будет спокойно потопить.

Если меня больше и я сильнее - нужно уплывать отстреливаясь книпелями (очень я это дело не люблю).

Прмечание. Основную работу в бою делаю я сам, а не мои напарники. Чаще всего они служат чтобы принять на себя огонь, и повреждения. По этому - все внимание на флагмэновский корабль. Отношение к остальным должно быть "держать дистанцию" - не более того.
Denis
Тут есть важный момент для правильной оценки ситуации и соблюдения видимости исторических реалий. Любой корабль есть определенная материальная ценность + то что находиться на нем является добычей. Соответственно зачастую приоритетной задачей является захват корабля. Для пирата - это задача №1, иначе зачем он выходит в море? Другой вопрос - грамотная оценка ситуации, т.е определенная модель поведения в бою без учета торговец/пират/военный:
1. Агрессивное поведение. Силы нападающего больше или равны: приоритет в тактике - обездвиживание и захват судна (книпель - картечь).
2. Сбалансированно агрессивное поведение. Силы нападающего равны или меньше: удержание на расстоянии, маневрирование с целью уровнять шансы или добиться преимущества в виде приведения корабля к ветру, тактической ошибки противника, поломки (выведения из строя) мачты, руля и пр. (ядра - книпеля).
3. Сбалансировано осторожное поведение. Силы нападающего меньше: сбежать (оторваться от преследования) (ядра - книпеля), если не получилось - принять бой и стараться нанести кораблю максимальный вред - потопить (ядра - бомбы). Ближний бой - бомбы - картечь.
4. Осторожное/трусливое поведение. Силы нападающего изначально меньше (торговец): сбежать, стараясь облегчить трюм (не отстреливаться!). Догнали - сдаться.

Приоритет в уничтожении корабля как материальной ценности может быть только в случаях:
1. Поставлена задача уничтожить (крейсерская операция по нарушению коммуникаций противника, уничтожение кораблей охранения, патрулей)
2. Неравный бой.
delfin_
Цитата
Приоритет в уничтожении корабля как материальной ценности

Ну или в том случае если корабль особой ценности не предстовляет(маленкий класс корабля).

Цитата
обездвиживание и захват судна (книпель - картечь).

Тут еще 1 момент (сужу по себе). Когда хочу захватить корабль, и оставтиь его себе, стараюсь сильно не портить ему паруса - максимум 1 выстрел книпелями. Тут акцент больше ставится на маневрирование и использования ветра, попутно обрабатывая корабль картечью.
Mitrich
2ALexusB
"Траектория движения". Я об этом не думал, поскольку подходил немного с другой точки зрения. А что если рассматривать это как выбор позиции? В действующем ИИ уже кое-что есть. Например, он способен произвести замер дистанции до враждебного корабля или цели (стрельба ведется как правило издалека, корабль спускает паруса при опасном сближении с другим кораблем и др.). Если использовать данное обстоятельство + учесть ветер и свойства (возможности) противника, то можно определить ближайшую точку, куда следует двигаться. Может и не нужно формировать траекторию движения как нечто глобальное, тем более, что обстановка при встрече с противником меняется весьма динамично.
Относительно погоды у меня только один "пунктик" - при встрече с противником во время шторма он не прекращается до полной победы, что часто приводит к катострофическим повреждениям собственного корабля силами природы. Я, как правило, в таких ситуациях применяю релоад, как это ни противно.

2Denis
Ну вот. Для пирата абордаж - задача №1. Ты прав. Только хочется уточнить. Если пират знает, что ты ничего не везешь, то станет ли он рисковать и абордировать тебя? Думается нет.
Еще уточнение. Бой, абордаж, бегство и др. - это только способ достижения цели, решения "уставной" задачи, но никак не сама задача. Это может начаться (или не начаться) в результате анализа данных (возможно и по твоей схеме). Задачи различны и присущи разным типажам. Захват корабля, на мой взгляд, вряд ли может быть присуща какому-либу типажу (разве что ПГГ, если это возможно реализовать), и, во всяком случае для данной игры, является лишней. В реальной жизни и для ГГ-я эта задача безусловно существует, но в этой теме обсуждается ИИ.

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

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

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

Бегство
Для пирата это задача №2. Кроме пиратов этот шаблон используется купцами, ОЗГами и военными кораблями при одиночном плавании или патрулировании в водах враждебной нации. Не применяется военными кораблями при сопровождении конвоя купцов и патрулировании своих прибрежных вод. Используются книпели и ядра, если книпелями достать невозможно или какой-нибудь шустрый, но маленький кораблик приближается на опасное расстояние. Сдача в плен, на мой взгляд, решена неплохо - в момент абордажа.
Некоторые особенности. На мой взгляд, тут особую роль играеют возможности корабля ходить в бейдевинд, следовательно анализ направления ветра играет основную роль. Разумеется, нужно учитывать позиции объектов (кораблей и форта), могущих нанести ущерб. Сброс товра (груза) производится лишь в том случае, если огневое воздействие на противника не привело к желаемому результату.

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

К сожалению, больше нет возможности продолжить описание стратегий. Если заинтересовало (в первую очередь Алексуса), то чуток позже.
Oceanlab
В дебри размышлений заходить не буду опишу свой метод ведения боёвок. Итак:

Входим на тактическую карту:

вопервых: оцениваю не общее количество кораблей а самый дамажный корабль(ли) флотилии (кол-во пушек на одном борту/кол-во команды).

вовторых: направление ветра и положение флота противника относительно него

Идеальные для меня условия:
1.Направление ветра +(север)/-(юг)15* относительно линии запад-восток.
2. Сила ветра выше 5 узлов.
3. Среди дамажных кораблей нет оснащённых 8-ми фунтовыми орудиями (больная для меня тема)
....север/\............
запад<ЧС> восток
........юг\/...........

...[E3]............<- ветер ->

...... [E2].........

......... [E1]......




..................[I]

Цель №1 для меня:
(если корабли (до галеона/пинаса/флейта включительно) одинаково небольшой силы[пушки/кол-во команды]) маневрируя зигзагами по боковому ветру держась в их "слепых" носовых зонах атакуются по очереди: 2-4 залпа картечью и на абордаж - Е1->E2->E3

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

(если не справиться) - просто убегаю, благо скорость корвета позволяет.

Что мне бы попортило жизнь:
если идущие сзади корабли разъезжались в разные стороны создавая мешок, но для этого во флоте сопровождения должно быть по больше скоросных кораблей, чтобы успеть создать его:

.........................[E3]
...... [E2].........
.............. [E1]......
..................[I]

если бы все корабли были оснащены 8-ми фунтовыми пушками что = убыткам: корабли легче потопить чем взять на абордаж.

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

.................................................[E3]..................<-ветер
................... [E2]................................................
............<разворот бортом \/[E1]............................
.........................................../\[I]>чтобы не подставлять борта сначало приходится держаться прямо и после залпа противника избегая столкновения с ним вместе с возможным но ненужным пока для нас абордажем приходится уходить в бейдвинд, что тормозит дальнейший разворот относительно вражеских кораблей.

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


Пока всё.
Rolando
Цитата(ALexusB @ May 20 2009, 22:31) *

Пойдет рассказ "как я брал золотой флот" и типа того.


Как я брал золотой флот.

Место - между лагуной Каратаска и Ямайкой
У меня - СП, МВ, хороший по скорости пинас.
У них - 3 военника, 1 фрегат, 2 галеона, 2 ТГ

Спускаю паруса, выдерживая первые залпы охраны. Стреляю книпелями.
Пинасу - команда уходить, МВ - защищать меня.

Через несколько часов игрового времени - все оторвались от охраны на километр.
Меня по ветру преследуют военник, фрегат и "скоростной" ТГ, пинас в 3 км от меня - преследуют 2 военника, остальные растянулись.

Обхожу преследующую меня группу в бейдевинд, попутно беру "скоростной" ТГ на абордаж.
Отрываюсь, перегруз золота и серебра ч/з интерфейс на пинас, с него - перегруз команды.
Беру один из галеонов, отбившихся от охраны на абордаж. Те же действия по перегрузу.

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

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

Анализ ситуации. Единственная возможность - поменяться через интерфейс кораблем с СП (она ближе всех к последнему вражьему ТГ с учетом ее возможностей по бейдевинду) и на абордаж ! При этом важно, чтобы к МВ не приблизились - после обмена он стоит на месте.

Беру последний ТГ на абордаж. Последний перегруз - с пинаса все золото на СП и МВ и остаток команды распределяю по СП, МВ и ТГ (хватает всем на минимальный экипаж ! Если не хватило - пришлось бы бросить МВ). Выход на карту за 1-2 секунды до режима боя (фрегат догонял).
Джафар
На днях играл, вышла такая фигня:

Прижали меня возле Бермуд две эскадры, Пираты и Англичане, а поскольку был на бриге решил драпать, когда посмотрел в подзорку удивило то что плывут себе приспокойненько рядом английские корабли и пираты, и мысль появилась: Почему? ведь они враги вроде, по идее должны хотябы перестреливатся а тут нет, только в мою сторону палят и всё.

=======

Хотя наверное это в другую тему надо.
Rolando
Цитата(Джафар @ Jun 14 2009, 09:57) *

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


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

У меня такого удивительного не было, но был случай, когда около Порт-Ройала я француз "поймал" две исключительно крупные эскадры испанцев и голландцев. Они спокойно шли в 2 кильватера на небоевом расстоянии друг от друга. Я попытался их сцепить между собой, но испанцы на абордаж одного своего корабля активно не среагировали, а вот голландцы, которые шли ближе к форту сначала ринулись на меня, когда я уходил от испанцев, но большая часть их кораблей ушла мимо меня бомбить враждебный им английский форт. В общем абордировал и утопил кораблей 15. Если бы они "договорились" между собой или хотя бы не обратили особое внимание на форт, мне пришлось бы переигрывать - у меня был СЛ и 2 тормозных корабля 1 класса, а у них и мановары, и фрегаты, и торговые суда - 3 мировая война практически 1.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2024 Invision Power Services, Inc.