Паук
> Вроде бы в hitman absolution reinforcement learning использовали для анимаций,
> еще в каком-то рэйсинге, по-моему в forza motosport использовали нейросети для
> обучения аи.
Судя по тому, что я нашел в сети, в hitman absolution использовали классический Q-learning, где обучаются переходы от одного состояния к другому. Это немного другое. Там нет нейросетей.
Нейросеть Forza Motorsport 5 обучается в облаке, а не на клиенте (как и Planetary Annihilation) и берет для обучения образцы поведения игроков, а значит они тоже используют перцептрон - он не подходит для принятия решений без учителя (т.е. в отсутствии образцов).
Odin_KG
> А вообще, написать ИИ в RTS куда проще, чем всё остальное (при условии, что ты
> это всё делал ручками, а не взял чужую заготовку и в ней картинки поменял).
> Т.е. если уж ты дошагал до момента, когда осталось всего лишь ИИ добавить, то,
> считай, что дело сделано. Я бы в этом случае поднапрягся и сделал бы нормальный
> ИИ самостоятельно, без всяких там нейро-сетей, от которых, в данном случае,
> навряд ли будет большая польза.
Эм... Вообще-то, с нейросетей все и началось. Когда их впервые обнаружил и посмотрел как они работают, то обрушил свое мировозрение :) До этого я считал, что исскуственный разум создать на машине фон Неймана невозможно. Так что, ИИ у меня уже есть, теперь я к нему делаю игру.
Tiendil
> Для обучения в процессе игры НС скорее всего не хватит данных
Это зависит от алгоритма обучения. Если используется перцептрон, то да, не хватит.
Tiendil
> Вообще, сейчас есть много хороших, проверенных временем, способов реализации
> игрового интеллекта на любой случай. [b]НС, к сожалению, в них так и не вписались[/b].
Ну... если прям так все печально с нейросетями, значит, надо попробывать их вписать. Попытка - не пытка )
BalticBear
> надо попробывать их вписать
Вас пишут тут, что пробовали многие уже, но практической пользы для игры НС мало дает в сравнении с рассчитанными алгоритмами поведения, а вот багов реализация НС прибавит нормально:)
BalticBear
> Хотел посмотреть как далеко зашла игроиндустрия в этом направлении ИИ и так и
> не нашел до сих пор ни одного подобного проекта.
Мейнстриму это не интересно (там сейчас в моде богомерские behaviour trees, на сколько я знаю). Надо по индюкам искать, да академические наработки. Когда-то давно рыл по этой теме и натыкался на NERO game (потом была версия 2.0). Сейчас вот за минуту нашел это=)
По-моему, одно из главных свойств любой реализации ии, отличной от if-else, ради которого этим стоит вообще заниматься, это способность агента, управляемого им, действовать адекватно в ситуациях, не предусмотренных разработчиком. В этом смысле один из главных плюсов обучения нейронной сети - способность сети давать верный результат на основании неполных/"зашумленных" данных, а также данных, которые вообще отсутствовали в обучающей выборке. Увеличенные затраты на разработку самой системы должны быть, по идее, скомпенсированы уменьшением времени на "нянченье" с каждой игровой ситуацией, действиями юнитов и их описанием. То есть система как бы должна взять на себя часть работы. Тут нужен баланс кароч.
Хотя сейчас такое решается проще - обрезанием возможностей игрока и нпс, игровых ситуаций. В идеале вообще лучше кинцо показать. Мне, как игроку, такое не интересно (хоть я и не ца).
BalticBear
> поведение NPC не остается постоянным, а меняется в ходе игры под воздействием обстоятельств
Известна практика, когда game_difficulty плавает, в зависимости от фейлов игрока.
Получается просто (проще, чем НС) и replayable.
DenBraun
> Вас пишут тут, что пробовали многие уже, но практической пользы для игры НС
> мало дает в сравнении с рассчитанными алгоритмами поведения, а вот багов
> реализация НС прибавит нормально:)
Я пока не видел, чтобы кто-то написал, что пробывал создать нейросети с обучением подкреплением и потерпел неудачу. Если взять книги по ИИ, например Яна Миллингтона или Алекса Шампандара, то в них рассматриваются только сети с обучением обратным распространением ошибки. Тот же метод обучения, в основном, использовался в известных мне играх. И про тот же метод пишут люди, потерпевшие неудачу. Так получилось, что этот метод стал этаким стандартом де-факто для нейросетей в играх, хотя он излишне ресурсоемкий и совершенно не подходит в условиях отсутствия учителя (потому что использует дельта-правило, в котором необходимо сравнивать полученное значение с правильным).
Я поэтому и открыл эту тему, в надежде узнать о существовании игр, использующих альтернативные механики в нейросетях, более приспособленные к решению задачи самообучения без учителя.
Сам я пришел к нейросетям не из геймдэва, а из радиоэлектроники. Поскольку, являюсь заядлым геймером и, к тому же, на тот момент проходил переквалификацию на программиста в колледже, то нашел алгоритм нейросетей весьма интересным для реализации в логике принятия решений игровых персонажей. Какое-то время экспериментировал в Экселе. Потом захотелось посмотреть, а не изобретаю ли я велосипед и начал искать игры и книги об играх, где упоминаются нейросети. Тогда я впервые узнал о методе обучения обратным распространением ошибки. После того, как я разобрался как он работает, долго думал о том, почему "это" начали использовать в играх. Так и не понял до сих пор, чем он хорош.
Belfegnar
> Когда-то давно рыл по этой теме и натыкался на NERO game (потом была версия
> 2.0). Сейчас вот за минуту нашел это=)
NERO смотрел как-то. Насколько я помню, они используют генетический алгоритм для отбора наилучшей нейросети из кучки хаотично самоорганизующихся сетей. Для самообучающегося ИИ отдельного агента эта реализация не подходит.
По поводу второй игры - не могу найти на сайте упоминание об использовании нейросетей или вообще какого-либо самообучающегося ИИ. Хотя сама идея довольно интересная :)
Belfegnar
> По-моему, одно из главных свойств любой реализации ии, отличной от if-else,
> ради которого этим стоит вообще заниматься, [b]это способность агента,
> управляемого им, действовать адекватно в ситуациях, не предусмотренных
> разработчиком[/b]. В этом смысле один из главных плюсов обучения нейронной сети -
> способность сети давать верный результат на основании неполных/"зашумленных"
> данных
Согласен, именно эта цель у меня и стоит. Став разработчиком, пытаюсь реализовать свою мечту игрока :)
BalticBear
> Я пока не видел, чтобы кто-то написал, что пробывал создать нейросети с
> обучением подкреплением и потерпел неудачу.
Не в этом дело, это ни кто и не пишет, так как проблема не в том, что данную задачу никто не смог решить, а в том что управляемые алгоритмы ИИ лучше, с ними проще работать и дебажить. Так же они настраиваются под игрока, то есть от простого к сложному. Подобные темы, о проблеме внедрения самообучающегося ИИ уже обсуждали на этом форуме, одна из проблем например то, что в игру постоянно приходят новые игроки и при этом, каждому последующему новому игроку будет все труднее и труднее, так как ИИ обучается и развивается.
Belfegnar
> По-моему, одно из главных свойств любой реализации ии, отличной от if-else, ради которого этим стоит вообще заниматься, это способность агента, управляемого им, действовать адекватно в ситуациях, не предусмотренных разработчиком.
Давайте вспомним, что все реализации ИИ так или иначе используют if-else :-) Так что всё, что может сделать ии в вашем понимании, может сделать и программа с if-else
rcsim
> Известна практика, когда game_difficulty плавает, в зависимости от фейлов
> игрока.
> Получается просто (проще, чем НС) и replayable.
В моей игре идет борьба двух групп юнитов (агентов) между собой. Игрок может влиять на поведение юнитов, но не может давать прямые приказы. Поэтому присутствие игрока для юнитов незаметно и, соответственно, отсутствуют фейлы игрока. Но, присутствуют фейлы юнитов, которые и надо анализировать и что-то с ними делать. Каждый юнит работает сам над своими ошибками, независимо от других.
В общем, вот видео из моей презентации на защите диплома. Может, по нему можно будет понять о какой игре идет речь.

BalticBear
> По поводу второй игры - не могу найти на сайте упоминание об использовании
> нейросетей или вообще какого-либо самообучающегося ИИ. Хотя сама идея довольно
> интересная :)
нашел ее по такому запросу. Там вроде тоже нейроэволюция.
Tiendil, ну это не аргумент)) все ии - это конечные автоматы, а все программисты пишут программы сразу инструкциями процессора, да?)) Тут еще вопрос различных уровней абстракции. В случае с планировщиками, например, эти цепочки if-else в каком-то смысле формируются в рантайме. А в случае с нейросетями, if-else программист вообще не видит в явном виде, плюс еще возможность работы в условиях неопределенности, зашумленности данных. Понятное дело, что в итоге все это превращается в конечный автомат и, следовательно, им и может быть описано. Вопрос в том, какой сложности он будет и сколько человекочасов понадобится для его описания. Поэтому я и написал про баланс =)
DenBraun
> Подобные темы, о проблеме внедрения самообучающегося ИИ уже обсуждали на этом
> форуме, одна из проблем например то, что в игру постоянно приходят новые игроки
> и при этом, каждому последующему новому игроку будет все труднее и труднее, так
> как ИИ обучается и развивается.
Согласен, если ИИ обучается и становится сильнее игрока, то с таким ИИ в какой-то момент играть будет неинтересно.
А если ИИ отдельных юнитов обучаются побеждать и выживать в борьбе друг с другом, а игрок лишь слегка помогает своим юнитам развиваться в нужном направлении?
Далее, игроки будут соревноваться в том, скажем, кому лучше удалось воспитать команду из своих юнитов )
Если я правильно воспринял суть, то задача игрока и есть тренировка нейросети.
И это уже не игра, а скорее именно нейросеть. С такой вот а-ля игровой визуализацией.
rcsim
> Если я правильно воспринял суть, то задача игрока и есть тренировка нейросети.
> И это уже не игра, а скорее именно нейросеть. С такой вот а-ля игровой
> визуализацией.
Не совсем, задача игрока: правильно выставить поведение микробов и успевать его вовремя менять, чтобы победить лейкоцитов и очистить сектор.
Например, поначалу сделать их агрессивными, чтобы они рвались в атаку. Затем, если видно, что кто-то забывает следить за своим здоровьем, приказать ему уйти в защиту.
Кроме этого, по мере роста опыта, микроб получает новый уровень, что позволяет игроку распределить 2 пункта между показателями атаки и защиты микроба. Таким образом, можно будет выращивать танков и дамагеров, а манипуляции с их поведением приведут, благодаря сетям, к правильной тактике. Игроку дается возможность в каждом микробе создать свой собственный характер, чтобы в конце концов добиться главной цели: полностью заразить человека своими микробами ))
Да, еще микробы получают ранги и достижения, которые могут повлиять на их характеристики. А также, в соответствии с тем, как у игрока продвигаются дела, растет его репутация, которой можно похвалиться друзьям.
Ну и последнее: в игре можно настраивать сложность, т.е. иммунитет заражаемого. От этого быстрее растет репутация и уровни микробов, ну и можно получить ранги у микробов, которые не доступны при низком иммунитете.
Тема в архиве.