Добавлен DarkLigthing
Есть ли у кого-нибудь соображения, о возможности реализовать в WC3 нечто похожее на AlfaStar из мира StarCraft 2. Потянет ли движок WC3 нейронную сеть? Можно ли такое реализовать на Lua?
Принятый ответ
Прежде всего, нейросеть для старкрафта сидит вне клиента игры. Спрашивать потянет ли это движок не корректно потому как движок то тут ни при чем. Правильнее ставить вопрос,реально ли реализовать интерфейс для взаимодействия нейросети с игрой.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Да, так как данные нейронов и весов нужно где-то хранить вне карты и менять их после каждого инстанса и подгружать обратно. Но это чертовский интересное направление.
Но нейросеть не нужна в варе как таковая, ибо какой смысл делать самообучающегося непобедимого бота который будет с каждой игре всё сильнее и сильнее, когда в варкрафт на сложности easy играть не каждый может.... У меня есть небольшое исследование на эту тему, где я данные от пользователей отправлял на FTP сервер, и скачивал инфу с сервера... на сервере уже можно любыми мощностями обрабатывать файлы от пользователей и что-то из них компоновать..
Смотри в моём профиле:
https://xgm.guru/p/wc3/ip
https://xgm.guru/p/robotdef
Также есть возможность через внешнюю программу обмена данных и прелоад делать, то что ты захочешь, но опять таки, а кто будет качать то это внешнюю программу, если и на проект глянут 3,5 человека
Отредактирован DarkLigthing
Каким бы ни был хорош мемхак, уже в ближайшем будущем ты просто не найдёшь игроков которые бы играли на патче 1.26а Так как обычным игрокам мало что известно о том, зачем им скачивать старый WC3 и почему этой же карты нет на актуальную версию. На которой у них уже скоро будут проекты, демонстрирующие нечто что они раньше не видели, кастом интерфейс, новые механики в том числе управления и.т.д
Ну AlphaStar это уже очень серьёзный проект и не факт что такой же интерфейс будет возможен в Reforged. Без всяких хуков файлов игры и кастом инжекторов то есть хака игры. По этому я и подумал, так как классический AI это точные данные, а нейронная сеть усреднённое значение можно было бы в теории улучшить некоторые аспекты поведения бота, комбинируя классический AI и механики нейронной сети. Но вот примерная архитектура такого проекта у меня в голове пока не складывается :)
Отредактирован PT153
Проблемы которые могут возникнуть:
Решения:
Итого:
Обучение нейросети с помощью алгоритма обратного распространения ошибки может вестись в одиночке с помощью таймера с периодом 0.00001 и полной загрузкой потока без тормозов. Вывод ошибки обучения на экран каждый тик, кстати, вызывает дикие лаги, поэтому выводилась только каждая N-ная ошибка.
Предварительно максимальная производительность достигалась тогда, когда работает один максимально загруженный поток
Vlod:
Вейт - ужасное решение для backpropagation, который является основным методом обучения на данное время
Vlod, ты описываешь нейросеть, которая будет существовать только во время запуска карты. После её закрытия все изменения сотрутся. Нужно сохранять как-то и загружать, что адекватно сделать нельзя, только костылями через прелоад. Пока не будет нормального I\O API, не вижу смысла этим заниматься.
Отредактирован Vlod
Отредактирован PT153
Будет API для реплеев - НС можно будет обучить по ним. Будет API для связи с сервером - можно будет сделать НС с самообучением.
Пока из этого ничего нет, потому НС можно обучить вручную, то есть выписать кучу данных и применить алгоритм обучения на них.