Games · Beginner
Starshard: A 2D Arcade Game
Build a playable space shooter with sprites, collisions, enemy waves, score, sound, and a game-over screen.
Beginner8-14 hoursGDScript
Starshard is a classic top-down space shooter built entirely in Godot 4 using GDScript. You will create a player ship that fires bullets, face spawning waves of enemies, track a live score, and handle game-over logic with a restart screen. The project covers every foundational layer of a 2D game: scene composition, physics collisions, signals, and audio, making it the ideal first complete game to ship.
What you build
- Player ship moves with keyboard input and fires projectiles on demand
- Enemy ships spawn in configurable waves and fly toward the player
- Collision detection destroys enemies and ends the game if the player is hit
- Score counter increments per kill and persists to a game-over screen
- Sound effects play on shoot, explosion, and game-over events
- Animated sprites using sprite sheets for player, enemies, and explosions
- Restart button returns the player to the title scene without reloading the engine
What it teaches
- Godot 4 scene and node hierarchy: composing reusable scenes with instancing
- GDScript fundamentals: variables, functions, signals, and the physics process loop
- 2D collision detection using Area2D, CollisionShape2D, and signal callbacks
- Game state management with an AutoLoad singleton for score and restart logic
- AudioStreamPlayer and resource preloading for in-game sound effects
- Sprite animation with AnimatedSprite2D and sprite sheet frame configuration
How it works
- 1
Player Input
- Keyboard arrows / WASD move ship
- Space bar fires bullet
- 2
Game Objects
- Player scene (CharacterBody2D)
- Bullet scene (Area2D)
- Enemy scene (Area2D)
- 3
Collision Signals
- Bullet hits enemy: award score, queue_free both
- Enemy hits player: trigger game-over state
- 4
Score + State
- AutoLoad singleton tracks score
- Timer spawns next enemy wave
- 5
Game Over
- Scene switch to GameOver screen
- Display score, restart button
Sign in to open the build guide
Free account. Get the step-by-step build and every resource link.
Take it further
- Add a shield power-up that drops from enemies and grants the player one extra hit before game over.
- Implement a high-score leaderboard stored in a local JSON file using FileAccess.
- Introduce boss waves every five rounds with a multi-phase enemy that has a health bar.


