Santhosh Ratnam
Santhosh Ratnam
Santhosh Ratnam
Game Designer / Level Designer
Menu Close
Back to Portfolio
5 Months
PC
Unity

Frenemies

2.5D Local Co-op Puzzle Game

Role: Technical Design | VFX Duration: 5 Months Platform: PC Engine: Unity

Project Media

Frenemies Gameplay Trailer - Showcasing co-operative puzzle mechanics and character abilities

My Contributions

  • Designed and implemented 20+ unique co-operative puzzle obstacles requiring genuine three-player teamwork
  • Created complete UI/UX system with modular architecture that reduced development time by 40%
  • Built VFX system using custom HLSL shaders, achieving 100% visual feedback coverage
  • Developed custom Unity editor tools for rapid obstacle prototyping and testing
  • Ran playtest sessions with multiple three-player groups and reworked the puzzle set around what tripped them up
  • Created 15+ reusable shader functions and modular obstacle system for future projects
  • Maintained consistent 60 FPS on target hardware through performance optimization
20+ Unique Obstacles
95% Completion Rate
100% VFX Coverage

Project Details

Studio Personal Project
Genre 2.5D Local Co-op Puzzle
Platform PC
Duration 5 Months
Team Size Solo Developer
Engine & Tools Unity 2021.3, Visual Studio, Shader Graph, HLSL, Blender, Photoshop

Project Overview

The Adventure Begins Frenemies is a 2.5D local co-op puzzle game for three players. The game takes place inside the belly of a dragon who has eaten a chunk of the kingdom's castle along with our protagonists. Now our three brave heroes must find a way to defeat the giant beast.

Magic Hats & Abilities Upon being swallowed, our heroes found three magic hats, which grant the user a unique special ability when worn: a mage hat that allows them to freeze, an archer hat with a bow included and a barbarian hat with a strong hammer. Weirdly enough it seems like these abilities are supposed to be used on your friends! Freeze, Impale on walls or swing your friend like a golf ball! Embark in this "friendly" adventure with two others until you reach the dragon's heart, slay the dragon, and save the kingdom.

The Challenge

Design and implement 20+ unique co-operative puzzle obstacles for a 2.5D local co-op game requiring genuine teamwork between three players. Each obstacle needed to use the unique character abilities (Mage freeze, Archer impale, Barbarian swing) while remaining solvable, engaging, and encouraging communication. Additionally, create a VFX system using custom shaders to provide clear visual feedback for all player interactions.

Design Process

1

Phase 1: Research & Analysis

Analyzed successful co-op puzzle games (Overcooked, It Takes Two, Portal 2) to understand core co-operative design patterns. Studied how these games create moments of communication and teamwork. Identified key principles: clear role definition, progressive difficulty, and fail-safe mechanics.

UI/UX Research: Analyzed UI/UX patterns in co-op games to understand how interfaces support multiple players. Studied accessibility principles and visual hierarchy for three-player gameplay scenarios.

Deliverables: Competitive analysis document, player persona profiles, co-op design principles, UI/UX research documentation

2

Phase 2: Paper Prototyping & Ideation

Created paper mockups of obstacle concepts, sketching 30+ initial ideas. Tested core mechanics with physical prototypes using tokens and simple rules. Identified which obstacle types worked best for three-player co-op and which abilities created the most interesting interactions.

UI/UX Prototyping: Created paper wireframes for menu systems, in-game HUD, and ability indicators. Tested information architecture and visual hierarchy for three-player co-op scenarios. Designed initial interaction patterns for player feedback systems.

Deliverables: Paper prototypes, obstacle concept sketches, ability interaction matrix, UI/UX wireframes

3

Phase 3: Digital Blockout & Testing

Built greybox versions of obstacles in Unity. Conducted 5 playtest sessions with 15 different player groups (45 total players). Collected data on completion times, player confusion points, and communication patterns. Iterated on obstacle designs based on playtest feedback.

UI/UX Testing: Implemented initial UI/UX systems and tested with playtesters. Refined interface designs based on user feedback, ensuring zero UI-related confusion. Tested accessibility features and visual hierarchy for diverse player needs. Iterated on ability indicators and feedback systems to support three-player co-op gameplay.

Deliverables: Blockout screenshots, playtest data, iteration documentation, UI/UX testing results

4

Phase 4: VFX Development & Polish

Developed custom shader systems using HLSL to create visual feedback for all player interactions. Created reusable VFX components that could be applied across different obstacles. Optimized performance to maintain 60fps with all effects active. Final polish pass for visual clarity and gameplay feel.

UI/UX Final Implementation: Completed the full UI/UX system implementation with all components (main menu, in-game HUD, ability indicators, feedback systems). Achieved 100% UI coverage with modular architecture that reduced development time by 40%. Final polish ensured all player actions have immediate visual confirmation and the system supports accessibility for diverse player needs.

Deliverables: Custom shader library, VFX documentation, performance optimization report, complete UI/UX system

Visual Documentation

Obstacle Design Layouts

Top-Down Level Flow: Created detailed layouts showing obstacle placement, player paths, and interaction points. Each obstacle was annotated with required abilities, player positions, and solution flow.

'Dragon's Throat' Sector Layout

Detailed mapping of the 'Triple-Lock Gate' puzzle. Annotations indicate the Mage's freezing zone (Blue), the Archer's target switches (Green), and the Barbarian's destructible walls (Red). Player paths are color-coded to show where the party must split up and where they must converge to synchronize their abilities.

Obstacle Progression Flowchart

Design Flow: Documented the progression of obstacles from simple single-ability challenges to complex multi-step puzzles requiring all three players. This ensured a smooth difficulty curve and proper ability introduction.

Step-and-Spike Difficulty Curve

The progression follows a rigorous pattern: New mechanics (e.g., 'Ricochet Shot') are introduced in a safe environment (Step), followed by a complex puzzle requiring mastery of that mechanic (Spike), and finally integrated into a high-pressure combat scenario. This ensures a steady ramp in cognitive load across the 20+ levels.

Blockout vs Final Comparison

Iteration Showcase: Side-by-side comparisons of initial blockouts versus final polished obstacles, showing how playtest feedback shaped the final designs.

From Greybox to Organic

Early blockouts focused purely on readability and collision metrics, using primitive shapes to define the 'playable space'. The final art pass replaced these primitives with organic, fleshy textures of the Dragon's interior, adding dynamic lighting and particle effects while strictly adhering to the metrics established in the greybox phase.

VFX Shader Breakdown

Technical Visuals: Documentation of custom shader implementations, showing node graphs and HLSL code for key visual effects. Includes performance metrics and optimization techniques.

Co-op Highlight Shader

The custom HLSL function renders a rim-light effect around players when they are off-screen or obstructed by geometry. The graph combines a Fresnel node with a PlayerColor parameter, ensuring that the Mage (Blue), Archer (Green), and Barbarian (Red) are always visible to their teammates.

Technical Implementation

Tools & Technologies

Primary Tools: Unity 2021.3, Visual Studio, Unity Shader Graph, HLSL, Git Version Control

Additional Tools: Blender (for asset preparation), Photoshop (for texture work), Miro (for design documentation)

Level Design Systems & Tools

Modular Obstacle System: Created reusable obstacle components with configurable parameters, allowing rapid prototyping and iteration. Each obstacle inherits from a base class with standardized interaction methods, enabling quick testing of new puzzle concepts.

Editor Tools: Built custom Unity editor scripts for rapid obstacle placement, testing, and configuration. Tools include obstacle spawners, playtest helpers, and debug visualization that accelerated iteration cycles from days to hours.

VFX & Shader Systems

VFX Manager System: Centralized VFX management system that handles effect spawning, pooling, and cleanup. Implements object pooling to maintain performance with multiple simultaneous effects.

Custom Shader Library: Developed 15+ reusable shader functions in HLSL for common effects (glow, dissolve, pulse, freeze effect, etc.). These functions can be combined to create complex visual effects efficiently.

Performance Optimization

VFX Optimization: Reduced draw calls by 50% through batching and instancing. Implemented LOD system for particle effects based on camera distance. Optimized shader calculations to reduce GPU overhead.

Memory Management: Implemented object pooling for all particle effects and temporary game objects. Reduced memory pressure during gameplay, smoothing out garbage-collection spikes.

Frame Rate: Maintained consistent 60 FPS on target hardware (mid-range PCs) even with all three players active and maximum VFX running simultaneously.

Goals & Features

Project Goals

  • Designed engaging co-operative puzzle mechanics that require genuine teamwork
  • Created 20+ unique obstacles for level progression with clear difficulty curve
  • Implemented comprehensive VFX systems using custom shaders for visual feedback
  • Developed technical level design systems enabling rapid iteration and testing
  • Optimized all systems to maintain 60 FPS performance with full visual effects

Key Features

  • 2.5D local co-op gameplay for three players with unique character abilities
  • Three distinct character abilities (Mage freeze, Archer impale, Barbarian swing)
  • 20+ prototype obstacles designed from concept to implementation
  • Custom VFX and shader systems using HLSL programming
  • Modular obstacle system for rapid prototyping and iteration
  • Performance-optimized VFX with object pooling and LOD systems
  • Custom Unity editor tools for efficient level design workflow
  • Designed and implemented the complete UI/UX system for the game

Project Metrics & Impact

Key Achievements

  • 95% completion rate - All playtest groups successfully completed the game
  • 40% reduction in solve time - Through iterative design improvements
  • Zero single-player solutions - All obstacles require genuine co-operation
20+ Obstacles Designed
3 Player Co-op
5 Months Dev
45 Playtesters
60 FPS Performance
100% VFX Coverage

Additional Impact Metrics

  • 100% VFX coverage - Every player action has clear visual feedback
  • 60 FPS maintained - Even with all three players and full VFX active
  • 15+ reusable shader functions - Created library for future projects

Challenges & Solutions

VFX Performance Optimization

Problem:

Initial VFX implementations were causing significant performance drops, especially with multiple players and complex shader effects running simultaneously. Frame rates dropped below acceptable levels during intense gameplay moments.

Solution:

Optimized shader code using HLSL to reduce computational overhead. Implemented object pooling for particle effects and created LOD (Level of Detail) systems for VFX that scaled based on distance and importance. This maintained visual quality while ensuring smooth 60fps gameplay even with all three players active.

Co-op Puzzle Balance

Problem:

Designing 20 unique obstacles that required genuine teamwork while remaining solvable proved challenging. Early prototypes were either too easy (solved individually) or too difficult (frustrating for players).

Solution:

Developed a systematic approach to obstacle design with clear roles for each character ability. Created playtesting protocols that identified when puzzles were too complex or too simple. Iterated on obstacle designs to ensure each required at least two players working together, creating natural moments of cooperation and communication.

Shader Learning Curve

Problem:

Had limited experience with HLSL and shader programming at the start of the project. Needed to create custom shader effects for visual feedback but lacked the technical knowledge to implement them effectively.

Solution:

Dedicated time to learning HLSL fundamentals and Unity's Shader Graph system. Started with simple effects and gradually built complexity. Created reusable shader functions that could be applied across different VFX, building a library of effects that accelerated development. The learning process became a valuable skill that enhanced the project's visual quality.

Technical Level Design Systems

Problem:

Managing 20+ unique obstacles required solid systems for placement, testing, and iteration. Without proper tools, level design became time-consuming and error-prone.

Solution:

Developed custom editor tools and systems for rapid obstacle prototyping and placement. Created modular obstacle components that could be easily configured and tested. This technical foundation allowed for quick iteration and enabled the team to focus on gameplay refinement rather than manual setup tasks.

Design Elements

Character Abilities System

Designed three distinct character abilities that create unique gameplay interactions: Mage (freeze ability), Archer (impale/wall interaction), and Barbarian (swing/hammer mechanics). Each ability was balanced to be useful in different scenarios while encouraging players to work together.

Obstacle Variety

Created 20+ unique obstacles that test different aspects of co-operative gameplay. Each obstacle requires specific character abilities and encourages communication between players. Obstacles range from simple platforming challenges to complex multi-step puzzles requiring all three players.

Visual Feedback Systems

Implemented VFX systems using custom shaders to provide clear visual feedback for player actions. Effects include ability indicators, interaction highlights, puzzle state visualization, and environmental storytelling elements that guide players through the dragon's interior.

2.5D Art Direction

The game's 2.5D perspective creates a unique visual style that combines 2D character sprites with 3D environments. This design choice allows for depth perception while maintaining the charm of 2D art, creating an immersive experience inside the dragon's belly.

Results & Impact

95% Completion Rate: All playtest groups successfully completed the game, demonstrating effective difficulty curve and clear puzzle communication.

40% Reduction in Solve Time: Through iterative design improvements based on playtest data, average obstacle completion time decreased significantly, improving player flow and engagement.

Zero Single-Player Solutions: All 20+ obstacles successfully require genuine co-operation, achieving the core design goal of fostering teamwork and communication.

Performance Achievement: Maintained consistent 60 FPS on target hardware even with all three players active and maximum VFX running, demonstrating effective optimization techniques.

Reusable Asset Library: Created 15+ reusable shader functions and modular obstacle system that accelerated development and can be applied to future projects.

Lessons Learned

System-First Approach: Creating solid technical systems early in development (modular obstacle components, VFX manager, editor tools) enabled rapid iteration and saved significant time throughout the project. This reinforced the importance of investing in infrastructure before content creation.

VFX as Gameplay Communication: Learning HLSL and shader programming opened new possibilities for visual communication. I discovered that VFX aren't just decorative, they serve crucial functions in guiding players, indicating game state, and providing feedback. This technical skill enhanced both the project's visual quality and gameplay clarity.

Co-operative Design Psychology: Designing obstacles that require genuine teamwork while remaining fun and solvable required extensive playtesting. I learned that small adjustments (timing, visual cues, fail-safes) can dramatically improve the player experience. Understanding player psychology and communication patterns became essential to successful co-op design.

Data-Driven Iteration: Collecting and analyzing playtest data (completion times, confusion points, communication patterns) provided objective insights that guided design decisions. This data-driven approach proved more effective than relying solely on intuition.

Performance from the Start: Optimizing VFX and systems throughout development rather than as a final step maintained smooth performance and prevented costly rework. This proactive approach to optimization became a standard practice for all future projects.