Developed using Godot 4.4
Overview
SpaceAce is an engaging 2D space shooter game developed using the Godot engine. Players navigate through waves of enemies, utilizing an array of power-ups and upgrades to enhance their gameplay experience. The objective revolves around scoring as high as possible while avoiding enemy attacks and defeating various forms of adversaries, including classic flying saucers and bombers.
This project showcases advanced techniques in game development, including object-oriented programming, signal management for event handling, and dynamic scene transitions. The game structure emphasizes modularity and scalability.
Features
- Modular Enemy Waves: The game uses predefined enemy waves, allowing for diverse gameplay and increased difficulty as players progress.
- Power-ups: Collectible items that provide players with health boosts and shield strengthening, ensuring dynamic gameplay.
- Score Management: Tracks player performance in real-time with a system that updates scores and high scores effectively.
- Signal Management: Implements a custom signal hub for effective communication among game elements, facilitating interaction across the game’s components.
- Efficient Game Loop: Handles user inputs seamlessly while managing enemy spawn timers and player interactions.
Key Classes and Components
- EnemyWave: A resource for defining enemy properties such as speed, gap, and number.
- GameManager: Central to managing scene transitions and input handling.
- WaveManager: Responsible for generating and managing the gameplay flow of enemy waves.
- Player: Contains movement mechanics, shooting logic, and collision effects with power-ups and projectiles.
- PowerUp: Facilitates the creation and management of various power-up types that enhance player capabilities.
- HealthBar: A visual representation of the player’s health, with signaling for when a player dies.
Skills
- GDScript Programming: The code is written in GDScript, a dynamic language specifically designed for game development in Godot.
- Object-Oriented Design: The use of classes, inheritance, and modular design reflects efficient programming practices that enhance code reusability.
- Signal-Based Communication: Mastery of Godot’s built-in signaling allows for effective decoupling of game components, simplifying event-driven programming.
- Scene Management: Handling scene changes and UI components demonstrates an understanding of state management within applications.
- Input Handling: Implements custom input actions and bindings to create a responsive gameplay experience.


