A simple version of the popular Bloons TD game by Ninja Kiwi, built from scratch in Python using Pygame.
In this tower defense game, you must defend your territory against waves of colorful balloons by placing and upgrading towers along a predefined path. Features include multiple tower types, tiered balloon enemies, customizable rounds, and a looping soundtrack for immersion.
-
Multiple Tower Types
- Dart Tower (fast, low damage)
- Sniper Tower (high damage, long range)
- Tac Tower (fast, short radius)
- Super Tower (rapid-fire, extreme range)
(Defined intowers.py)
-
Varied Balloon Enemies
- Red, Blue, Green, Yellow, Pink balloons with increasing health and speed
- MOAB boss that splits into smaller balloons upon destruction
(Implemented inballoon.py)
-
Wave-Based Gameplay
- 20 configurable rounds with spawn delays and mixed balloon types
- Bonus income awarded at the end of each round
(Configured inrounds.py)
-
Dynamic Path & Map
- Waypoints loaded from
equidistant_points.csvfor easy map customization - Valid tower placements determined at runtime
(Logic intrack.py)
- Waypoints loaded from
-
Interactive UI
- Click buttons or press SPACE to start rounds
- Toggle game speed between 1× and 2×
- Place, upgrade, or sell towers via on-screen controls
(Seeuser_interface.py)
-
Visuals & Audio
- Sprite assets in:
balloon_images/monkey_images/background_images/
- Looping main theme in
soundtrack/SpotiDownloader.com - Main Theme - Tim Haywood.mp3
- Sprite assets in:
-
Website & Documentation
- Static site source (for GitHub Pages) in
docs/
- Static site source (for GitHub Pages) in
-
Clone the repository
git clone https://github.com/olincollege/BalloonTD0.git cd BalloonTD0 -
Install dependencies
pip install -r requirements.txt
-
Verify Assets Ensure the following asset directories and files are present:
equidistant_points.csvbackground_images/Background.webpballoon_images/*.pngmonkey_images/*.pngsoundtrack/SpotiDownloader.com - Main Theme - Tim Haywood.mp3
Run the game:
python main.py- Start Round: Click the Play button or press SPACE
- Toggle Speed: Click Play during a round (switches between 1× and 2×)
- Place Tower: Click a tower button, then click a valid map location
- Upgrade/Sell Tower: Click an existing tower, then click Upgrade or Sell
- Restart/Quit: After game over, press R to restart or Q to quit
- Built with Pygame
- Original concept and map by Ninja Kiwi (Bloons TD)
- Main theme by Tim Haywood
Enjoy defending against the balloon onslaught!