An experiment in building games with AI agents.
Voyager is a Minecraft elytra racing minigame — think Mario Kart, but you're flying with elytra through rings in the sky. Players compete in cups made up of multiple maps, collecting points by flying through rings at high speed.
This entire project is being designed, architected, implemented, and documented by a team of 24 specialized AI agents working together through Claude Code. Every line of code, every architecture decision, every physics formula, and every piece of documentation was produced through human-AI collaboration.
This is a prototype for a new way of building games:
- A human game designer directs the vision
- AI agents handle the specialized work — from elytra physics calculations to database schema design to gaming psychology optimization
- The agents collaborate, review each other's work, and maintain documentation automatically
- Development happens at a pace that would be impossible for a small team alone
We're continuing this approach and want to see how far it can go. Can a team of AI agents, guided by a human, build a polished, competitive Minecraft minigame? That's what we're finding out.
Alpha v0.1 — in progress. The core gameplay loop is complete and functional. We are currently wiring persistence, tests, and deployment for the first closed playtest.
| Feature | Status |
|---|---|
| Elytra physics (server-authoritative, vanilla formulas) | ✅ Done |
| Ring collision detection (sequential, AABB line-segment) | ✅ Done |
| Cup progression (multi-map sequences) | ✅ Done |
| Scoring — ring points + position bonuses | ✅ Done |
| Firework boost mechanic (vanilla formula, per-map config) | ✅ Done |
| HUD — actionbar, BossBar, titles | ✅ Done |
| Phase system — Lobby → Game → End | ✅ Done |
| Async Anvil world loading | ✅ Done |
| Setup plugin (map/cup/ring editor) | ✅ Done |
| Database persistence (player profiles + race results) | 🔧 Alpha v0.1 |
| Live standings scoreboard | 🔧 Alpha v0.1 |
| CloudNet v4 deployment | 🔧 Alpha v0.1 |
| Spectator mode | 📋 Beta v0.2 |
| Persistent leaderboards | 📋 Beta v0.2 |
| Anti-cheat | 📋 Beta v0.2 |
| Replay system | 📋 Release v1.0 |
→ Full Roadmap on GitHub Projects
| Agent | Role |
|---|---|
| Product Manager | Organizes tickets, plans milestones, leads the team |
| Project Manager | Sprint planning, velocity, WIP limits, release checklists |
| Architect | Designs system boundaries, enforces architecture rules |
| Game Psychologist | Ensures every feature maximizes player retention and fun |
| Game Designer | Designs gameplay loops, balancing, and player feedback |
| Game Developer | Implements physics, collision, scoring, and game feel |
| Minestom Expert | Handles all Minestom API code and Paper migration |
| Minecraft Expert | Knows decompiled vanilla formulas for elytra physics |
| Math & Physics | Writes collision algorithms and ensures numerical stability |
| Senior Backend | Writes clean service and repository code |
| Senior ECS | Builds the Entity-Component-System game loop |
| Senior Testing | Ensures test coverage with JUnit 5 |
| Database Expert | Designs Hibernate entities and optimizes queries |
| Java Performance | Tunes JVM, GC, and ensures 20 TPS under load |
| DevOps | CI/CD, Docker, CloudNet deployment |
| Researcher | Deep-dives into docs before anyone writes code |
| Tech Writer | Maintains all documentation and ADRs |
| Scientist | Writes formal research papers on technical decisions |
| Paper Expert | Maintains the setup plugin that stays on Paper |
| Junior Creative | Brings wild ideas and quick prototypes |
| Junior Frontend | Builds scoreboards, BossBars, and sound design |
| Social Media | Community posts, announcements, changelogs |
| Skill Creator | Builds reusable slash-command workflows |
| Agent Architect | Creates and improves the agents themselves |
| Layer | Technology |
|---|---|
| Game Server | Minestom 2026.03.25-1.21.11 (standalone, no vanilla code) |
| Setup Tool | Paper 1.21.5 + FastAsyncWorldEdit |
| Language | Java 25 |
| Build | Gradle 9.4 + ShadowJar 9.4.0 |
| Dependencies | Version catalog defined in settings.gradle.kts |
| Database | MariaDB via Hibernate ORM 7 + HikariCP |
| Deployment | CloudNet v4 (primary), Kubernetes (planned) |
| Commands | Cloud (Incendo) |
| Geometry | Apache Commons Geometry |
server/ Standalone Minestom game server (the main thing)
plugins/game/ Legacy Paper plugin (being replaced by server/)
plugins/setup/ Map/cup editor plugin (stays on Paper)
shared/common/ ECS framework, services, utilities (platform-agnostic)
shared/phase/ Game phase lifecycle (Lobby → Game → End)
shared/conversation-api/ Player prompt system (platform-agnostic)
shared/database/ Hibernate persistence layer
docs/ Architecture decisions, research papers, ADRs, design specs
.claude/agents/ The 24 AI agent definitions
.claude/skills/ Reusable slash-command workflows
# Start MariaDB for local development
docker compose -f docker/mariadb/compose.yml up -d
# Build everything
./gradlew build
# Build the standalone server
./gradlew :server:shadowJar
# Run it (DB required — set VOYAGER_DB_URL, VOYAGER_DB_USER, VOYAGER_DB_PASSWORD or use Docker defaults)
java -jar server/build/libs/*.jar
# Run tests
./gradlew test| Variable | Default | Description |
|---|---|---|
VOYAGER_DB_URL |
jdbc:mariadb://localhost:3306/voyager-project |
MariaDB connection URL |
VOYAGER_DB_USER |
voyager-project |
Database username |
VOYAGER_DB_PASSWORD |
(required) | Database password |
VOYAGER_DB_POOL_SIZE |
10 |
HikariCP connection pool size |
main is the primary branch. All feature and fix branches are cut from main and merged back via pull request.
Releases are fully automated via semantic-release. Pushing to main triggers a pipeline that determines the next version from commit messages, updates CHANGELOG.md, and publishes a GitHub Release with the Shadow JAR attached.
Version increments follow Conventional Commits:
| Commit type | Version bump |
|---|---|
fix: |
patch (e.g. 1.2.3 → 1.2.4) |
feat: |
minor (e.g. 1.2.3 → 1.3.0) |
feat!: or BREAKING CHANGE: |
major (e.g. 1.2.3 → 2.0.0) |
CI runs on GitHub Actions with SHA-pinned actions, a matrix build across Ubuntu, Windows, and macOS, JaCoCo coverage reporting, and Gradle dependency caching.
This is an open experiment. If you're interested in AI-assisted game development, agent team design, or just want to race with elytra — contributions are welcome.
The .claude/agents/ directory contains the full agent team definitions. Each agent has specific domain knowledge, trigger conditions, and working methods. If you use Claude Code, you can leverage the entire team.
All commits must follow Conventional Commits — this drives the automated versioning pipeline.
MIT — see LICENSE
Built with AI. Directed by humans. Racing through the sky.