WebGL-based RTS game engine supporting classic map formats (Warcraft 3, StarCraft 2) with clean-room implementation.
Built with: TypeScript • React • Babylon.js
# Install
npm install
# Development
npm run dev # Start dev server (http://localhost:5173)
# Validation
npm run typecheck # TypeScript strict mode
npm run lint # ESLint (0 errors policy)
npm run test:unit # Jest unit tests
npm run validate # License & asset validation
# Production
npm run build # Production buildRequirements: Node.js 20+ • npm 10+
src/
├── engine/ # Babylon.js game engine
│ ├── rendering/ # Advanced lighting, shadows, post-processing
│ ├── terrain/ # Terrain rendering & LOD
│ ├── camera/ # RTS camera system
│ ├── core/ # Scene & engine core
│ └── assets/ # Asset loading & management
├── formats/ # File format parsers
│ ├── mpq/ # MPQ archive parser
│ ├── maps/ # W3X, W3M, W3N, SC2Map loaders
│ └── compression/ # ZLIB, BZip2, LZMA decompression
├── ui/ # React components
├── pages/ # Page components (Index, MapViewer)
├── hooks/ # React hooks
├── config/ # Configuration
├── types/ # TypeScript types
└── utils/ # Utilities
public/
├── maps/ # Sample maps (W3X, SC2Map)
└── assets/ # Static assets & manifest
PRPs/ # Phase Requirement Proposals
CLAUDE.md # AI development guidelines
- CLAUDE.md - AI development workflow & rules
- PRPs/ - Product requirements
- CONTRIBUTING.md - Human contributor workflow
- SECURITY.md - Responsible disclosure policy
Zero Tolerance Policy:
- ❌ No copyrighted assets
- ✅ Only CC0/MIT licensed content
- ✅ Clean-room implementation
- ✅ Automated validation:
npm run validate
- Unit Tests: Jest (>80% coverage required)
- E2E Tests: Playwright
- Linting: ESLint strict mode (0 errors, 0 warnings)
- Type Safety: TypeScript strict mode
- File Size: 500 lines max per file
npm run test:unit # Unit tests
npm run test:unit:coverage # With coverage report
npm run test:e2e # E2E tests (Playwright)
npm run lint:fix # Auto-fix linting issues- CI/CD Pipeline:
.github/workflows/ci.ymlfor lint, typecheck, unit, e2e, build, and report comments. - Asset Validation:
.github/workflows/asset-validation.ymlverifies licenses, attribution, and manifest integrity. - Stale Issue Locking:
.github/workflows/lock-closed-issues.ymllocks closed issues after 14 days to focus triage on new reports. - Claude Code Integrations:
.github/workflows/claude.ymland.github/workflows/claude-code-review.ymlenable AI assistance on PRs and reviews. - E2E Snapshot Refresh:
.github/workflows/update-e2e-snapshots.ymlregenerates Playwright artifacts on demand.
- Read CLAUDE.md for workflow
- Review CONTRIBUTING.md for human workflow details
- Find current PRP in PRPs/ directory
- File issues using the templates in
.github/ISSUE_TEMPLATE/ - Follow Definition of Done (DoD) checklist and complete the PR template
- Ensure all tests pass (
npm test) - Run validation (
npm run validate)
GNU Affero General Public License v3.0 (AGPL-3.0)
Copyright (C) 2024 Vasilisa Versus
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3.
Key Requirements:
- ✅ Must preserve copyright and author attribution
- ✅ Must provide source code to network users
- ✅ Must release modifications under AGPL-3.0
- ✅ Cannot use in proprietary software
See LICENSE for full text.