Skip to content
TencentARCPublic

About

Player-1: Learning to Play from Synthetic Experience

Resources

Stars

214 stars

Watchers

22 watching

Forks

Repository files navigation

Player-1 — Learning to Play from Synthetic Experience

Player-1 is an open VLM post-training framework for generalist game-playing agents, following:
SFT on Player-1-Data → RL in Player-1-Gym → Evaluation on held-out gameplay benchmarks.

Project Page Paper Dataset
Model: Player-1-9B Model: Player-1-35B-A3B License


Core components of the Player-1 framework:

  • Player-1-Data: 6,044 curated trajectories from 172 games, complete with screenshots, chain-of-thought reasoning, and normalized keyboard/mouse actions.
  • Player-1-Gym: 16 synthetic 2D/3D environments for aiming, combat, driving, navigation, and UI crafting with verifiable rewards.
  • Training Engine: VeRL integration supporting PPO, GRPO, and GSPO. Base models: Qwen3.5-9B / Qwen3.5-35B-A3B.
  • Gameplay Evaluation Suite: Evaluation across Player-1-Gym, MineDojo (300 tasks), ViZDoom (10 maps), and GameWorld (170 tasks).

🎮 RL Training Environment Previews

2D Aiming 2D Shooting 2D Collect & Dodge 2D Lane Driving
2D Aiming preview 2D Shooting preview 2D Collect & Dodge preview 2D Lane Driving preview
2D Circuit Driving 2D Platforming 2D Crafting 3D Aiming
2D Circuit Driving preview 2D Platforming preview 2D Crafting preview 3D Aiming preview
3D Shooting 3D Road Driving 3D Lane Driving 3D Spear Duel
3D Shooting preview 3D Road Driving preview 3D Lane Driving preview 3D Spear Duel preview
3D Sword Duel 3D Melee Combat 3D Navigation 3D Chasing
3D Sword Duel preview 3D Melee Combat preview 3D Navigation preview 3D Chasing preview
player1-introduction.mp4

📢 News

  • [2026.11] Released Player-1 models, Player-1-Data, and the complete Player-1 codebase: Player-1-Gym, training recipes (SFT & RL), and benchmark evaluators.
  • [2026.10] Released the paper (arXiv 2610.20584) and project page.

⚡ Quick Start

Play the 16 Gym environments directly in your browser. Use Python 3.11+ and run from the repository root:

python -m pip install -r requirements/gym.txt
python -m playwright install chromium
PYTHONPATH=. python examples/gym/play.py

Open the printed URL in your browser to play manually.

For Python programmatic stepping, run examples/gym/step.py:

import asyncio
from player1.gym import GymEnv

async def main():
    async with GymEnv("base_3d_aim") as env:
        obs = await env.reset(seed=42)
        # Relative mouse movement [-1000, 1000] and click
        obs = await env.step({
            "type": "game_step_action", "id": "control", "duration_ms": 200,
            "mouse": {"mode": "relative", "dx": 50, "dy": -20},
            "mouse_click": {"button": "left"},
        })
        print(f"Reward: {obs.reward}, Terminated: {obs.terminated}")

asyncio.run(main())

📚 Guides & Documentation

Workflow Guide / Entry Points Description
Gym Setup and Python API 16 environments, continuous initialization, and action specs
Data Reading and format · Production and Viewer Parquet schema, multi-turn history reader, and VLM annotation
Inference Model server and examples vLLM serving, prompt templates, and single-frame/interactive agent
Training SFT → RL guide · SFT launcher · RL launcher veRL integration, PPO/GRPO/GSPO, and checkpoint export
Evaluation Benchmark setup and trajectory viewer MineDojo-300, ViZDoom-10, GameWorld, and web-based viewer
Sources Component sources and licenses Upstream projects and asset notices

Player-1 Overview

Player-1 training and evaluation pipeline: Computer-use model → SFT on Player-1-Data → RL in Player-1-Gym → Evaluation in external games

1/ Player-1-Data

We curate 6,044 gameplay trajectories from 172 games, with recorded keyboard and mouse actions mapped to a shared game-control action space. Each training example includes task instructions, screenshot observations, reasoning, and actions for supervised learning.

2/ Player-1-Gym

Sixteen synthetic 2D and 3D environments cover aiming, combat, driving, navigation, and UI interaction. All use screenshot observations and keyboard and mouse controls, with verifiable rewards computed directly from game state. Randomizing appearance, camera, scene, and control broadens the agent's training experience.

3/ Evaluation Benchmarks

We evaluate transfer to games outside the RL training suite:

Minecraft ViZDoom GameWorld
Minecraft preview ViZDoom preview GameWorld preview
  • MineDojo (MineDojo-300, 300 tasks, 1000 turns per step): Goal-directed control in Minecraft's open-ended world.
  • ViZDoom (ViZDoom-10, 10 maps, 150–2,100 turns per step): First-person navigation, aiming, and combat in ViZDoom.
  • GameWorld (170 tasks, 400 turns per step): Game control across 34 browser games with diverse mechanics.

🚀 Release Status

  • Launch: Paper & Project Page
  • Demonstration SFT Dataset: Hugging Face.
  • Model Checkpoints: Player-1-9B and Player-1-35B-A3B.
  • Player-1-Gym: 16 synthetic 2D/3D environments with Python Playwright bindings.
  • Player-1-Data Pipeline: Ingestion, action standardization, and VLM annotation.
  • Training Framework: VeRL-based SFT and RL (PPO / GRPO / GSPO) recipes for Qwen3.5-9B / Qwen3.5-35B-A3B.
  • Evaluation & Benchmark: Player-1-Gym, MineDojo-300, ViZDoom-10, and GameWorld.

📑 Citation

If you find our work or dataset useful, please consider citing:

@misc{ouyang2026player1learningplaysynthetic,
  title={Player-1: Learning to Play from Synthetic Experience},
  author={Mingyu Ouyang and Yiran Wang and Siyuan Hu and Xingyilang Yin and Huiqiang Sun and Guangzhi Wang and Junfu Pu and Cheng Cheng and Honghao Chen and Ying Shan and Mike Zheng Shou and Hwee Tou Ng},
  year={2026},
  eprint={2610.20584},
  archivePrefix={arXiv},
  primaryClass={cs.CV},
  url={https://arxiv.org/abs/2610.20584}
}

About

Player-1: Learning to Play from Synthetic Experience

Resources

Stars

214 stars

Watchers

22 watching

Forks

Used by

Contributors

Languages