Projects

DustDrift

Hero defense game with turn-based tactical combat: waves of enemies on an arena, weapons crafted between waves, for iPhone, iPad, and Mac.

25 September 2025
GameiOSmacOS

DustDrift — 2D hero defense game with turn-based tactical combat. Waves of enemies attack an arena and the player defends it: move, aim and shoot on your turn, then the enemies take theirs. A timer runs between waves, so there is time to craft better weapons and extra gear. Every round brings stronger enemies, and after a set of rounds the game moves on to a new map. Pre-order live on the App Store for iPhone, iPad, and Mac, arriving December 10, 2026.

Technical info:

  • Written in Swift, SpriteKit — no SwiftUI, no .sks scene files (~330 source files across the shared game code, iOS, and Mac targets)
  • Single shared codebase for iPhone/iPad and native Mac targets — a thin GameScene orchestrator delegates to per-scene subsystems (WorldStreamer, InputDispatcher, PortalCoordinator, PhysicsContactRouter) and manager classes (camera, UI, lighting, hints)
  • Arena mode — round-based waves driven by a JSON config (ArenaRounds.json) across three JSON-authored arena maps, with a timer between waves and a new map after each set of rounds
  • Turn-based combat on a grid — four HeldItem/CombatTool weapons (blaster, heavy rifle, gravity gun, cutter), shield and overwatch, hit and crit rolls drawn from marble bags, and enemy AI (RoboSpider, Sentinel)
  • Crafting, inventory, and equipment systems with a 3D-printer progression loop, plus destructible/mineable rock and ice formations
  • Procedural, asset-free audio — an AVAudioEngine PCM synth engine with per-biome music moods and a named melody pool, no bundled audio files
  • Procedural rock/terrain texture generation and shader-based ambient overlays (ShaderLib)
  • Touch controls via GCVirtualController, plus keyboard and game controller support
  • Framework-agnostic core (Sources/Core) shared between the Xcode app and an experimental SwiftPM + Raylib port that runs natively on Linux
  • Swift Testing framework for unit tests, plus an RPC-driven regression suite exercising crafting/inventory/combat end-to-end; Xcode Cloud CI
DustDrift — turn-based combat against enemy waves
1 / 6