A 2D endless runner game inspired by Flappy Bird, built with Godot 4 for educational purposes.
This project was created as part of my game development studies, following the comprehensive roadmap from the Udemy course: Jumpstart to 2D Game Development: Godot 4 for Beginners
The main goal is to learn fundamental game development concepts and Godot 4 engine features through hands-on practice.
Tappy Plane is a simple yet engaging game where players control a plane that must navigate through pipes by tapping/pressing space to "fly" upward. The challenge is to pass through as many pipe gaps as possible without crashing.
- Tap/Space to make the plane fly upward
- Gravity constantly pulls the plane down
- Avoid hitting pipes or the ground
- Score points by passing through pipe gaps
- Beat your high score and try again!
- Scene Management: Clean separation between main menu and game scenes
- Signal System: Decoupled communication between game objects
- Singleton Pattern: Global managers for game state, scoring, and scene transitions
- Component-Based Design: Each game object has specific responsibilities
- Gravity-based plane physics
- Input-responsive flight mechanics
- Smooth collision detection
- Procedural pipe spawning
- Random gap positioning
- Automatic cleanup system
- Real-time score tracking
- High score persistence
- Score validation and formatting
- Engine sound effects
- Scoring audio feedback
- Game over sound cues
- Responsive game interface
- Pause/unpause functionality
- Game state transitions
- Observer Pattern (SignalHub): Event-driven communication
- Singleton Pattern (GameManager, ScoreManager): Global state management
- Component Pattern: Modular, maintainable code structure
tappy_plane/
├── assets/ # Game assets (sprites, audio, fonts)
├── globals/ # Singleton managers and signal hub
├── scenes/ # Game scenes and components
│ ├── main/ # Main menu scene
│ ├── game/ # Core gameplay scene
│ ├── tappy_plane/ # Player character
│ ├── pipes/ # Obstacle system
│ ├── game_ui/ # User interface
│ └── ... # Other components
├── notes/ # Documentation and learning notes
└── resources/ # Godot resource files
Through this project, I gained hands-on experience with:
- Godot 4 Engine: Scene system, nodes, and scripting
- Game Physics: Gravity, collision detection, and movement
- Software Architecture: Clean code principles and design patterns
- State Management: Game states and scene transitions
- Audio Programming: Sound integration and management
- UI Development: Responsive game interfaces
- Resource Management: Asset organization and optimization
All assets used in this project are 100% free to use and include:
- Sprite graphics for planes, pipes, and backgrounds
- Sound effects for gameplay interactions
- Custom fonts for UI elements
Note: This is an educational project created for learning purposes.
- Install Godot 4.5+
- Clone this repository
- Open the project in Godot
- Press F5 to run the game
This project demonstrates:
- Clean, maintainable code architecture
- Proper separation of concerns
- Event-driven programming
- Resource management best practices
- Game development workflow in Godot
This project serves as a foundation for understanding game development concepts and can be extended with additional features like power-ups, different difficulty levels, or multiplayer functionality.
Hi! I'm João Vítor, I'm just starting to learn about game developing. I'm passionate about creating engaging experiences and learning new technologies. This project is part of my journey to master 2D game development using Godot Engine. Feel free to reach out or check out my other projects!