βMay your aim be true and your dodges unpredictable.β β Flemming NΓΈrnberg Larsen
βBuild the best β destroy the rest!β β Mathew A. Nelson
A structured, modern knowledge base covering Robocode and Robocode Tank Royale β from fundamentals and physics to movement, targeting, and competitive strategy β distilling two decades of community experience.
Automatically deployed to GitHub Pages via GitHub Actions. Pushing changes to main triggers a new build and
publication.
π Live Site: https://book.robocode.dev/
The Book of Robocode (authored by Flemming NΓΈrnberg Larsen) unifies knowledge previously scattered across RoboWiki.net, forums, and historical sources. It focuses on concepts, strategy patterns, math, and reasoning. Code examples appear when they clarify principles; otherwise, pseudocode is preferred. The goal is to teach ideas that transfer between classic Java-based Robocode and Robocode Tank Royale.
- Author's Foreword
- What is Robocode?
- History (classic Robocode β Tank Royale)
- Your First Bot
- Bot Anatomy
- The Bot API
- Blocking vs Non-Blocking Movement
- Robot Properties File
- Your First Battle
- Coordinates and Angles
- Movement Constraints
- Bullet Physics
- Gun Heat & Cooling
- Wall Collisions
- Scoring Basics
- Radar Basics
- One-on-One Radar (Spinning, Perfect Locks)
- Melee Radar (Spinning & Corner Arc, Oldest Scanned, Gun Heat Lock)
- Simple Targeting (Head-On, Linear, Circular, Random Area)
- The Targeting Problem (Understanding the Challenge, Introducing Waves)
- Statistical Targeting (GuessFactor, Segmentation Visit Count Stats)
- Targeting Tactics (Fire Power & Timing, Saving Gun Data)
- Basic Movement (Fundamentals, Wall Avoidance, Distancing)
- Simple Evasion (Random, Stop and Go, Oscillator)
- Strategic Movement (Anti-Gravity)
- Advanced Evasion (Gun Heat Waves & Bullet Shadows, Wave Surfing)
- Energy as a Resource
- Bullet Power Selection Strategy
- Scoring Systems & Battle Types
- Competition Formats & Rankings
- Glossary
- Quick Reference (Formulas)
- Wall of Fame
- Node.js 14+ (or newer)
- npm (or yarn)
- Clone
git clone https://github.com/robocode-dev/book-of-robocode.git cd book-of-robocode - Install
npm install
- Develop (serve locally with hot reload)
Default: http://localhost:5173/
npm run dev
Note: Production builds (
npm run build) are handled automatically by GitHub Actions when pushing tomain. You can preview a production build locally withnpm run previewafter building.
- VitePress (static site generator)
- Vue 3
- KaTeX (math rendering)
- Mermaid (diagrams)
- markdown-it (extended Markdown)
- GitHub Pages (hosting)
book-of-robocode/
βββ book/
β βββ .vitepress/
β β βββ config.js # VitePress configuration
β β βββ styles/ # Custom styling (palette, dark mode)
β βββ public/ # Static assets (logo, favicon)
β βββ images/ # SVG illustrations
β βββ introduction/ # Foreword, What is Robocode?, History
β βββ getting-started/ # First bot, Bot anatomy, API basics
β βββ physics/ # Coordinates, Movement, Bullets, Scoring
β βββ radar/ # Radar basics, 1v1 and Melee strategies
β βββ targeting/ # Simple to Statistical targeting systems
β βββ movement/ # Basic to Advanced evasion techniques
β βββ energy-and-scoring/ # Energy management, Scoring systems
β βββ appendices/ # Glossary, Quick Reference, Wall of Fame
β βββ index.md # Home page (VitePress landing)
βββ specs/ # Page generation specs, RoboWiki links
βββ package.json
βββ LICENSE-CODE # MIT License for code examples/config
βββ LICENSE-DOCS # CC BY-SA 4.0 for documentation
βββ ATTRIBUTION.md # Detailed author & contributor credits
βββ NOTICE.md # Source & license provenance notes
βββ README.md # This file
- Reading-oriented dark theme
- Math formulas via KaTeX (
E = m c^2etc.) - Multi-language & pseudocode examples
- Mobile-friendly responsive layout
- Built-in search & structured sidebar navigation
We welcome contributions! See CONTRIBUTING.md for:
- How to report issues and suggest improvements
- Local development setup
- Writing guidelines
- AI-assisted workflow with GitHub Copilot skills
- Pull request process
Please read our Code of Conduct before contributing.
Dual licensed:
Creative Commons AttributionβShareAlike 4.0 (CC BY-SA 4.0) https://creativecommons.org/licenses/by-sa/4.0/
MIT License https://opensource.org/licenses/MIT
This project draws on the collective effort of an informal Robocode community: developers, competitors, researchers, infrastructure maintainers (RoboRumble / LiteRumble), and documentation contributors.
- Mathew A. Nelson β Original creator of Robocode (2001β2005)
- Flemming NΓΈrnberg Larsen β Maintainer (2005βpresent); creator of Robocode Tank Royale; author of this book
- Pavel Savara β Major Robocode contributor (modularization, replay, refactoring)
- Albert Perez β Creator of RoboRumble (RoboRumble)
- Julian Kent (Skilgannon) β Creator/maintainer of LiteRumble; host of RoboWiki.net (LiteRumble)
- RoboWiki contributors β Foundational research & analysis
- All bot authors, tournament organizers, and knowledge sharers
- Official Robocode & Tank Royale documentation
- RoboWiki analytical articles (CC BY-SA 3.0)
- Historic forum discussions
- Long-term competitive meta observations
See ATTRIBUTION.md and NOTICE.md for detailed credits and licensing provenance.
- Mathew A. Nelson β Original creator (2001β2005)
- Flemming NΓΈrnberg Larsen β Maintainer & primary author (2005βpresent)
- Additional notable contributors: Pavel Savara, Albert Perez, Julian Kent (Skilgannon) β plus others listed in
ATTRIBUTION.md.
"Robocode community" informally refers to everyone engaged in engine development, bot design, competitions, infrastructure (RoboRumble / LiteRumble), documentation, and knowledge sharing. The motto is an adopted, inspirational phrase β not an official historical slogan β and is intentionally placed under the title for visibility.
(Already shown at top; not repeated.)