Paper Engine
A game automation, computer vision, and performance analysis framework. Combines Wine game execution, memory reading, YOLO object detection, and LLM-powered game analysis to build intelligent game bots and diagnose game performance issues.
Designed for bug detection, automated testing, game QA, and Linux gaming diagnostics.
Work in Progress
Paper Engine is under active development. Expect breaking changes.
What It Does
Paper Engine has two main systems:
Game Automation Pipeline
- Game Execution -- Runs game executables (Windows via Wine, Linux native, scripts)
- Memory Reading -- Reads live game state from Mono/Unity games (HP, scene, loading, etc.)
- Screenshot Capture -- Captures gameplay at configurable intervals
- Annotation -- Built-in annotation tool for object detection labelling
- YOLO Training -- Trains YOLO11/YOLO26 models on annotated gameplay data
- Bot Generation -- LLM generates Python bot scripts using YOLO + game controls
- Self-Learning -- Automated play-annotate-train loop
Multi-Source Game Performance Analysis
Analyzes any game's performance by collecting data from up to 6 sources:
| Source | Description |
|---|---|
| Engine configs | Scans game directory for .ini, .cfg, .log, benchmark data |
| Engine detection | Identifies UE3, UE4, Unity, Void Engine/id Tech from directory structure |
| Community data | Fetches ProtonDB API for compatibility ratings and report counts |
| Wine/DXVK prefix | Reads Proton version, DXVK state cache size, DLL overrides, env vars |
| Known fixes | Checks for game-specific community fixes |
| LLM analysis | Feeds all sources to an LLM acting as a game engine QA expert |
Requirements
- OS: Linux (tested on Arch/Wayland). macOS partially supported. Windows not supported.
- Python: 3.8+
- Wine: For running Windows games
- LLM provider: Anthropic Claude (default), Google Gemini, or OpenAI
Quick Start
# Install dependencies
pip install pynput python-dotenv pyyaml customtkinter anthropic
pip install ultralytics # For YOLO training
# Launch the GUI
python gui_app.py
# Or use the CLI for game analysis
python -m pipeline.game_feedback --game-dir /path/to/game/