metadata
license: mit
tags:
- reinforcement-learning
- ppo
- openfront
- game-ai
OpenFront RL Agent
PPO-trained agent for OpenFront.io, a multiplayer territory control game.
Training Details
- Algorithm: PPO (Proximal Policy Optimization)
- Architecture: Actor-Critic with shared backbone (512→512→256)
- Observation dim: 80
- Max neighbors: 16
- Maps: plains, big_plains, world, giantworldmap, ocean_and_land, half_land_half_ocean, europe, europeclassic, northamerica, africa, asia, australia, southamerica, mediterranean, britannia, britanniaclassic, eastasia, oceania, pangaea, mena, aegean, alps, amazonriver, amazonriverwide, arctic, baikal, beringstrait, betweentwoseas, blacksea, bosphorusstraits, deglaciatedantarctica, falklandislands, faroeislands, fourislands, gatewaytotheatlantic, gulfofstlawrence, halkidiki, hawaii, iceland, italia, japan, lemnos, lisbon, manicouagan, niledelta, passage, sanfrancisco, straitofgibraltar, straitofhormuz, surrounded, thebox, theboxplus, tourney1, tourney2, tourney3, tourney4, tradersdream, twolakes, worldrotated, yenisei, achiran, mars, milkyway, montreal, newyorkcity, pluto, reglaciatedantarctica (random per episode)
- Opponents: 2 Easy bots
- Parallel envs: 8
- Learning rate: 0.00015
- Rollout steps: 512
- Updates trained: 2750
- Global steps: 11264000
- Best mean reward: 2761.6309762120245
Final Training Metrics
- Mean reward: 1866.676198823452
- Mean episode length: 35228.65
- Loss: 17.78866958618164
Usage
from train import ActorCritic
import torch
model = ActorCritic(obs_dim=80, max_neighbors=16, hidden_sizes=[512, 512, 256])
model.load_state_dict(torch.load("best_model.pt", weights_only=True))
model.eval()
Repository
Trained from josh-freeman/openfront-rl.