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ツール: キーボード操作やランダムな動きでゲームをプレイするためのコマンドラインインターフェースが含まれており、迅速なテストが可能です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト