Skip to content
vikash.kumar
← All projects
gameJul 2026 — presentSolo developer

Sky Legends

A vertical scrolling shoot-'em-up for Android in the spirit of Sky Force, built from scratch in Kotlin on the Canvas API — no game engine.

KotlinAndroid CanvasCustom game loopSoundPool

Overview

Sky Legends is a vertical shoot-'em-up (SHMUP) for Android with an eight-sector campaign, multiple playable aircraft with distinct abilities, and adaptive audio that responds to combat intensity. The entire game runs on the raw Android Canvas API with a hand-rolled game loop — no Unity, no libGDX.

Why no engine?

Building on raw Canvas forces you to own every frame: fixed-timestep simulation, interpolated rendering, object pooling to avoid GC hitches, and explicit draw-call budgeting. For a bullet-dense SHMUP, that control is the difference between a smooth 60 fps and visible stutter on mid-range phones.

Technical highlights

  • Eight-sector campaign with escalating enemy patterns and boss encounters per sector.
  • Aircraft ability system — each playable aircraft carries a distinct active ability, pushing loadout choice into the core loop.
  • Adaptive audio — the mix reacts to combat intensity rather than looping a static track.
  • Object pooling for bullets, enemies, and particles to keep the garbage collector out of the frame budget.

What I'd do differently

Detailed post-mortem coming with the full case study — this write-up is being expanded with gameplay captures and performance traces.