A classic arcade-inspired Galaxians-style game written in Go using Ebitengine.
This project started with fully code-generated pixel sprites (no external image assets) and now includes a playable gameplay loop.
Project was just to test out the speed of the new GPT‑5.3‑Codex‑Spark. The full first iteration from plan to playable game in 8 steps tok less than 10 minutes in total with agent committing after each step.
- Code-generated sprites for:
- Player ship and explosions
- Multiple enemy types
- Bullets and effects
- Pixel glyphs for UI text
- Vertical arcade logical resolution (
224x256) - Playable loop with:
- Title screen
- Player movement and shooting
- Enemy formation movement
- Enemy dive attacks
- Enemy firing
- Collision detection and explosions
- Score and high-score HUD
- Lives, wave progression, game over, restart
- Animated starfield background
- Wave entry timing for enemy formations
- Per-enemy scoring and extra-life thresholds
- Automated tests for sprite generation and core gameplay behaviors
Left Arrow: Move leftRight Arrow: Move rightSpace: Start game / Shoot / Restart after game over
- Go 1.22+ (or compatible modern Go toolchain)
- macOS, Linux, or Windows with graphics support compatible with Ebitengine
go run .go test ./...go build ./...main.go- App entrypoint and window setupinternal/game/- Gameplay state, entities, update loop, rendering, combat, enemies, starfieldinternal/spritegen/- Code-based sprite generation and testsinternal/render/- Sprite registry/typesinternal/scene/- Shared text rendering helpers using generated glyph sprites
- Sprites are generated once at startup and reused.
- No external image files are required.
- On macOS you may see Metal deprecation warnings from Ebitengine internals during build/test; these are warnings, not failures.
- Authentic enemy flight patterns and escort logic
- Attract mode and demo loop
- Sound effects and music
- More accurate arcade scoring/timing
- Persistent high-score storage
