Version 0.2 (Alpha)
A Soviet-themed tower defense game built with Godot 4.5, where you defend the glorious motherland against waves of capitalist invaders!
- Guard Tower - Basic projectile tower with reliable damage
- Propaganda Speaker - Slows enemies with ideological broadcasts
- Bureaucratic Office - Deals continuous area damage to all nearby enemies
- Missile Station - Heavy damage, long range, slow fire rate
- Businessman - Basic capitalist unit
- Tourist - Fast but weak
- Oligarch - Wealthy and resilient
- CEO Boss - Powerful boss enemy (500 HP!)
- 6 Progressive Waves - Increasing difficulty with mixed enemy types
- Economy System - Earn rubles by eliminating enemies, spend to build towers
- Lives System - Start with 20 lives, lose one per enemy that reaches the end
- Manual Wave Start - Strategic control over when to face the next challenge
- Tower Placement Validation - Smart placement system prevents overlaps
- Godot Engine: 4.5
- Language: GDScript
- Target Platform: Android (optimized for mobile)
- Rendering: Mobile renderer with pixel-perfect settings
scenes/
โโโ main/ # Main game scene, menu
โโโ towers/ # 4 tower type scenes
โโโ enemies/ # 4 enemy type scenes
โโโ projectiles/ # Bullet/missile projectiles
โโโ ui/ # Game UI and HUD
scripts/
โโโ autoloads/ # Global managers (GameManager, EventBus, etc.)
โโโ managers/ # Game systems (WaveManager, EconomyManager, etc.)
โโโ towers/ # Tower behavior scripts
โโโ enemies/ # Enemy AI and pathfinding
โโโ projectiles/ # Projectile movement and collision
addons/
โโโ phantom_camera/ # Camera management
โโโ dialogic/ # Dialogue system (for future story mode)
- Singleton Pattern - Global managers via Godot's autoload system
- EventBus Pattern - Decoupled communication between systems
- Scene Inheritance - BaseTower/BaseEnemy classes for shared functionality
- Signal-Based Design - Event-driven tower targeting and wave management
- Godot 4.5 or later
- Android device/emulator (optional, for mobile testing)
- Clone the repository
- Open the project in Godot Engine 4.5+
- Press F5 to run the game
- Click tower buttons to select, click on map to place
- Click START WAVE to begin
- Tap/Click - Select tower type from UI
- Tap on Map - Show placement preview
- Tap Again - Lock position
- Hold (0.6s) - Confirm and build tower (with progress circle)
- Release Early - Cancel placement
- Drag - Reposition preview before locking
- UI Buttons - Tower selection, wave start, game speed control
- Select Tower: Tap a tower button in the UI (costs rubles)
- Position Tower: Tap on the map to show placement preview (green = valid, red = invalid)
- Lock Position: Tap again to lock the tower location
- Confirm Build: Hold down for 0.6 seconds - watch the progress circle fill up!
- Start Wave: Tap the START WAVE button when ready
- Defend: Towers automatically target and shoot enemies
- Earn Money: Gain rubles for each enemy eliminated
- Survive: Don't let too many enemies reach the end (you have 20 lives)
- Progress: Complete all 6 waves to achieve victory!
- Propaganda Speakers slow enemies, giving other towers more time
- Bureaucratic Offices excel against grouped enemies
- Missile Stations are expensive but essential for high-HP bosses
- Guard Towers provide cost-effective coverage for early waves
| Tower | Cost | Damage | Range | Special |
|---|---|---|---|---|
| Guard Tower | 100โฝ | 25 | 200 | Reliable DPS |
| Propaganda Speaker | 150โฝ | 0 | 180 | 50% slow for 3s |
| Bureaucratic Office | 200โฝ | 15/tick | 150 | Hits all in range |
| Missile Station | 300โฝ | 100 | 250 | Long range, slow |
- Wave 1: 5 Businessmen (tutorial wave)
- Wave 2: 8 Businessmen (faster spawns)
- Wave 3: 5 Businessmen + 3 Tourists (mixed)
- Wave 4: 10 Tourists (speed test)
- Wave 5: 6 Businessmen + 6 Tourists (12 enemies!)
- Wave 6: 1 CEO Boss (500 HP challenge)
Custom Pixel Art Sprites created with procedural generation:
- Guard Tower (32x32) - Soviet watchtower with brown wood, red roof, and red star
- Propaganda Speaker (32x32) - Red loudspeaker on gray pole with yellow sound waves
- Bureaucratic Office (32x32) - Gray building with dark windows and flying paperwork
- Missile Station (40x40) - Red rocket on launch platform with yellow nose cone
- Businessman (16x24) - Dark blue suit, red tie, black hat, briefcase with $ sign
- Tourist (16x24) - Yellow sun hat, bright Hawaiian shirt, camera, white sneakers
- CEO Boss (24x32) - Gold crown, pinstripe suit, gold tie, cigar with smoke
- Projectiles: Simple colored dots (yellow bullets, red missiles)
- UI: Functional buttons with text labels
- Effects: Basic visual feedback
Future: Animated sprites, particle effects, and polished UI
โ Core tower defense mechanics โ All 4 tower types functional โ 6-wave progression system โ Economy and lives systems โ Tower placement validation โ Enemy pathfinding โ Collision detection โ Wave completion detection โ Pixel art sprites for towers and enemies
- Visual assets (basic pixel art sprites)
- Mobile touch controls (hold-to-confirm placement) โจ v0.2
- Sprite animations (attack, walk cycles)
- Audio (music, sound effects, voice lines)
- Tower upgrade system
- Multiple levels
- Save/load system
- Settings menu
- Particle effects
- Victory/defeat screens
- Localization (Russian translation)
Mobile-First Touch Controls Update
New Features:
- โจ Intuitive Tower Placement: Preview appears at first tap location, no more dragging from corner
- โฑ๏ธ Hold-to-Confirm Mechanic: Hold for 0.6s with visual progress circle to confirm tower placement
- ๐จ Visual Feedback Effects:
- Circular progress indicator that fills during hold
- Tower pulsing and range brightness effects while holding
- Satisfying burst animation on successful placement
- ๐ฏ Smart Cancellation: Auto-cancels if finger drags away or releases early
Bug Fixes & Improvements:
- ๐ Fixed duplicate resource state management (GameManager/EconomyManager desync)
- ๐ Fixed memory leaks in PropagandaSpeaker and BureaucraticOffice visual effects
- ๐ Fixed null reference bug in Bullet explosion spawning
- ๐ Fixed tower preview memory leak using immediate cleanup
- ๐ Resolved duplicate GameUI.gd files
- ๐ง Centralized all cross-system signals through EventBus
- ๐งน Added proper cleanup in BaseEnemy._exit_tree()
- ๐ Renamed 'urange' to 'tower_range' for better code clarity
Code Quality:
- Major architecture refactoring for consistency
- Improved signal architecture adherence to EventBus pattern
- Better memory management throughout tower and enemy systems
Initial Release
- Core tower defense mechanics
- 4 tower types, 4 enemy types
- 6-wave progression system
- Basic pixel art sprites
- Economy and lives systems
- Path-based enemy movement
This project is open source and available for educational purposes.
This is a personal learning project, but feedback and suggestions are welcome!
Defend the motherland, comrade! ๐ฉ

