All projects

Case study · Solo project

Tile Turfer

Jan 2026 · Unity 6 · URP 2D · C#

A top-down turf-war arena shooter in the Splatoon mould. You and the AI paint the floor your colour, and the share of the map you hold is the single number that governs everything: the difficulty, your own fire rate, and the attacks you unlock.

Tile Turfer: blue and red teams battling to claim tiles across a procedurally generated cave map, with a minimap and a fire rate power up
  • RoleSolo developer
  • EngineUnity 6 · URP 2D
  • GenreTurf-war shooter
  • NavRuntime 2D NavMesh

Overview

Territory is the whole game

Tile Turfer takes the central idea of Splatoon, that winning is about ground covered rather than kills, and builds a tight single-player arena around it. Every floor tile can be painted your colour or an enemy's, and the game constantly measures what fraction of the map each side controls.

What makes it hang together is where that measurement is wired. Instead of a difficulty slider or a wave timer, one turf-percentage value feeds the entire game at once: it sets how fast you fire, which attack patterns you have unlocked, how many enemies spawn, and how hard those enemies push. Winning territory literally raises the stakes.

Tile Turfer mid-match: painted floor tiles across a cave arena with the player and enemies fighting for control
Ownership is stored as the tint of each floor tile, so painting the map is writing to that grid.

Generation

Procedural caves with a runtime NavMesh

Every arena is generated from scratch. A cellular-automata pass fills the grid at random, then smooths it into cave-like walls; a flood fill finds the largest connected floor region and fills in every disconnected pocket, so the playable space is guaranteed to be a single reachable area. A safe zone is cleared at the centre for the spawn.

The demanding part is that enemies still need to path through this freshly invented geometry. Once the map is drawn, the game bakes a 2D NavMesh at runtime over the new layout, so the AI can navigate a level that did not exist a frame earlier. That runtime bake on procedural 2D terrain is the piece I am most pleased with.

Tile Turfer: a different procedurally generated cave layout showing how each arena is uniquely shaped
No two arenas share a shape. The walls, pockets and open space are generated per run.

Enemy AI

Enemies that see, remember and hunt your turf

The enemy AI runs a finite state machine, moving between spawning, roaming, chasing a remembered position and chasing a visible target, with real line-of-sight checks against the walls. It also has memory: after losing sight of you it keeps hunting your last known position for a few seconds before giving up, so breaking line of sight buys time rather than instant safety.

When roaming, enemies do not wander at random. They score nearby tiles and prefer to move toward ground you own, actively seeking out and overwriting your territory rather than drifting. That turns the paint mechanic into a two-way fight instead of a passive objective.

Difficulty

One metric, wired into everything

The turf percentage is the spine of the whole design. As you gain ground, your fire rate speeds up and you unlock wider attack patterns at 25%, 50% and 75%. So do the enemies, and the spawn cap climbs from a handful toward the low dozens while the spawn interval tightens.

The result is a self-balancing curve expressed through a single number: the better you do, the harder the game pushes back, with no hand-authored difficulty stages. It is the kind of system where one value doing a lot of work keeps the whole game coherent.

Tile Turfer late in a match: heavy territory control with dense enemy presence and upgraded attack patterns
Dominate the map and the game answers with more enemies and heavier fire.

Under the hood

By the numbers

  • Unity 6, URP 2D, with a 2D NavMesh integration for pathfinding on generated maps.
  • 60 x 60 tile arenas, generated with cellular automata plus flood-fill region cleanup.
  • Enemy cap scales 3 to 40, and the spawn interval tightens from 4s to 0.5s as territory shifts.
  • Attack patterns unlock at 25, 50 and 75% territory, for the player and the AI alike.
  • Documented in a full technical report covering the generation and AI systems.