Player-1-35B-A3B is the Mixture-of-Experts (MoE) game-playing agent model from the Player-1 project. Initialized from Qwen3.5-35B-A3B, it delivers vision-language-action reasoning, fine-grained spatial targeting, and long-horizon decision making across 2D/3D games and complex open-world environments.
The model is part of Player-1: Learning to Play from Synthetic Experience; see the paper and the GitHub repository for complete training, evaluation, and environment code.
๐ฎ Model Overview
- Base Architecture:
Qwen/Qwen3.5-35B-A3B(Vision-Language Mixture-of-Experts) - Parameters: 35B Total / ~3B Active per token
- Key Advantages:
- Higher representational capacity for fine spatial orientation and target tracking.
- Deeper multi-step strategic planning in long-horizon tasks (e.g., Minecraft, complex browser mechanics).
- High inference efficiency via MoE sparse activation.
- Post-Training Pipeline:
- Supervised Fine-Tuning (SFT) on Player-1-Data (6,044 trajectories from 172 games).
- Reinforcement Learning (RL) with PPO in Player-1-Gym across 16 synthetic environments with verifiable rewards.
- Action Space: Normalized canonical game actions (relative/absolute mouse pointer, clicks, discrete keyboard events) at 200ms per step.
โก Quick Start: Serving with vLLM
For multi-GPU serving (e.g. 2x or 4x 80GB GPUs), configure tensor parallelism:
vllm serve yyyang/Player-1-35B-A3B \
--served-model-name Player-1-35B-A3B \
--tensor-parallel-size 2 \
--port 8000 \
--chat-template https://raw.githubusercontent.com/TencentARC/Player-1/main/player1/agents/chat_template/qwen3_5_player1_full_history.jinja \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder \
--reasoning-parser qwen3 \
--max-model-len 16384 \
--limit-mm-per-prompt image=5
๐น๏ธ Python Inference Example
Interact with Player-1-35B-A3B using standard OpenAI-compatible client libraries:
import base64
from io import BytesIO
from openai import OpenAI
from PIL import Image
client = OpenAI(base_url="http://127.0.0.1:8000/v1", api_key="EMPTY")
# Encode observation screenshot
def encode_image(image: Image.Image) -> str:
buffered = BytesIO()
image.save(buffered, format="JPEG", quality=85)
return base64.b64encode(buffered.getvalue()).decode("utf-8")
screenshot = Image.open("screenshot.png").resize((640, 360))
b64_image = encode_image(screenshot)
response = client.chat.completions.create(
model="Player-1-35B-A3B",
messages=[
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{b64_image}"}},
{"type": "text", "text": "Task: Navigate through the obstacles and survive."}
]
}
],
temperature=0.0,
max_tokens=512,
)
message = response.choices[0].message
if hasattr(message, "reasoning_content") and message.reasoning_content:
print("Reasoning:", message.reasoning_content)
if message.tool_calls:
for tool_call in message.tool_calls:
print("Action:", tool_call.function.name, tool_call.function.arguments)
See examples/inference/play_game.py in the code repository to run the policy in interactive Gym environments.
๐ Evaluation Benchmarks
We evaluate generalist game-playing capabilities across four diverse benchmarks spanning synthetic environments and out-of-domain games:
- Player-1-Gym (16 environments): Evaluates core 2D and 3D gameplay primitives, including aiming, combat, driving, and navigation, under procedural variations.
- MineDojo-300 (300 tasks): Evaluates open-ended, goal-directed survival and crafting tasks in Minecraft 1.16.5.
- ViZDoom-10 (10 maps): Evaluates first-person 3D navigation, aiming, and combat in classic shooter environments.
- GameWorld (170 tasks across 34 games): Evaluates zero-shot transfer across diverse 2D browser and arcade games with varied mechanics.
๐ Citation
@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}
}
- Downloads last month
- -