Skip to content
vikash.kumar
← All projects
gameApr 2026 — May 2026Solo developer

Iron Fury

An Android action shooter written in Kotlin directly on the Canvas API — custom game loop, collision, and effects with zero engine dependencies.

KotlinAndroid CanvasCustom game loop

Overview

Iron Fury is an action shooter for Android and the project where I built my first complete game loop from scratch: Kotlin, the raw Canvas API, and nothing else. It established the engine-free architecture that later powered Sky Legends.

Technical highlights

  • Hand-rolled game loop — fixed-timestep update with render interpolation, running on a dedicated thread against a SurfaceView.
  • Canvas rendering discipline — careful Paint reuse and draw-order batching to stay inside the frame budget on low-end devices.
  • Zero dependencies — no engine, no framework; the APK is essentially the game code and its assets.

Lessons that carried forward

Iron Fury surfaced the classic shared-Paint-state bug — one system mutating a Paint object leaking visual state into another's draw pass — which shaped how all my later Canvas games isolate rendering state.

What I'd do differently

Full case study in progress — being expanded with architecture notes and gameplay captures.