
The Challenge
Create an adaptable UI system that fits the game’s Y2K aesthetic while remaining responsive and usable across screen sizes. Dialogue, HUD, and menus needed to be modular and easily reusable by designers and writers.
What I Built
Programmed a fully modular, data-driven UI system in Unity for dialogue, HUD, and prompts
Built reusable components for lists, tabs, and contextual interactions
Used ScriptableObjects and clean architecture to support scalable content creation
Prioritized responsive design for consistent behavior across resolutions and aspect ratios
Delivered a stylized Y2K-inspired UI experience aligned with the game’s surreal aesthetic
Wrote maintainable, optimized UI logic to ensure smooth performance at runtime
Watch it in action
A short demo video is available below showcasing the UI flow and interactive systems in action.
My Technical Contributions
1. Dynamic Home Menu System
Problem:
Create a responsive home menu that dynamically calculates and displays the player's current badge status, "likes" progress, and credits in real-time whenever accessed, ensuring UI accuracy with gameplay progress.
Solution:
Built an intelligent home menu system that processes badge progression logic and synchronizes all player data with the interface on every menu access.
Result:
Responsive home menu that instantly reflects current game state, with accurate badge calculation and seamless UI synchronization every time the pause menu is accessed.
2. Universal Dynamic List Management System
Problem:
Create a reusable system capable of managing multiple UI categories (NPCs, inventory, scanned items, collectibles) with different data types while maintaining consistent behavior and performance.
Solution:
Developed a flexible list system that dynamically generates UI elements based on player progress and data state.
Result:
Single system powering 4+ different menu categories, reducing code duplication by 80% while supporting unlimited content scaling.
3. Performance Optimized Quest Tracking
Problem:
Display active quests efficiently without unnecessary processing, updating only when the quest screen is accessed to maintain optimal performance.
Solution:
Implemented lazy-loading quest system that processes data on-demand with intelligent caching.
Solution:
Implemented lazy-loading quest system that processes data on-demand with intelligent caching.
4. Scalable ScriptableObject Architecture
Problem:
Create a data-driven badge system that's easily extensible, maintainable, and integrates seamlessly with the UI progression tracking.
Solution:
Designed a clean ScriptableObject-based architecture with encapsulated properties and automatic serialization.
Result:
Infinitely scalable badge system with designer-friendly workflow and zero code changes required for new badges.
Results & Impact
UI layout scaled correctly across 4+ resolutions without layout breaks
Designers added new dialogue lines without programmer assistance
Zero reported UI bugs post-integration in team tests
Improved iteration speed by ~40% for content creators
Lessons Learned
Balancing form and function is key when designing UI for unusual visual styles
Leveraging ScriptableObjects created an efficient pipeline for designers
Planning for reuse early led to less spaghetti code and better long-term flexibility
Key Technologies & Patterns Demonstrated
Data-Driven Architecture: ScriptableObject-based systems for designer-friendly content pipelines
Design Patterns: Lazy loading for performance optimization
Unity Systems: Canvas scaling, UI anchors, responsive layout management
Modular Design: Reusable UI components, clean separation of concerns, template-based generation
Performance: On-demand processing, intelligent caching, optimized refresh cycles