![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
ALexusB |
![]()
Сообщение
#1
|
Разработчик ВМЛ-КВЛ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Admin Сообщений: 16,554 Регистрация: 2-November 04 Пользователь №: 3 ![]() |
Нужна ваша помошь!
Некоторые знают, а кто-то догадывается, но я не забросил поприще пиратски игр с концами ![]() Дело движется, медлено и как обычно ночами, но идет - кубики уже играбельны. Начитался статей, много думал - понял, что к моменту начала кодинга ИИ кораблей нужно иметь базу знаний. Помогите ее сделать! Знания - это калька поведения нас - игроков в бою. Берем за основу бой в КВЛ-ГПК и текстом записываем свои действия. Начну с себя, как пример, без деталей. В бою у меня сразу идет 1. анализ состояния: * сил противника (примерно равны, больше, меньше, сильно больше, сильно меньше). * направления ветра 2. мои цели * слинять из боя * всех потопить * всех абордировать * часть абордировать и часть потопить * часть абордировать и слинять из боя Подзадачи: * продержаться какое-то время (если это задача такая по квесту) * защитить купца - все это сводится в списку выше 3. Корректировка стратегии со временем, то есть повтор 1. и смена на 2. 4. Шаги для достижения цели 2. * перезарядка * выстрел * маневрирование * поднять-опустить паруса * абордаж * выкинуть товар что еще обычно бывает? И давайте лезть в детали - на что смотрим, когда оцениваем больше-меньше? Паруса, корпус, команда, типы кораблей? Попробуйте на примере конкретного боя описать свои действия - мне нужна статистика, я сам сведу по полочкам. Пойдет рассказ "как я брал золотой флот" и типа того. Но в описании решений и критериев их оценки, а не литературных изысков про "отлетающие доски после бортового залпа". |
![]() ![]() |
ALexusB |
![]()
Сообщение
#2
|
Разработчик ВМЛ-КВЛ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Admin Сообщений: 16,554 Регистрация: 2-November 04 Пользователь №: 3 ![]() |
Прочел книжецу
C / С++ : C++ мастер-класс. 85 нетривиальных проектов, решений и задач - М. В. Мозговой Пришел к некому концепту реализации ИИ для мор боя, как кальки с действий человека. Чтоб не в коде зашивать, а было во внешних файлах и можно было один ИИ на другой натравить, потестить. Ответа по ИИ в книге нет, есть разные идеи и их решения, которые наводят на другие идеи ![]() Рекомендую. |
N.tony |
![]()
Сообщение
#3
|
пират ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 1,060 Регистрация: 9-July 08 Пользователь №: 17,197 ![]() |
Пришел к некому концепту реализации ИИ для мор боя, как кальки с действий человека. Чтоб не в коде зашивать, а было во внешних файлах и можно было один ИИ на другой натравить, потестить. Обычно в таком случае ИИ сильно неловкий получается. Я тоже думал делать через "интерфейс", чтобы доступ к игровому персонажу был реализован только через стандартные операции ввода (типа, все возможные клавиши которые нажимает геймер). Но так как делать самообучающийся ИИ сложно, будет сильно муторно подбирать контроллер для него через одну лишь допустимую информацию о состоянии поля боя. Проще будет, если количество разных вводов сильно ограничено (а ходы дискретны) - делать "натуральный" контроллер для всяких игр типа шахмат куда проще. |
ALexusB |
![]()
Сообщение
#4
|
Разработчик ВМЛ-КВЛ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Admin Сообщений: 16,554 Регистрация: 2-November 04 Пользователь №: 3 ![]() |
Обычно в таком случае ИИ сильно неловкий получается. Я тоже думал делать через "интерфейс", чтобы доступ к игровому персонажу был реализован только через стандартные операции ввода (типа, все возможные клавиши которые нажимает геймер). Но так как делать самообучающийся ИИ сложно, будет сильно муторно подбирать контроллер для него через одну лишь допустимую информацию о состоянии поля боя. Проще будет, если количество разных вводов сильно ограничено (а ходы дискретны) - делать "натуральный" контроллер для всяких игр типа шахмат куда проще. Я отказался от самообучения - мне проще самому идти не по пути ИИ, а по ЭС (экспертным системам) - обучая (дописывая) по ходу тестов и игры самому. Со временем, имея базу боев в виде логов, можно натравить на них обработку и эти данные превратить в знания. Но это же другая утилита, она не работает во время боя, а потом (отдельно на локале, тк долгая). Сам же НПС в бою будет именно "жать" доступные игроку кнопки команд. Иначе это какие-то сверх читы. Другое дело, чем он будет мотивироваться и куда смотреть (какие статы видеть без подзорной трубы, как прикидывать в своем комьютерном уме траектории движения и тп) - тут тупизна ИИ может компенсироваться его сверхосведомленностью. Скилы капитана - это понижение возможностей ИИ. То есть изначально он должен быть оч хитрым, а скилами тупеть. Многие не задумываются, что сложность игры задается понижением возможностей в упрощении, а не наоборот. То есть все игры имеют максимум возможностей, которые потом снижаются. Исключение составляют количественные сложности - это когда урон ГГ снижается, а получаемый начинает зашкаливать - это уже простой трюк "невозможных" уровней. Логики ИИ тут нет. |
N.tony |
![]()
Сообщение
#5
|
пират ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 1,060 Регистрация: 9-July 08 Пользователь №: 17,197 ![]() |
Я отказался от самообучения - мне проще самому идти не по пути ИИ, а по ЭС (экспертным системам) - обучая (дописывая) по ходу тестов и игры самому. Да, это именно то что я имел в виду. Из меня просто программер кустарный, поэтому я некоторых определений не знаю ![]() Со временем, имея базу боев в виде логов, можно натравить на них обработку и эти данные превратить в знания. Но это же другая утилита, она не работает во время боя, а потом (отдельно на локале, тк долгая). Сколько раз встречал подобные заявления - ни разу не видел воплощения на практике.Сам же НПС в бою будет именно "жать" доступные игроку кнопки команд. Иначе это какие-то сверх читы. Не сверхчиты, но читы, да. А как иначе? Достаточно посмотреть на любой автосимулятор - с 99% вероятностью поведение машины ИИ лишь отдаленно напоминает поведение машины, управляемой ручками. ИИ не "крутит баранку", а доворачивает колеса напрямую, да и прочими параметрами скорее всего управляет напрямую - т.е. акселерацией, скоростью, смещением и т.п. Потому как написать контроллер, ведущий машину по оптимальной траектории, да еще и замечающий препятствия - задача настолько нетривиальная, что уже десятки лет по ней научные статьи пишут.В общем, считаю что подход с "симуляцией ввода" - обречен на тупизм, если только не выполнены условия, о которых я писал выше. Т.е. если ходы дискретны по времени (а еще лучше и в пространстве) - тогда вариант вполне жизнеспособен. Если же все реалтайм - будут проблемы. Они, кстати, могут решаться тем самым способом с "у меня больше, у тебя меньше". Например, считая что компьютерные оппоненты имеют при прочих равных лучшие параметры по сравнению с игроком. Типа скорость, ускорение, скорость поворота и все такое у них выше. |
![]() ![]() |
Текстовая версия | Сейчас: 30th April 2025 - 08:03 |