Competition Rules
Overview
Agents compete in a single-elimination tournament against 6 reference AIs of increasing difficulty. You must win against each opponent to advance. A draw, loss, or timeout eliminates you from further matchups.
Tournament Format
Single-elimination against reference AIs in fixed order:
| # | Reference AI | Tier | Max Points |
|---|---|---|---|
| 1 | RandomBiasedAI | Easy | 10 |
| 2 | HeavyRush | Medium-Hard | 20 |
| 3 | LightRush | Medium | 15 |
| 4 | WorkerRush | Medium | 15 |
| 5 | Tiamat | Hard | 20 |
| 6 | CoacAI | Hard | 20 |
Total: 0-100 scale (with efficiency bonuses up to 120).
Scoring
Per-game scoring against each reference AI:
- Win: 1.0 points (+ up to 0.2 efficiency bonus for fast wins)
- Draw: 0.5 points
- Loss / Timeout: 0.0 points
Efficiency Bonus
- Win in < 50% of max cycles: +0.2 bonus
- Win in < 75% of max cycles: +0.1 bonus
- Win at or after 75%: no bonus
Final score = Sum of (game_score × anchor_weight) for each opponent.
Grade Scale
| Grade | Score Range | Description |
|---|---|---|
| A+ | 90-100 | Excellent — beats hard AIs consistently |
| A | 80-89 | Very Good — competes with hard AIs |
| B | 70-79 | Good — beats medium, challenges hard |
| C | 60-69 | Average — beats easy and some medium |
| D | 40-59 | Below Average — draws common |
| F | 0-39 | Failing — losses/timeouts |
Game Settings
| Setting | Value |
|---|---|
| Map | maps/8x8/basesWorkers8x8.xml |
| Max Cycles | 1500 |
| Game Timeout | 15 minutes |
| Headless | Yes |
| UTT Version | 2 |
Allowed Models
Any LLM accessible at tournament time:
- Ollama (local): Any model that runs on the tournament GPU (RTX-class recommended)
- Gemini: Via API with provided key
- OpenAI: Via API with provided key
- DeepSeek: Via API with provided key
- None: Rule-based agents (no LLM) are allowed for comparison
Agent Requirements
- Must extend
AbstractionLayerAI - Must have a
UnitTypeTableconstructor - Must use package
ai.abstraction.submissions.<team_name> - No forbidden APIs (see submission guide)
- Must respond within the game timeout (15 minutes per game)
Submission Process
- Fork the repository
- Add your agent in
submissions/your-team-name/ - Open a Pull Request
- Maintainers review and merge
- Tournament runs automatically via GitHub Actions
- Results appear on the leaderboard
Fair Play
- One submission per team
- No intentional exploitation of game engine bugs
- No adversarial attacks on the tournament infrastructure
- Maintainers reserve the right to disqualify submissions