Tank battle game with custom AI scripting language
Tank battle game featuring a custom domain-specific scripting language for programming AI tank behavior. Originally Python, rewritten in Java (JavaFX), now being ported to TypeScript/React/Canvas with a genetic algorithm that evolves tank strategies. Full game engine with custom interpreted language.
Custom DSL with lexer, recursive descent parser, and runtime interpreter
Tank customization: armor, chassis, engine, weapons, scanners
Multiple projectile types: missiles, mines with configurable behaviors
Procedural arena generation with varied terrain
Genetic algorithm evolves tank AI strategies across generations
Replay recording system for post-battle analysis
Game engine runs at 50 FPS with sprite-based 2D rendering. DSL source code is lexed into tokens, parsed into AST via recursive descent (supports conditionals, loops, functions), then interpreted at runtime to drive tank decisions each tick. Java version uses JavaFX for rendering. TypeScript port uses HTML5 Canvas with React UI wrapper. GA breeds strategy parameters by evaluating combat performance.