podger (28 февраля 2015, 14:58):
Невозможно сделать умный ИИ, но при этом сохранить возможность обыграть его для каждого школяра.
Скажем, с помощью тех же уровней сложности - никак невозможно. Точнее, это настолько бредово будет, что лучше не надо.
Просто умным сделать можно.
Можно сделать очень умным, но тогда практически никто его победить не сможет.
И кому это нужно?
Кстати, в чём сложность "реализации умного ИИ", о которой Вы с таким знанием дела говорите?
Уровнями сложности легко регулируется сила ИИ. Например вы придумали великолепный ИИ, который на максимуме своих возможности обыгрывает просто всех. Тогда вы делаете 5 уровней сложности, где на самом низком ИИ использует лишь часть своих возможностей. Например не прикрывает стрелков, кидает конницу на копья и т.д. Такой ИИ обыграет кто угодно, даже "школяры", соответственно игра продастся. Высокий уровень сложности выберут опытные игроки, которым важен челлендж и которым скучно обыгрывать унылый ИИ.
Сложность реализации умного ИИ заключается в многафакторности и быстроте принятия решений. Вот принимает решение ИИ о том чтобы атаковать данным отрядом отряд игрока или нет. Нужно учитывать:
- численность своего отряда и численность отряда игрока
- общую силу отрядов, учесть особенности противодействия конкретному отряду (например отряд может быть вообще-то слабый, но крайне эффективный против конницы, значит нельзя кидать на него конницу, даже очень хорошую)
- взаимное расположение по отношению к другим отрядам, присутствующим на поле боя (чтобы фланги прикрыты были, чтобы не уйти с тактически важной позиции)
- моральный дух отрядов
- особенности рельефа
- особенности погоды
- умения полководцев
и т.д. и т.п. Факторы, влияющие на принятие решения, можно перечислять долго. Решение нужно принимать моментально. Представляете какая это титаническая работа для программиста? Она просто невозможна. Это вам не шахматы, где думать над ходом можно долго и игровые правила крайне просты.
Я тут провел бой, который наглядно показывает, что ИИ своих стрелков не защищает и в целом действует по одному единственному алгоритму.
1. Диспозиция перед боем. Построение ИИ стандартно.
Для просмотра ссылки Зарегистрируйтесь
2. Момент, когда онагры ИИ уже стреляют, а вся остальная армия пошла вперед, никого не оставив на прикрытие артиллерии. Войска ИИ подошли на дистанцию выстрела моих стрелков и они дают первый залп.
Для просмотра ссылки Зарегистрируйтесь
3. Единственный отряд конницы ИИ вступил в бой не дожидаясь взаимодействия с пехотой. Против вражеской конницы я выставил два своих. При этом свою линию пехоты немного отвел назад и увеличил длину фронта примерно в 1.5 раза, так как у ИИ серьезное численное преимущество и его линия фронта была значительно шире. Кроме того отводя пехоту назад я ее вывожу из-под обстрела онагров.
Для просмотра ссылки Зарегистрируйтесь
4. Конница ИИ была разбита быстро и один отряд я отправил в глубокий обход по левому флангу. Также справа к онаграм мчится еще один конный отряд.
Для просмотра ссылки Зарегистрируйтесь
5. Здесь пехота уже практически вступила в рукопашную битву. Моя линия фронта все же оказалась чуть короче вражеской, есть угроза небольшого окружения. Еще двумя отрядами конницы делаю огибающий маневр для атаки фланговых пехотных отрядов ИИ, на случай если они пойдут окружать мои фланговые отряды.
Для просмотра ссылки Зарегистрируйтесь
6. Здесь довольно четко видно, что пехота ИИ вступила в рукопашную, стрелки отведены назад. Фланговые же отряды ИИ сагрились на мой маневр конницей. Это никак не связано с желанием ИИ прикрыть своих стрелков, просто я слишком близко от них проходил.
Для просмотра ссылки Зарегистрируйтесь
7. Вот моя конница подбегает к онаграм. Обратите внимание, что у них еще имеется 30-40% боекомплекта. Они могли бы принести еще пользу. Так же нужно учитывать, что линия фронта у ИИ была чересчур широка и мне пришлось давать большой крюк, чтобы подобраться к онаграм. Обычно добегаю быстрее. Также я здесь действую только ударной конницей, а она не самая быстрая.
Для просмотра ссылки Зарегистрируйтесь
8. Поскольку фланговые отряды ИИ сагрились на конницу, то угрозы окружения не было и я отправил лошадок давить стрелков. Их прикрывает только генеральский отряд, но на самом деле не прикрывает, а просто он находится в своем обычном месте во время боя. Если бы у ИИ не было стрелков вообще, то действия его генерала абсолютно бы не изменились и он находился бы там же.
Для просмотра ссылки Зарегистрируйтесь
9. С онаграми покончено. Часть конницы продолжает истреблять стрелков. Один конный отряд на левом фланге вывел на удар по тылам вражеской пехоты. У меня там стоял генерал-копейщик (вообще полководцы у меня вражеские агенты перед атакой убили) и я решил ему немного помочь.
Для просмотра ссылки Зарегистрируйтесь
10. Половина, а то и больше стрелков ИИ уже уничтожены. Пехотная линия фронта пока держится, но уже появляется необходимость помогать ударами конницы в тыл. Также на этом скриншоте видно, что фланговые отряды пехоты ИИ, которые сагрились на мой обходной маневр конницей, вовсе не прикрывали стрелков. Как только конница оторвалась от них чуть подальше - один отряд слева вернулся к рукопашной, точно также поступил и правый отряд пехоты, который поначалу увязался за моей конницей.
Для просмотра ссылки Зарегистрируйтесь
11. Активные действия моей конницы в тылу привели к серьезной потере боевого духа войск ИИ и на моем правом фланге наблюдается их массовое бегство.
Для просмотра ссылки Зарегистрируйтесь
12. Результат боя.
Для просмотра ссылки Зарегистрируйтесь
Выводы. Имея значительно численное преимущество ИИ стоило оставить прикрытие и для онагров и для стрелков. это было бы значительно эффективнее и обеспечило бы победу, а так Ии проиграл. При этом замечу, что все мечники, которые у него были (а было их 13-15 отрядов) - это элитные мечники. Сложность ВХ.