Комментарии 57
Видео смотреть больно глазам… По реплаю его точно пропалят)
+34
А вообще, конечно блок принятия решений слабый. Где микроконтроль юнитов в атаке, где пилоны на передовой, где разведка, где запирающие форсфилды?? Не понятно, куда тратится такое безумное колличество APM. Просто на перещёлкивание между юнитами?!
-3
китайцы примерно так и играют :)
+6
На reply прокрутку не видно
0
Там записываются только команды отдаваемые объектам, то есть по сути отдаваемый на сервер трафик?
0
Во втором старике можно в реплае выбрать игрока и камера будет двигаться так же как двигалась у него. Там только не все клики мышкой видно.
+1
Видео занятное, но на второй минуте уже начинает кружиться голова. :)
+3
Учитывая что автор ставил целью статьи именно показать, какие инструменты можно использовать для написания “базы” бота, а не реализацию самого бота, это довольно хороший результат
Hello word bot :)
+5
Анализ информации, поступающий от Direct3D, это конечно хорошо, но абсолютно не работает если производитель будет с этим хоть как-то боротся. Приведу пример — покерные боты, распознающие изображение путем его сравнения с эталонными фрагментами тривиально ломаются, если клиент начинает незаметно с точки зрения человека менять графику — например, случайным образом менять оттенки цветов плюс минус одна градация, сдвигать элементы на один пиксель в случайном направлении итд. Тут та же история — если кто-то начнет активно эксплоитить этот метод то близам достаточно будет добавить код, случайным образом немного меняющий трехмерное представление объектов и карты текстур — незаметное глазу человека но достаточное, чтобы боту стало очень проблемматично различать юниты и элементы интерфейса.
-10
Оттенки машина может различать даже лучше человека. Не обязательно же зашивать оттенок по точному вхождению. Тоже самое касается и положения на экране — вполне можно устроить поиск.
+1
а это — падение производительности.
0
Там не надо отслеживать ни координаты, ни цвета.
Перехват идет вызовов отрисовки, а не анализ конечной картинки со всеми объектами, вот тут хорошо показан разбор сцены: graphics.stanford.edu/~mdfisher/CaptureA/Capture.html.
Учитывая что наверняка можно провести реверс-инженеринг ресурсов игры и придать каждой текстуре уникальную подпись на основе какого-нибудь параметра наверняка можно обойти подобную защиту. Боту же все равно как это будет выглядеть на экране.
Перехват идет вызовов отрисовки, а не анализ конечной картинки со всеми объектами, вот тут хорошо показан разбор сцены: graphics.stanford.edu/~mdfisher/CaptureA/Capture.html.
Учитывая что наверняка можно провести реверс-инженеринг ресурсов игры и придать каждой текстуре уникальную подпись на основе какого-нибудь параметра наверняка можно обойти подобную защиту. Боту же все равно как это будет выглядеть на экране.
+5
Можно. Но fuzzy matching напрягают уже намного сильнее — это тривиально намного дороже по процессорному времени. Там уже начинаются проблемы с Realtime работой — два кадра в секунду для бота Starcraft будет не фонтан :)
-2
НЛО прилетело и опубликовало эту надпись здесь
Или вообще берем корреляцию… Только где ресурсов на это взять для реального масштаба времени?
0
Я не оспариваю падение производительности. Выше писал.
Можно запускать механизмы поиска только тогда, когда произошли изменения (если их можно отследить, конечно), можно кэшировать результаты поиска и использовать их в дальнейшем. Навернуть, в общем, можно довольно много. :) Я же говорю о том, что все эти уловки не делают работу невозможной вообще, а только усложняют ее.
Можно запускать механизмы поиска только тогда, когда произошли изменения (если их можно отследить, конечно), можно кэшировать результаты поиска и использовать их в дальнейшем. Навернуть, в общем, можно довольно много. :) Я же говорю о том, что все эти уловки не делают работу невозможной вообще, а только усложняют ее.
0
Вряд ли движок игры сможет позволить себе менять текстуру каждый раз при выводе на видеокарту. Максимум что они могут себе позволить, это при первом изъятии текстуры в память добавить к ней немного шумов. То есть если написать хороший уловитель этого шума, то он будет работать не все время, а всего лишь при появлении неизвестной текстуры.
0
фигня все это (сорри), предусмотреть калибровочный режим где бот не играет а «смотрит» и откладывает в памяти характерные черты на будущее несложно
+1
да ну глупости все это, от детура тяжко им спасаться. Помню как-то интересно мне было свой вх длдя кс сорса сделать, начал с мелочей, а получился достаточно мощный чит с возможностью набегу убить тех кто позади и не один античит не спалил (хотя играл недолго, заработало и интерес пропал). Пруф: www.youtube.com/watch?v=al7Xrjz3JXM
0
Можно было и просто в 4-гейт пуш сыграть.
Что за странное бо через барака и потом цитадель. Выхода в дарков не было.
Странно :D
Что за странное бо через барака и потом цитадель. Выхода в дарков не было.
Странно :D
-7
Бедняга.
Существенной лажей этого алгоритма, является игнорирование миникарты, что существенно увеличило бы производительность в купе с прогнозированием исполнения приказов собственными юнитами, тогда рендерить бы пришлось только зоны активности.
В остальном сама идея хороша как развитие рекогнайз методик.
Существенной лажей этого алгоритма, является игнорирование миникарты, что существенно увеличило бы производительность в купе с прогнозированием исполнения приказов собственными юнитами, тогда рендерить бы пришлось только зоны активности.
В остальном сама идея хороша как развитие рекогнайз методик.
0
Интересно было бы натравить его на бронзовую лигу и посмотреть выйдет ли он в серебро.
+3
Странно, почему ещё никто не написал комментарий «YOU MUST CONSTRUCT ADDITIONAL PYLONS» :)
+5
Ну вот, теперь Nvidia с Microsoft договорятся, и будут шифровать все DX вызовы.
И Intel c остальными будут не в накладе: и процессору работы прибавится, и вообще повод обновить сокет и всю платформу :)
И Intel c остальными будут не в накладе: и процессору работы прибавится, и вообще повод обновить сокет и всю платформу :)
+5
Вы мне напоминаете одного заказчика, который просил картинки на его сайте от граберов зашитить, причем он очень настаивал, чтоб и принтскрин тоже не работал, не только прямой даунлоад.
+1
Уже жду когда можно будет компонент Decision Making самому написать.
Даешь Google AI challenge на SCII в следующем году!
Даешь Google AI challenge на SCII в следующем году!
+1
Так а ждёте чего? Есть какие то препятствия?
0
Я думаю самым выгодным будет играть в 4 гейт с парой ветвлений — не пропустить фотон раш и не ломиться на форсфилды.
0
Только с 6 пулом и другими чизами будут проблемы. :)
0
По-моему бесполезное видео — ничего не понятно, все скачет и рябит. Лучше бы выложили реплай…
0
было бы хорошо не полностью автоматизировать (бот управляет стратегией), а сделать некоторые вещи болле «макро» например (элементы тактики).
Пока приток денег > 300 и денег > 1000 строить рабочих, жилища и армию.
Так можно сократить количество мелких суетных движений.
Пока приток денег > 300 и денег > 1000 строить рабочих, жилища и армию.
Так можно сократить количество мелких суетных движений.
0
Вот дали бы доступ к юнитам (и строениям) на уровне Colobot/Ceebot — резко бы повысилась компьютерная грамотность человечества ;-)
0
Сталкеры (эти юниты стреляющие в конце победившие врага) с блинком (телепортом на короткую дистанцию) являются самым грозным оружием в руках ИИ…
+1
Любое оружие в руках ИИ будет грозным, просто потому что он сможет действовать быстро и эффективно. Предел APM при котором стратегия игры уже не будет улучшаться находиться выше выше 500 это точно.
Человек вряд ли сможет соперничать с ботом.
Человек вряд ли сможет соперничать с ботом.
0
На самом деле любые юниты с ренжем становятся грозными против юнитов ближнего боя. Больше всего страдают зерги похоже. Это запись бота, который с помощью маринесов без потерь справляется с лингами и банелингами:
www.youtube.com/watch?feature=player_detailpage&v=mrbYd4OFrWE#t=68s
www.youtube.com/watch?feature=player_detailpage&v=mrbYd4OFrWE#t=68s
+1
Клевое видео. Но заметил что не совсем оптимально алгоритм работает. Например когда маринера не атакуют, он все равно пытается отбежать, хотя может там общая линия фронта учитывается.
Но вот это конечно жесть: For one Marine the Bot needs around 300 APM.
Но вот это конечно жесть: For one Marine the Bot needs around 300 APM.
+1
Немного удивляет стратегия, когда он мутой на маринов полетел. Ощущение что зерговский бот послабее. А так прикольное видео)
0
НЛО прилетело и опубликовало эту надпись здесь
:) По теме комментов много, поэтому займусь оффтопиком. Может кто знает откуда взялась фигурка, которая на первой фотографии в посте? :)
0
А на сколько легко такой метод обнаруживается системами защиты?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Бот Starcraft 2 на основе перехвата и анализа рендеринга