симулировать управление игрой, как будто в нее играют - PullRequest
0 голосов
/ 13 декабря 2011

Я пытаюсь разработать систему машинного обучения для игры в Super Mario.
Приложение должно решить, какая клавиша (клавиша управления игрой) должна быть нажата в соответствии с текущим состоянием игры. Поэтому

  1. Как симулировать нажатия клавиш? (т.е. нажимайте клавиши со стрелками, клавиши Ctrl и т. д., как будто пользователь играет в игру)
  2. Как читать состояния игры? (то есть враг сталкивается, включается и т. д.)

Возможно ли это, или мне нужно для этого реализовать собственную игру?

Ответы [ 2 ]

3 голосов
/ 13 декабря 2011

Учитывая, что у вас нет доступа к исходному коду Super Mario Brothers, я бы сказал, что вам лучше всего найти игровую платформу с открытым исходным кодом, которая работает в том же духе.Это позволит вам заменить часть пользовательского ввода кода вашим AI-кодом, и вы сможете раскрыть любую информацию о состоянии игры, какую хотите.

Существуют и другие проекты для AI.соревнования, которые разработаны специально для такого рода задач - я делал что-то подобное в университете для TORCS .TORCS - это симулятор гоночного автомобиля, для которого вы пишете плагин ИИ, он предоставляет определенную информацию о состоянии вашего автомобиля и его позиции на трассе, а затем обрабатываете его, чтобы предоставить информацию для управления автомобилем.

0 голосов
/ 06 ноября 2014

1) Это можно сделать и для Марио. Учитывая, вы симулируете нажатия клавиш в игре. Если вы играете в клон Direct2D, тогда понадобятся коды сканирования DirectInput. Проверьте SendInnput в MSDN.

2) Эмуляторы сохраняют игровые состояния. Многие тоже с открытым исходным кодом. Проверьте их форум, и вы можете получить ответ, который вы ищете.

...