Projects

Wavefall

Hero defense game with turn-based tactical combat: a rogue AI sends robots through a portal, and you hold the arena alone. For iPhone, iPad, and Mac.

25 September 2025
GameiOSmacOS

Wavefall — hero defense game with turn-based tactical combat, drawn in a dimetric view with rigged 3D characters and Blender-modeled 3D environments. An AI has slipped out of control and sends its robots through a portal in waves, and the player holds the arena alone. Between rounds there is a minute to mine resources and print a new weapon on the 3D printer. Every cleared map opens the portal to the next one, and the Spider Tank waits on the last. Pre-order live on the App Store for iPhone, iPad, and Mac, arriving December 10, 2026.

Technical info:

  • Written in Swift on SpriteKit and SceneKit — no SwiftUI, no .sks scene files (~1,000 source files across the shared core, the iOS and Mac app, and the Raylib port)
  • Hybrid 2D/3D rendering — rigged 3D characters (Operative, Robo-Spider, Sentinel, Spider Tank) play 70+ USDZ animation clips, rendered live through SCNRenderer into Metal textures inside the SpriteKit scene; props, terrain, walls and decorations are modeled in Blender and rendered into dimetric sprites by Python scripts
  • Single shared codebase for iPhone/iPad and native Mac targets — a thin GameScene orchestrator delegates to per-scene subsystems (WorldStreamer, InputDispatcher, PortalCoordinator, GridMovementController) and manager classes (camera, UI, lighting, hints)
  • Arena mode — 15 rounds of multi-wave fights across four JSON-authored maps, driven by ArenaRounds.json, with a timed intermission between rounds and a Spider Tank boss on the last map
  • Turn-based combat on a grid — blaster, heavy rifle, gravity gun, cyber cutter, grenades, energy shield and a reprogram chip; cover, overwatch, destructible rocks and barrels; hit and crit rolls drawn from marble bags; full-turn undo from state snapshots; enemy AI that relocates and holds its best range
  • Crafting, inventory, and equipment systems with a 3D-printer progression loop and mineable resource rocks
  • Dynamic lighting for dark maps, lamp shadows and an optional post-processing pass (ShaderLib)
  • AVAudioEngine audio — a licensed soundtrack plus procedurally synthesized sound effects, no bundled effect files
  • StoreKit 2 free-to-start model with a Full Version unlock, earlier buyers recognized through AppTransaction; Game Center achievements and leaderboards
  • English and Ukrainian localization from JSON string tables in the shared core, switchable at runtime
  • Touch controls with tap-to-move, keyboard and full mouse control on Mac, plus 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 suite (~350 test files) and Xcode Cloud CI; an agent channel and MCP server let AI agents play the game, headless arena runs on parallel hosts measure balance, and App Store screenshots and preview videos are recorded from scripted scenes
Wavefall — hold the arena
1 / 6