Обвязка, чтобы ИИ-агент играл в игры NES через эмулятор
Автор комментария на Hacker News строит обвязку, через которую агент играет в игры NES, читая состояние эмулятора. Агент застрял на распознавании диалогов и меню, и автор решил просто читать состояние каждый кадр. Работа не закончена.
Сделано со своим агентом
Что сделали
Автор делает обвязку (harness), через которую агент играет в игры NES, читая состояние эмулятора и игры. Агент раз за разом застревал на распознавании диалогов, навигации по меню и смены экранов. После перерыва автор спросил, нельзя ли просто читать состояние каждый кадр вместо хитрого распознавания. Агент согласился.
Что получилось
Работа не закончена. Автор к ней пока не вернулся и собирается поручить агенту небольшой рекордер, который фиксирует изменения состояния с точностью до кадра. Агент ещё беспокоился о производительности, но автор назвал это ерундой и заметил, что это была flash-модель.
На что обратить внимание
Если агент буксует на хитром подходе, остановитесь и сами предложите решение попроще. Агентам трудно заметить неоднозначность или нехватку контекста.
Пояснение
NES это старая игровая приставка Nintendo, её игры сейчас запускают в эмуляторах. Обвязка (harness) это код вокруг агента, который передаёт ему состояние игры и принимает от него нажатия кнопок. Flash-модели это облегчённые и быстрые версии моделей.
Кому пригодится
Тем, кто строит агентов для игр или любых сред, где агенту нужно понимать, что происходит на экране.
Попробуйте сами
Помоги мне сделать обвязку, чтобы ИИ-агент мог играть в [название игры NES] в эмуляторе. Настрой [эмулятор, например FCEUX или библиотека NES на Python] так, чтобы агент читал состояние игры (значения RAM и кадры экрана), отправлял нажатия кнопок контроллера и вёл покадровый журнал состояния. Добавь распознавание диалогов и меню (например, по конкретным адресам в RAM). Остановись, когда агент сможет пройти [первая цель, например стартовый город], и покажи мне формат журнала.
Нужна помощь с запуском? Вступайте в сообщество AI Pack ↗
Источник: news.ycombinator.com ·