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