Worship

Worship is a multiplayer open-world roguelite with a cultist twist, inspired by Pikmin. Players serve a god and lead a group of followers through a procedurally generated world, performing rituals, gathering resources, and surviving challenges together.

What I worked on:

  • Built the network interactable system, dynamic UI, and async map generation systems.
  • Designed and developed the Blood & Ritual system — players can literally cast spells with blood!
  • Created gameplay systems for cultists and followers, covering animations, UI, networking, and controls.
  • Balanced and built gameplay encounters to keep things fun and challenging.

Blood & Ritual System:

In the game, players use blood as a magic resource — by sacrificing themselves, their followers, or collecting it during battles. I set up a system where players draw symbols to cast spells, using a smart point-cloud detection based on the P$ algorithm.


I explored different options for recognizing shapes and finally landed on the P$ algorithm after digging into this awesome research paper from the University of Washington.

Technical Challenges & Solutions:

Shape Recognition Steps I implemented:

  • Used BFS to find connected blood shapes in the scene.
  • Cleaned up overlapping blood objects to make calculations cleaner.
  • Handled tricky cases where players were inside or too close to a blood symbol.
  • Added virtual points between blood spots to help the recognition stay accurate.
  • Normalized and scaled the shapes so bigger spells hit harder!

How I made it run fast:

  • Optimized detection by introducing strike IDs to cut down on extra checks.
  • Added multithreading so the symbol system wouldn’t cause lag.
  • Moved recognition logic to the server to keep gameplay smooth for everyone.
  • Built prediction systems to make spell-casting feel super responsive.

Bonus tools I built:

  • A live 2D point visualizer to help see the drawn shapes during runtime.
  • A shape debugger that shows how well a drawing matches the intended spell.
  • A save/load system for players to keep their favorite symbols!

Technologies used:

  • Unity & C#
  • Addressables
  • Unity Job System & Multithreading
  • P$ Algorithm for shape recognition
  • Client-server multiplayer architecture with Photon Bolt