Kautenja/gym-super-mario-bros

Gymnasium environments for NES Mario games, with task metadata, reward instrumentation, and reproducible evaluation interfaces.

해결하는 문제

gym-super-mario-bros는 고전 Nintendo Entertainment System (NES) Super Mario Bros. 게임에서 AI 에이전트를 훈련하고 테스트하기 위한 표준화된 인터페이스를 제공합니다. 게임 환경을 Gymnasium (이전 OpenAI Gym) API와 호환되는 형식으로 변환하여 연구자와 개발자가 강화 학습(RL) 알고리즘을 사용하여 에이전트에게 게임 플레이 방법을 가르칠 수 있도록 합니다.

작동 방식

이 프로젝트는 nes-py 에뮬레이터를 사용하여 NES 게임을 실행합니다. 게임 상태와 제어를 Gymnasium 환경으로 래핑하여 에이전트가 동작(오른쪽 이동 또는 점프 등)을 보내고 상태(화면 픽셀)와 게임 내부 RAM 값을 기반으로 한 보상을 받을 수 있도록 합니다.

훈련을 단순화하기 위해 이 프로젝트는 사전 정의된 동작 세트(예: SIMPLE_MOVEMENT 및 COMPLEX_MOVEMENT)를 제공하여 256가지의 가능한 NES 동작 공간을 더 관리하기 쉬운 제어 세트로 제한합니다.

대상 사용자

  • AI 연구원: 강화 학습 및 복잡한 시각적 환경에서의 에이전트 행동을 연구하는 분들.
  • ML 엔지니어: 레트로 게임을 위한 RL 에이전트를 구축하고 테스트하는 개발자.
  • 학생: 게임 플레이 에이전트에 AI를 적용하는 방법을 배우는 분들.

주요 특징

  • 멀티 게임 지원: Super Mario Bros., Super Mario Bros. 2 (Lost Levels), Super Mario Bros. 2 (USA), Super Mario Bros. 3를 지원합니다.
  • 상세한 보상 함수: 진행 상황, 코인 수집, 레벨 완료에 대해 보상하고 사망 시 페널티를 주는 셰이핑된 보상 함수가 포함되어 있습니다.
  • 상세한 게임 상태: info 사전을 통해 x/y 위치, 코인, 점수, 파워업 상태와 같은 RAM 기반 데이터에 깊이 있게 접근할 수 있습니다.
  • 유연한 작업 설정: 전체 게임 실행뿐만 아니라 개별 스테이지(예: World 1-1)를 대상으로 한 훈련도 가능합니다.
  • CLI 도구: 키보드나 무작위 움직임을 통해 게임을 플레이할 수 있는 명령줄 인터페이스가 포함되어 있어 빠른 테스트가 가능합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트