Genies
Building Immersive Avatar Social Platform!
Timeline
Jan 2023 - Present
Overview
The Genies Party app is an avatar social platform where users can authentically create, capture, and socialize their inner selves
My Role
I am a core member of the Unity engineering team responsible for developing key gameplay features for the Genies Party app.
I work closely with design, art, product, and engineering teams across multiple divisions to bring creative visions to life, leading development of several major features from prototype to release.
Genies Party App: Spaces Feed
Overview
Spaces feed is the main hub and the landing point of every user in the Genies Party app. Users can scroll through and visit their own or others' spaces where their avatar resides. The feed shows other users' live status such as their mood, avatar looks. The user's feed is curated uniquely per user and per user's group (ex, school), featuring users' close connections or newly joined users.
My Work
I took ownership of the development of the Spaces feed from its very first prototype to public launch, overseeing every in-app mechanics including:
- implementation of 3D scrollable feed and UI
- feed data handling and communication from backend API
- object lifecycle management for avatar & space assets
- mobile push notification deeplink action
- time-based feed events and environment changes.
My Space
Breakdown
Optimizing for Fast Scrolling
Given the heavy asset loading and computation demands involved in building avatars with custom assets while maintaining fast response rates during user scrolling, I went through multiple rounds of optimization. This involved utilizing asynchronous tasks and caching assets to minimize loading time while accounting for mobile's memory capabilities. My solution effectively addressed existing delays in avatar building, enabling users to scroll through and interact with multiple users simultaneously without lag.
Reflecting Real-time Feed Data
I closely collaborated with the backend team to ensure the feed's responsiveness and smooth API integration. This included managing pagination data and user sessions to maintain consistent UX behavior across the app.
Handling Transitions
To handle sudden entry and exit from various points in the app, triggered by events like push notifications or time-based interactions, I developed data provider system, which efficiently manages feed items across the application, reducing dependencies on specific screens or states, and ensuring seamless transitions between screens for an uninterrupted user experience. I also enhanced the feed's adaptability for user-triggered actions, such as blocking or reporting, which affect the visibility of users in the feed.
Genies Party App: Avatar Editor
Overview
Avatar and outfit customization tools allows users to create unique looks for their avatars.
My Work
In Genies Party app, I played a key role in leveraging the avatar editor from Genies' previous app and revamping it with a brand new look and layouts. I also took ownership in integrating face customization feature where users can edit individual facial parts (eyes size, etc), collaborating closely with the R&D and design teams. I helped overall maintaining editor features and memory profiling for catching any critical issues.
Face & Body Customization
Breakdown
Custom Layout for Editor
Initially, avatar editor came with a lot of layout constraints which made it hard for designers to quickly iterate and test out designs. I added a lot of design configuration support for both overall and specific panel's layout change.
Face & Body Customization
I collaborated with R&D team for integrating face customization feature that allows users to manipulate blend shape property of individual facial components.
Memory Profiling
I have identified and facilitated a solution for a critical memory leak that was deeply rooted in the system which often led to an app crash. The problem has caused over 4MB of memory leakage per asset selection.
Genie:My Personality AI App
Genies AI Chat Gameplay
Genies Chat is a key feature of Genie: My Personality AI app, where users engage with a Doll by answering LLM-based daily prompt questions to earn personality traits for their avatar.
Genies AI Chat Gameplay
My Role
I oversaw the Unity-side development of the AI conversation from the initial prototype to public release in early June. My responsibilities included implementing
- Chat UIs and dialogue sequence
- Integration of backend chat API in app for AI conversation.
- Time-sensitive prompt management and local state caching
- User progress data saving
- Avatar & doll animation systems
LLM-based conversation
Earning Trait from conversation
Viewing unique traits earned
Process
Prompt-based Chat Experience
The prompt-based chat experience required unique time-based events and data caching to manage users returning to the app at any point in the conversation. To achieve this, I designed and developed system that manages users’ conversation history and caching relevant data to minimize API calls.
Facilitating Design and Art Iteration
Throughout this process, I especially excelled not only in chat integration but also by proactively taking further ownership in refining every detail in gameplay while collaborating with other teams; I led day-to-day communication with the design and art team to ensure optimal user experiences and identify & address every gap in UX behavior, timing, and animations missing in design mockups. I also developed frameworks to test chat scenes with different scripts and animation timings, which allowed fast feedback and iteration loops with the design team. I also provided support and tools to the animation and CG team so they could test the animation directly in Unity scene, which overcame the tedious process of waiting for engineers to manually apply changes every time.
My proactive approach and collaborative efforts resulted in the seamless integration of chat features and fast iteration, enabling us to meet the tight launch deadline and setting a strong foundation for future product developments.