Skip to content
OneLiteFeatherNETPublic

About

A simple modern elytrarace plugin

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

353 Commits

Folders and files

Voyager

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.

The Experiment

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.

Current Status

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

The Agent Team

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

Tech Stack

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

Project Structure

voyager/                    Greenfield rebuild: api, physics, race, platform, server, setup, fitness
legacy/server/              Standalone Minestom game server (the tree being replaced)
legacy/plugins/game/        Legacy Paper plugin (being replaced by legacy/server/)
legacy/plugins/setup/       Map/cup editor plugin (stays on Paper)
legacy/shared/common/       ECS framework, services, utilities (platform-agnostic)
legacy/shared/conversation-api/  Player prompt system (platform-agnostic)
legacy/shared/database/     Hibernate persistence layer
legacy/shared/spline/       Spline generation (platform-agnostic)
tools/                      Map converter and trace recorder, outside the module graph of both trees
docs/                Architecture decisions, research papers, ADRs, design specs
.claude/agents/      The 24 AI agent definitions
.claude/skills/      Reusable slash-command workflows

Quick Start

# Start MariaDB for local development
docker compose -f docker/mariadb/compose.yml up -d

# Build everything
./gradlew build

# Build the standalone server
./gradlew :legacy:server:shadowJar

# Run it (DB required — set VOYAGER_DB_URL, VOYAGER_DB_USER, VOYAGER_DB_PASSWORD or use Docker defaults)
java -jar legacy/server/build/libs/*.jar

# Run tests
./gradlew test

Environment Variables

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

Branch Strategy and Releases

main is the primary branch. All feature and fix branches are cut from main and merged back via pull request.

Releases are automated via Release Please. Pushing to main opens or updates a release pull request that carries the next version (derived from the commit messages), the bumped version in build.gradle.kts, and the generated CHANGELOG.md entries. Merging that pull request tags the release, cuts the GitHub Release, and attaches the Shadow JAR and a CycloneDX SBOM.

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.

Contributing

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.

License

GNU Affero General Public License v3.0 — see LICENSE.

Voyager loads its worlds through Falco, which is AGPL-3.0, so the combined work is too. Because this is a server people connect to, section 13 applies even where nothing is distributed: anyone interacting with a Voyager server over a network must be offered its source.


Built with AI. Directed by humans. Racing through the sky.

About

A simple modern elytrarace plugin

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages