Project Status Done
Project Type Group project
Project Duration ~ 2 months
Software Used Unity Engine, FMOD, Cinemachine
Languages Used C#, GAS
Primary Role Tech Lead
Secondary Role(s) Gameplay/Tool Programmer
After two months of development… here it is! For the past two months, our team of six at the IT University of Copenhagen has been building SMILE. A fast, chaotic, couch-multiplayer battle game where the weakest player actually shapes the battlefield.
This project started as part of a university course, but it quickly grew into something we’re really proud of. We wanted to make a game that is:
Easy to pick up, hard to stop laughing at Local-multiplayer focused (perfect for 2–4 players)
Chaotic, unpredictable, and extremely replayable
Filled with weapons, maps, and modifiers that completely change each round
Selected to participate in Tomorrow’s Awesome Games Showcase - Education Awards 2026, presenting during the Copenhagen Gaming Week 2026
Engineered core gameplay systems for a local-multiplayer Unity game, focusing on modular action architecture, round-based game flow, input systems, audio integration, and UX polish, while collaborating in a PR-driven team environment.
Focus Areas: Gameplay systems, UX clarity, local multiplayer, tooling, iteration speed
Key Contributions
Architected a modular Player Action framework using data-driven abstractions (ScriptableObjects), enabling rapid iteration on combat actions, hazards, and abilities.
Helped design and refactored player–hazard interaction systems (lava, lasers, ropes, arena zones, time bombs), focusing on extensibility and clear gameplay feedback.
Implemented arena zone and boundary systems to enforce play spaces and support dynamic map scaling.
Built and evolved the round-based game flow system, including win conditions, round transitions, loser/winner logic, and end-game presentation.
Refactored player controller architecture to support default actions, action ownership, and clean input separation.
Implemented local multiplayer lobby flow, including player join/leave behavior, avatar selection, and readiness states.
Refactored the project to use Unity’s new Input System, including:
Custom UI Action Maps
Clear input ownership per player
Resolution-safe UI navigation
Built and iterated on selection menus, tutorials, pause menus, rounds menus, and end-game UI.
Solved multiple edge cases around controller ownership, weakest/winner player selection, and menu state transitions.
Integrated FMOD 2.03 into the project and replaced legacy AudioSource usage.
Implemented event-driven audio feedback for:
Player damage and combat actions
Environmental hazards
Menu transitions and UI feedback
Built a centralized music and audio management system to keep audio logic decoupled from gameplay logic.
Worked closely with designers to tune audio timing, clarity, and player feedback.
Implemented post-processing pipelines (outlines, shadows, lighting tuning) to improve player visibility and action readability.
Tuned camera behavior using Cinemachine for dynamic framing and round transitions.
Improved UI scaling across resolutions and fixed preview quality issues in menus and map selectors.
Polished lighting, shadows, and environment presentation across arenas.
Built and maintained designer-friendly tooling:
Data-driven hazard configurations
Action tuning without code changes
Clear prefab and folder structure refactors
Refactored scene and asset organization to reduce technical debt and improve iteration speed.
Created and updated internal development scenes to support rapid testing and playtesting.
Supported multiple playtests, implementing rapid iteration changes under time constraints.
Adjusted map sizes, hazard timings, UI clarity, and round pacing based on player feedback.
Implemented tutorial flows and cutscene skipping systems to improve onboarding.
Actively worked in a feature-branch + PR-based workflow.
Opened, reviewed, and merged dozens of pull requests, frequently resolving merge conflicts.
Refactored shared systems while maintaining team velocity and build stability.
Collaborated cross-discipline (design, audio, UI) to translate gameplay needs into robust technical solutions.
Took ownership of fixing bugs introduced during integration phases and late-stage polish.