Add README.md with project overview and quick start guide
- Add comprehensive README with project structure, quick start, and deployment info - Document all 6 strategy bots with their languages and strategies - Include testing and architecture overview - Update PROGRESS.md to reflect this change Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
d0bd8737e5
commit
1f92674b88
2 changed files with 130 additions and 0 deletions
|
|
@ -7,6 +7,7 @@
|
|||
**Last Updated: 2026-03-24**
|
||||
|
||||
### Recent Changes (2026-03-24)
|
||||
- Added `README.md` with project overview and quick start guide
|
||||
- Added `.gitignore` for proper repository hygiene
|
||||
- Added `package-lock.json` files for reproducible builds
|
||||
- Verified all tests pass (glicko2.test.ts, generator.test.ts)
|
||||
|
|
|
|||
129
README.md
Normal file
129
README.md
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
# AI Code Battle
|
||||
|
||||
A competitive bot programming platform where participants write HTTP servers that control units on a grid world.
|
||||
|
||||
## Overview
|
||||
|
||||
AI Code Battle is a game simulation platform where:
|
||||
- Participants write bots in any language that expose HTTP endpoints
|
||||
- Bots compete on a toroidal (wrapping) grid world
|
||||
- Matches are executed offline and presented as completed replays
|
||||
- A web platform shows leaderboards, match history, and replay viewers
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Go 1.21+ (for game engine and CLI tools)
|
||||
- Node.js 18+ (for web and worker components)
|
||||
- Docker (for containerized deployment)
|
||||
|
||||
### Running Locally
|
||||
|
||||
```bash
|
||||
# Build CLI tools
|
||||
go build ./cmd/acb-local
|
||||
go build ./cmd/acb-mapgen
|
||||
|
||||
# Run a match between built-in bots
|
||||
./acb-local -seed 42 -max-turns 100 -output replay.json -verbose
|
||||
|
||||
# Start web development server
|
||||
cd web && npm install && npm run dev
|
||||
# Open http://localhost:3000/app.html
|
||||
```
|
||||
|
||||
### Viewing Replays
|
||||
|
||||
1. Open the web app at `http://localhost:3000/app.html`
|
||||
2. Navigate to "Replay Viewer" in the menu
|
||||
3. Load a replay JSON file or enter a URL
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
ai-code-battle/
|
||||
├── engine/ # Go game simulation library
|
||||
│ ├── types.go # Core data types
|
||||
│ ├── grid.go # Toroidal grid implementation
|
||||
│ ├── game.go # Game state management
|
||||
│ ├── turn.go # Turn execution phases
|
||||
│ ├── replay.go # Replay recording
|
||||
│ └── *_test.go # Test files
|
||||
├── cmd/
|
||||
│ ├── acb-local/ # CLI match runner
|
||||
│ ├── acb-mapgen/ # Map generator
|
||||
│ ├── acb-worker/ # Match execution worker
|
||||
│ └── acb-indexer/ # Index builder for static files
|
||||
├── web/ # Cloudflare Pages SPA
|
||||
│ ├── src/
|
||||
│ │ ├── pages/ # Page components
|
||||
│ │ ├── replay-viewer.ts # Canvas replay renderer
|
||||
│ │ └── app.ts # SPA entry point
|
||||
│ └── public/ # Static assets
|
||||
├── worker-api/ # Cloudflare Worker API
|
||||
│ └── src/
|
||||
│ ├── index.ts # Router + cron dispatcher
|
||||
│ ├── jobs.ts # Job coordination
|
||||
│ ├── bots.ts # Bot management
|
||||
│ └── glicko2.ts # Rating system
|
||||
├── bots/ # Strategy bot implementations
|
||||
│ ├── random/ # Python - RandomBot
|
||||
│ ├── gatherer/ # Go - GathererBot
|
||||
│ ├── rusher/ # Rust - RusherBot
|
||||
│ ├── guardian/ # PHP - GuardianBot
|
||||
│ ├── swarm/ # TypeScript - SwarmBot
|
||||
│ └── hunter/ # Java - HunterBot
|
||||
└── docs/plan/ # Implementation plan
|
||||
```
|
||||
|
||||
## Strategy Bots
|
||||
|
||||
| Bot | Language | Strategy |
|
||||
|-----|----------|----------|
|
||||
| RandomBot | Python | Random valid moves (baseline) |
|
||||
| GathererBot | Go | Energy collection, avoid combat |
|
||||
| RusherBot | Rust | Rush enemy cores aggressively |
|
||||
| GuardianBot | PHP | Defend cores, cautious expansion |
|
||||
| SwarmBot | TypeScript | Formation cohesion, group advance |
|
||||
| HunterBot | Java | Target isolated enemies |
|
||||
|
||||
## Deployment
|
||||
|
||||
See [DEPLOYMENT.md](DEPLOYMENT.md) for detailed deployment instructions.
|
||||
|
||||
### Quick Deploy
|
||||
|
||||
```bash
|
||||
# Start all strategy bots
|
||||
docker-compose -f docker-compose.bots.yml up -d
|
||||
|
||||
# Start match workers
|
||||
docker-compose -f docker-compose.workers.yml up -d
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
```bash
|
||||
# Go engine tests
|
||||
go test ./engine/... -v
|
||||
|
||||
# Worker API tests
|
||||
cd worker-api && npm test
|
||||
|
||||
# Index builder tests
|
||||
cd cmd/acb-indexer && npm test
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
The platform uses a split architecture:
|
||||
|
||||
- **Cloudflare (free tier)**: Static site, API endpoints, D1 database, R2 storage
|
||||
- **Rackspace Spot**: Match workers, bot containers, index builder
|
||||
|
||||
See [docs/plan/plan.md](docs/plan/plan.md) for the full implementation plan.
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
Loading…
Add table
Reference in a new issue