AI для RTS
| |
Saitei | Дата: Воскресенье, 22 Июня 2014, 19:57 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Что думаете по этому поводу? "RTS", конечно же, обширное понятие, спору нет. Однако всё равно хотелось бы обсудить основные концепции искусственного интеллекта для игр типа Warcraft, Starcraft и пр. Мне кажется, что здесь должно искореняться применение рандома. Когда я писал программу для построения и визуализации деревьев (я о графах говорю, а не реальных деревьях, конечно же), то в голову стукнула мысль: "а почему бы не научить компьютер строить его возможные действия и на основе состояния сооружений, юнитов и пр. игрока давать оценку возможным действиям и поступать так, как "лучше"?". Идея мне показалась разумной, но я так и не смог придумать алгоритма для этого. Шахматы же, вроде, тоже так пишутся?: строится дерево возможных событий с глубиной N и выбирается самый благоприятный узел("node")?
В общем не знаю... В голове полно мусора и недодумок, ну а более-менее "не тупой" ИИ хочется реализовать
|
|
| |
Ordan | Дата: Понедельник, 23 Июня 2014, 03:06 | Сообщение # 2 |
Главный зомби
Сейчас нет на сайте
| Можешь сделать пародию на нейронные сети но тут нужен кое какой опыт в ИИ, либо делай сценарии. Проще говоря сценарий шаблон действий, очень удобная и универсальная вещь. либо можно просто же сделать информационную систему или как там её называют не помню уже Короче спрашиваешь ИИ: 1- У тебя есть ресурсы? Да-2 Нет "Ждать когда появятся, либо увеличить производство." 2- У тебя есть казарма? Да - 3 (Построить казарму) 3- Ты знаешь примерную численность войск врага? Да - 4 Нет (послать разведчика) 4- У врага больше войск чем у тебя? Да - (построить больше юнитов) Нет (напасть)
В общем можешь прогонять по вопросам ИИ и определять его действия либо задавать сценарий.
Ну, а сделать ИИ юнитов вообще плевое дело.
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
Saitei | Дата: Понедельник, 23 Июня 2014, 03:14 | Сообщение # 3 |
старожил
Сейчас нет на сайте
| Ordan, нейронные сети... Да я там максимум делал распознавание цифр)) Слишком круто и муторно, не гадится...
Цитата Ordan ( ) Короче спрашиваешь ИИ: 1- У тебя есть ресурсы? Да-2 Нет "Ждать когда появятся, либо увеличить производство." 2- У тебя есть казарма? Да - 3 (Построить казарму) 3- Ты знаешь примерную численность войск врага? Да - 4 Нет (послать разведчика) 4- У врага больше войск чем у тебя? Да - (построить больше юнитов) Нет (напасть)
В общем можешь прогонять по вопросам ИИ и определять его действия либо задавать сценарий.
Ну, а сделать ИИ юнитов вообще плевое дело. Кое-какой мудрый человек мне помог советами схожего плана. Надо же построить своего рода машину состояний и создать ф-цию, которая эти состояния обрабатывает и изменяет? Так?
|
|
| |
Ordan | Дата: Понедельник, 23 Июня 2014, 03:24 | Сообщение # 4 |
Главный зомби
Сейчас нет на сайте
| Saitei, что то типо того. Еще можно сделать систему привлекательности, иногда её использую. Суть в выборе одного действия из многих. Той же информационной системой проводишь опрос ИИ, в зависимости от ответа даешь баллы привлекательности тому или иному действию. После опроса выбираешь действие у которого наивысший бал. К примеру
Есть казарма? Нет - 10 баллов Напасть ли на врага? (Сила армии ИИ) - (примерная сила армии игрока) = количество баллов Достаточно ли месторождений? Да - 5 баллов Скажем, что у игрока больше войск, в итоге ИИ выберет строительство казармы как задача с наивысшем баллом.
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
Tiodor | Дата: Понедельник, 23 Июня 2014, 03:37 | Сообщение # 5 |
участник
Сейчас нет на сайте
| А еще можно сделать несколько разных вариантов развития ИИ в стратегии: например в начале игры в зависимости от местоположения и количества ресурсов на карте он определяет - вдаваться в строительство или стоить армию и нападать. Ну а еще взаимодействие с окружением. Это так, к слову)
А вообще да, можно давать каждому действию определенное количество баллов, а дальше условия. В целом я думаю, что ты прав: самый универсальный способ это учесть всевозможные варианты и уже из них исходить.
VK: Tiodor
|
|
| |
Ordan | Дата: Понедельник, 23 Июня 2014, 03:48 | Сообщение # 6 |
Главный зомби
Сейчас нет на сайте
| Цитата Tiodor ( ) А еще можно сделать несколько разных вариантов развития ИИ в стратегии: например в начале игры в зависимости от местоположения и количества ресурсов на карте он определяет - вдаваться в строительство или стоить армию и нападать. Ну а еще взаимодействие с окружением. Это так, к слову) Ну это обычный шаблон)
Цитата Tiodor ( ) А вообще да, можно давать каждому действию определенное количество баллов, а дальше условия. В целом я думаю, что ты прав: самый универсальный способ это учесть всевозможные варианты и уже из них исходить. Минус этого метода, гемор прописывать все условия, я всегда стараюсь делать что то более универсальное, где не нужно все самому прописывать.
В игре "Колизей новой эры" я сделал два типа ИИ. ИИ командира и ИИ бойцов. Командир проводил анализ и давал бойцам список возможных действий, а они уже сами выбирали что им делать.
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
Snuux | Дата: Вторник, 24 Июня 2014, 18:14 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| Не уверен, но для почти любого ии можно использовать стейт машины. Гуглите FSM, GOAP. Хотя в большинстве своем, результаты в гугле описаны для одного персонажа. Но думаю под RTS можно тоже это сделать.
Кстати, тем кто увлекается ии, советую посмотреть игрушку codecombat.com (начинайте с Gold Rush или Dungeon Arena). Пишите, если понравится, можно вместе пообсуждать стратегии)
Добавлено (24.06.2014, 18:14) --------------------------------------------- К слову, недавно в libgdx появилось новое ответвление классов для AI. И там мне понравилось, как реализован State Machine. Код открыт, можно смотреть. (Wiki, source).
Сообщение отредактировал Snuux - Вторник, 24 Июня 2014, 18:18 |
|
| |
|