Skip to main content

Game Learning Runtime

CI License: MIT Python

Game Learning Runtime (GLR) is a framework-neutral contract between game runtimes and learning systems. A game adapter describes observations, actions, action masks, rewards, events, and episode boundaries once; TorchRL, custom PPO or IMPALA learners, behavior cloning, offline datasets, evaluators, and QA tools can then consume the same interface.

A universal runtime for connecting games to learning systems and AI agents.

GLR is intended for games and test environments you own or are authorized to instrument. It does not include anti-cheat bypasses, stealth injection, or game-specific reverse-engineering code.

Why this boundary

Game / simulator
      │
      ▼
Runtime adapter (C#, C++, Rust, Python, official API, ...)
      │
      ▼
GLR protocol + environment contract
      │
      ├── TorchRL
      ├── custom PPO / IMPALA
      ├── BC / DAgger / offline learning
      ├── recorder / replay
      └── evaluation / automated QA

Game adapters never import PPO, IMPALA, BC, or TorchRL. Learning code never needs to know whether the game is Unity, Unreal, Source, native, or a test simulator. The standardized boundary is the data and lifecycle contract, not a single implementation language or transport.

Implemented in v0.1

  • Recursive tensor-tree specs for continuous, discrete, multi-discrete, binary, hybrid, parameterized, and hierarchical data.
  • A GameEnvironment port with reset, step, close, action masks, semantic events, terminated/truncated signals, episode IDs, and monotonic step IDs.
  • A fail-closed ContractEnvironment wrapper that validates every boundary.
  • Fixed-length actor Unroll collection suitable for custom PPO and IMPALA.
  • Versioned glr.transition.v1 JSONL records for BC, replay, and offline data.
  • A packaged glr.v1 Protobuf service with unary and bidirectional streaming interaction contracts.
  • An optional TorchRL EnvBase adapter tested against TorchRL 0.13.

Game-specific runtime adapters, generated C#/C++/Rust protocol SDKs, distributed actor transport, and learner implementations are roadmap items—not features claimed by this initial release.

Install

Until PyPI trusted publishing is enabled, pin a GitHub release tag:

uv add "game-learning-runtime @ git+https://github.com/loonghao/GameLearningRuntime@v0.1.0"

Add the TorchRL integration only where training requires it:

uv add "game-learning-runtime[torchrl] @ git+https://github.com/loonghao/GameLearningRuntime@v0.1.0"

Minimal environment

import numpy as np

from game_learning_runtime import ContractEnvironment, SyncCollector
from game_learning_runtime.examples import CounterEnvironment, always_increment

environment = ContractEnvironment(CounterEnvironment(target=3))
collector = SyncCollector(environment, actor_id="local-actor")
unroll = collector.collect(always_increment, steps=16, policy_version=0)

print(len(unroll.transitions), unroll.total_reward)

Run the complete example from a clone:

uv sync --frozen
uv run python -c "from game_learning_runtime import *; from game_learning_runtime.examples import *; print(SyncCollector(ContractEnvironment(make_environment())).collect(always_increment, steps=4).total_reward)"

For TorchRL:

from game_learning_runtime.examples import CounterEnvironment
from game_learning_runtime.integrations.torchrl import TorchRLEnvironment

env = TorchRLEnvironment(CounterEnvironment())
rollout = env.rollout(max_steps=32)

Reuse the CI workflow

Any uv-managed Python repository can call the public reusable workflow:

jobs:
  quality:
    uses: loonghao/GameLearningRuntime/.github/workflows/reusable-python-ci.yml@v0.1.0
    with:
      python-versions: '["3.10", "3.12"]'
      sync-args: "--frozen --all-groups"
      lint-command: "uv run ruff check . && uv run mypy"
      test-command: "uv run pytest"

Pin a release tag or commit SHA in production repositories. The workflow never receives deployment secrets and only checks out/tests the calling repository.

Documentation

Contributing and security

See CONTRIBUTING.md for the development contract and SECURITY.md for private vulnerability reporting. GLR is licensed under the MIT License.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

game_learning_runtime-0.1.0.tar.gz (152.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

game_learning_runtime-0.1.0-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

Details for the file game_learning_runtime-0.1.0.tar.gz.

File metadata

  • Download URL: game_learning_runtime-0.1.0.tar.gz
  • Upload date:
  • Size: 152.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for game_learning_runtime-0.1.0.tar.gz
Algorithm Hash digest
SHA256 232f67216a4efbac695756650037502973d54835c46dd0f9e1029248302433fa
MD5 efb13170499616327c28ef5fbb9491cb
BLAKE2b-256 66129357cb58a0560a301d3f5998ef51232d67245ed817abb27890e3b61dea5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for game_learning_runtime-0.1.0.tar.gz:

Publisher: release.yml on loonghao/GameLearningRuntime

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file game_learning_runtime-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for game_learning_runtime-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2199597a4e49aef7e275a60620069aa0fbbe4f348501e2111f98dd6044edd54b
MD5 8c450ea1ae5af994c1f908446256d41b
BLAKE2b-256 5940c378a2c1f43fcca8b04d813b13c2c82f2f166ba46619b05021a0f6534f3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for game_learning_runtime-0.1.0-py3-none-any.whl:

Publisher: release.yml on loonghao/GameLearningRuntime

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.17.0

2 files

0.16.0

2 files

0.15.0

2 files

0.14.0

2 files

0.13.2

2 files

0.13.1

2 files

0.13.0

2 files

0.12.1

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.1

2 files

0.2.0

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page