James Liu

3D stealth / growth game

PolyGone

A discarded low-poly character steals polygons from NPCs to evolve into the star of the game—without getting caught.

Close-up of PolyGone's stylized low-poly protagonist
Focus

Gameplay, AI & combat systems

Tools & methods

Unity · C# · Game AI · Ludum Dare 56

Project

3D stealth / growth game

Growth becomes the stealth objective.

Steal polygons to turn a forgotten low-poly character into the protagonist. Progress appears directly in the character’s mesh.

Growth loopStealth pays off in polygons
  1. ApproachGet behind an NPCChoose a quiet route
  2. StealTake polygonsFill the polygon meter
  3. EvolveUpgrade the meshThree stages of visual growth
Find the next target and grow again
Implementation details

PolyGone was created for Ludum Dare 56. The player begins as a forgotten square with a face and an outsized ego: it wants enough visual fidelity to become the protagonist.

Progress comes from approaching NPCs from behind and stealing their polygons. Filling the polygon meter advances the character through three progressively richer meshes and turns visual evolution into the game's central reward.

Every movement choice changes how detectable you are.

NPCs combine sight, movement noise, and theft reactions. Running, walking, and crouching create different levels of risk.

NPC detectionMore than one way to get noticed
SightVisible in the coneView angle + unobstructed raycast
SoundMovement noiseRun > walk > crouch detection range
InteractionTheft reactionThe NPC reacts to stolen polygons
DETECTED
ResponsePursue & attackReclaim stolen polygons

These are separate detection paths, not conditions that must all pass together.

PolyGone protagonist stealing polygons while an NPC attacks
A theft turns a quiet approach into a close-range encounter.
PolyGone protagonist and NPC in a low-poly suburban street
The open street makes sight lines and escape routes immediately readable.
Implementation details

NPCs react to theft, vision, and sound. Running creates the largest detection radius, walking reduces it, and crouching enables a quieter approach. Raycasts and view-angle checks keep line-of-sight readable while still allowing the player to outmaneuver enemies.

  • Sight combines field-of-view and unobstructed raycast checks
  • Sound range responds to the player's movement state
  • Detected NPCs pursue, attack, and reclaim stolen polygons

A narrow parry window turns risk into faster growth.

A well-timed parry converts an enemy attack into a chance to grow faster.

Parry combatRisk → timing → reward
  1. ThreatNPC attacksShort parry window in the animation
  2. TimingParry connectsSuccessful collision during the window
  3. RewardStun + bonus polygonsInterrupt the attack and grow
Implementation details

The player can parry during a short segment of an NPC attack animation. A successful collision interrupts the enemy, stuns it, and awards extra polygons—rewarding players who choose timing and proximity over a purely evasive strategy.

Next projectDeath of a Deal