A simple yet addictive falling blocks arcade game built with Godot 4
Dodge the falling blocks, survive as long as you can, and beat your high score!
Falling Blocks is a classic arcade-style game where you control a blue square trying to avoid an endless stream of red falling blocks. The game progressively gets harder as you survive longer, with blocks falling faster and spawning more frequently.
- โจ Simple but engaging gameplay - Easy to learn, hard to master
- ๐ Progressive difficulty - Game gets harder the longer you survive (4 difficulty presets)
- ๐ Advanced scoring system - Score multipliers and combo bonuses
- โฑ๏ธ Survival timer - Track how long you've lasted
- ๐จ Clean, minimalist design - Focus on pure gameplay
- ๐พ Persistent data - High scores, achievements, and statistics saved automatically
- โธ๏ธ Pause functionality - Take a break when needed
- ๐ Quick restart - Jump back in instantly after game over
- ๐ก๏ธ Shield - Temporary invincibility (Cyan)
- โฐ Slow Motion - Slows falling blocks (Yellow)
- ๐ฐ 2x Score Multiplier - Double your points (Gold)
- ๐ Shrink - Reduces player size for easier dodging (Magenta)
- ๐ฅ Combo system - Build combos for massive score multipliers
- ๐ Dynamic multipliers - Up to 10x multiplier at 100+ combo
- ๐ฏ Skill-based scoring - Rewards consistent dodging
- ๐ 17 Achievements - Unlock milestones as you play
- ๐ Lifetime statistics - Track total games, time played, best scores
- ๐ Per-game stats - See your performance after each run
- โ๏ธ Settings menu - Adjust music/SFX volume, fullscreen, difficulty
- ๐ต Audio system - Sound effects and music support
- ๐ฅ๏ธ Debug mode - Press F3 for performance overlay
- ๐ฅ Screen shake - Impact feedback on collisions
- โจ Visual effects - Particle systems and animations
- ๐ฎ Game feel - Polished with smooth animations and responsive controls
| Action | Keys |
|---|---|
| Move Left | โ Arrow or A |
| Move Right | โ Arrow or D |
| Pause | P or ESC |
| Restart | R (after game over) |
| Start Game | Space or Enter |
| Debug Overlay | F3 |
| Help Screen | H (from menu) |
| Achievements | A (from menu) |
| Statistics | S (from menu) |
| Settings | O (from menu) |
- Dodge falling red blocks by moving left and right
- Survive as long as possible to increase your score
- Each block that passes you safely awards points
- Build combos by dodging consecutive blocks for score multipliers
- Collect power-ups (colored squares) for temporary abilities
- Avoid collisions - hitting a block ends the game (unless you have a shield!)
- The game gets progressively harder with:
- Faster falling blocks
- More frequent spawns
- Higher difficulty levels every 10 seconds
- Adjustable difficulty presets (Easy, Normal, Hard, Extreme)
- Godot Engine 4.3+ installed on your system
-
Clone the repository
git clone https://github.com/codeforgood-org/godot-falling-blocks.git cd godot-falling-blocks -
Open in Godot
- Launch Godot Engine
- Click "Import"
- Navigate to the cloned directory
- Select the
project.godotfile - Click "Import & Edit"
-
Run the game
- Press F5 or click the "Run Project" button in Godot
- Alternatively, run from command line:
godot --path . scenes/main/main.tscn
- Open the project in Godot
- Go to Project โ Export
- Add export presets for your target platforms
- Click "Export All" or export individually
- Go to Project โ Export
- Add an HTML5 export preset
- Export to a directory
- Host the exported files on a web server
godot-falling-blocks/
โโโ assets/ # Game assets
โ โโโ fonts/ # Font files
โ โโโ sounds/ # Audio files (SFX, music)
โ โโโ sprites/ # Image and sprite files
โ โโโ themes/ # UI themes
โโโ scenes/ # Godot scene files
โ โโโ block/ # Falling block scene
โ โโโ effects/ # Visual effects (particles)
โ โโโ main/ # Main game scene
โ โโโ player/ # Player character scene
โ โโโ ui/ # UI scenes (menus, HUD)
โโโ scripts/ # GDScript files
โ โโโ block.gd
โ โโโ collision_particles.gd
โ โโโ game_manager.gd
โ โโโ game_over_screen.gd
โ โโโ hud.gd
โ โโโ main.gd
โ โโโ pause_menu.gd
โ โโโ player.gd
โ โโโ start_menu.gd
โโโ .editorconfig # Code style configuration
โโโ .gitignore # Git ignore rules
โโโ CHANGELOG.md # Version history
โโโ CONTRIBUTING.md # Contribution guidelines
โโโ icon.svg # Project icon
โโโ LICENSE # MIT License
โโโ project.godot # Godot project configuration
โโโ README.md # This file
-
Main Game Controller (
main.gd)- Manages game state (menu, playing, game over, paused)
- Handles spawning and difficulty scaling
- Coordinates between all systems
-
Player System (
player.gd)- Input handling
- Movement and boundary constraints
- Collision detection
-
Block System (
block.gd)- Falling behavior
- Difficulty scaling
- Auto-cleanup when off-screen
-
UI System
- Start menu with instructions
- HUD showing score, time, level
- Game over screen with stats
- Pause overlay
-
Score & Difficulty
- Points awarded for dodging blocks
- Difficulty increases every 10 seconds
- Progressive speed and spawn rate scaling
- Persistent high score tracking
This project follows the Godot GDScript style guide.
Key conventions:
- Use snake_case for functions and variables
- Use PascalCase for class names
- Document functions with docstrings
- Keep functions small and focused
- Use type hints where possible
- Create a new branch for your feature
- Implement your changes following the coding standards
- Test thoroughly in the Godot editor
- Submit a pull request with a clear description
See CONTRIBUTING.md for detailed guidelines.
- Sound effects and background music
- Power-ups (slow motion, shield, etc.)
- Different block types and patterns
- Visual effects and screen shake
- Leaderboard system
- Multiple difficulty modes
- Custom skins and themes
- Mobile touch controls
- Gamepad support
- None currently reported
Found a bug? Please open an issue!
- Target FPS: 60
- Minimum System Requirements:
- OS: Windows 7+, macOS 10.12+, Linux (any modern distro)
- RAM: 1 GB
- Graphics: OpenGL 3.3 compatible
Contributions are welcome! Whether it's:
- ๐ Bug fixes
- โจ New features
- ๐ Documentation improvements
- ๐จ Art and audio assets
- ๐ Translations
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Godot Engine
- Created by Dang Linh Anh
- Inspired by classic arcade falling block games
- GitHub Issues: Report bugs or request features
- Discussions: Join the conversation
Made with โค๏ธ using Godot Engine
Play Now โข Report Bug โข Request Feature