Lasso Lass
Core combat-platforming with the lasso mechanic (Main View)
Lassoing intangible platforms & teleportation
Platforming
Activating pressure plates to solve a puzzle
About the Project
Lasso Lass is a puzzle-platformer built in 4 days for GMTK 2025 by a 6-person team. The game centers around a magical lasso that triggers effects like teleportation and platform creation to solve challenges.
I was the lead programmer, overseeing all game mechanics and Git code reviews. I solely designed and implemented the core lasso system.
Technical Highlights
- Robust Lasso Drawing System: Implemented a multi-layered system for capturing player input that uses time-based collection, distance-based fallbacks, and adaptive point requirements based on draw duration. This ensures the lasso feels responsive and consistent across different screen sizes and framerates.
- Advanced Loop Detection: Developed two forms of loop detection: a primary check for self-intersection using a line-segment algorithm and a secondary check for simple closed shapes. This allows for both complex and simple lasso gestures to be recognized reliably.
- Point-in-Polygon Detection: Used a ray-casting algorithm to accurately determine which `DetectableObject`s were inside the completed lasso shape, forming the core of the interaction mechanic.
- Modular Interaction System: Designed a flexible system using a base `DetectableObject` class with a virtual `OnDetected()` method. This allowed the team to rapidly create new interactions (teleportation, possession, platform activation) by simply inheriting from the base class and overriding its behavior.
Development Focus
- Designing a core mechanic that was both intuitive and deep enough for interesting puzzles.
- Collaborating effectively within a diverse team, integrating art, sound, and code.
- Managing scope and prioritizing features to deliver a polished experience in a short timeframe.
- Building a fun, satisfying player experience around the central concept of the lasso.
What I Learned
- Implementing Complex Gameplay Mechanics: Gained practical experience translating complex geometric algorithms (line-segment intersection, point-in-polygon) into robust, functional C# code that served as the game's core mechanic.
- Designing for Reliability: Learned to build an adaptive input system with multiple fallbacks (time-based, distance-based, adaptive point counts) to ensure the lasso felt consistent and responsive across different screen sizes and framerates.
- Scalable & Modular Architecture: Solidified my understanding of polymorphism by designing the `DetectableObject` base class. This architecture allowed our team to rapidly add new, unique interactions (teleportation, possession, platform activation) without modifying the core lasso code.
- Complex State Management: Practiced managing interdependent game states, such as disabling player input and switching camera control during the "Possession" mechanic, preventing conflicting behaviors and ensuring a smooth player experience.
- Collaborative Development in a Jam Setting: Enhanced my ability to work effectively in a fast-paced team environment, using Git for version control and clear communication to integrate programming, art, and sound under a tight deadline.
- Iterative Puzzle & Level Design: Learned to balance puzzle difficulty with player fun, iterating on level design to create challenges that were intuitive to understand but satisfying to solve using the core mechanics.