WithMe Design

"Social metaverse built on Unreal Engine"

"Social metaverse built on Unreal Engine"

Role

Director, Product Design

Timeline

1 year

Scope

iOS/Android App

Full App Experience

Teams

4 Designers

Engineering

Product

Marketing

Chill Cafe

10

👋

9:41

Chill Cafe

10

👋

9:41

Chill Cafe

10

👋

9:41

What and Why

We set out to build WithMe—a social 3D experience that felt more like real life, blending games, hangouts, and self-expression. But after switching from Godot to Unreal to scale the platform, we ran into a big challenge: no UI developers and very limited budget/time.


To keep things moving, I dove into learning UMG myself and started building the UI from the ground up. I also led our design team through a full 0–1 rebuild of the app, creating new systems and workflows that worked within our constraints—so we could deliver on the vision without waiting for perfect resources.

Goals

  • Create a UI system and library in Unreal

  • Utilize Figma to communicate dev needs from design

  • Create a new review process for designers to QA local/staged builds through P4F

  • Upgrade the design language to a newer direction

Learn & Plan

Experiment

Design

Align

Support

Approach

Learn Unreal & build Figma design structure for a library and leveling up existing foundations of color, typography, layout, and considering new things outside the scope of 2D design such as depth, spaces, and UI in relation to smart objects while managing 3 designers.
Process improvements were made to also keep game designers, producers, PMs, engineers, design, and marketing involved 0-1 and relationship manage to reduce iteration scope.

Systems thinking for a 3D space

Buy (1)

All

Tank

Long Sleeve

Short Sleeve

Jacket

100

100

100

100

100

100

100

100

20k

1.6k

L2

Transparent, sColor

L2

3D, utility

L1

Solid, DS, pColor, conversion

L2

Solid, Box-shadow, uColor

L3

Light, sColor

3D, actionable

L1

Buy (1)

All

Tank

Long Sleeve

Short Sleeve

Jacket

100

100

100

100

100

100

100

100

20k

1.6k

L2

Transparent, sColor

L2

3D, utility

L1

Solid, DS, pColor, conversion

L2

Solid, Box-shadow, uColor

L3

Light, sColor

3D, actionable

L1

3D Environment vs 2D UI

Made sure to create a hypothesis that focused on user intention, goals, and context to improve how we approach interactions in an application that had a very heavy 3D game like experience around it. This involved rules around camera, depth, occlusion, and perspective.

Layering property hierarchy

Defined guides for layer tier treatment we utilize in order to determine application based on prioritization from style choices, layering affects, and context/importance.

Buy now

L1

$primaryBtn

pColor-1

boxShadow-1

conversion

Buy now

L1

$primaryBtn

pColor-1

boxShadow-1

conversion

Buy now

L1

$primaryBtn

pColor-1

boxShadow-1

conversion

Buy now

L1

$primaryBtn

pColor-1

boxShadow-1

conversion

Beach Resort

10

doran

hey ya!

k3lly

hey y’all

You

been a while!

how’ve u been?

k3lly

it’s been a blast

Say something

👋

Thank

I

Hi

123

space

Send

P

O

I

U

Y

T

R

E

W

Q

L

K

J

H

G

F

D

S

A

M

N

B

V

C

X

Z

😀

😍

😣

😆

😴

Prototype

User Goal:

Intuitively emote without losing 3D context to allow use of all social comms seamlessly

Accessible

Allows 3D interaction

Intuitive chat toggle and visibility

Allows 3D interaction

Balances steps vs coexisting interactions

Scalable

Beach Resort

10

doran

hey ya!

k3lly

hey y’all

You

been a while!

how’ve u been?

k3lly

it’s been a blast

Say something

👋

Thank

I

Hi

123

space

Send

P

O

I

U

Y

T

R

E

W

Q

L

K

J

H

G

F

D

S

A

M

N

B

V

C

X

Z

😀

😍

😣

😆

😴

Prototype

User Goal:

Intuitively emote without losing 3D context to allow use of all social comms seamlessly

Accessible

Allows 3D interaction

Intuitive chat toggle and visibility

Allows 3D interaction

Balances steps vs coexisting interactions

Scalable

Beach Resort

10

doran

hey ya!

k3lly

hey y’all

You

been a while!

how’ve u been?

k3lly

it’s been a blast

Say something

👋

Thank

I

Hi

123

space

Send

P

O

I

U

Y

T

R

E

W

Q

L

K

J

H

G

F

D

S

A

M

N

B

V

C

X

Z

😀

😍

😣

😆

😴

Prototype

User Goal:

Intuitively emote without losing 3D context to allow use of all social comms seamlessly

Accessible

Allows 3D interaction

Intuitive chat toggle and visibility

Allows 3D interaction

Balances steps vs coexisting interactions

Scalable

Beach Resort

10

doran

hey ya!

k3lly

hey y’all

You

been a while!

how’ve u been?

k3lly

it’s been a blast

Say something

👋

Thank

I

Hi

123

space

Send

P

O

I

U

Y

T

R

E

W

Q

L

K

J

H

G

F

D

S

A

M

N

B

V

C

X

Z

😀

😍

😣

😆

😴

Prototype

User Goal:

Intuitively emote without losing 3D context to allow use of all social features seamlessly

Accessible

Allows 3D interaction

Intuitive chat toggle and visibility

Allows 3D interaction

Balances steps vs coexisting interactions

Scalable

User priority principle

A common issue team members surfaced was trying greatly to never lose sight of the 3D world with UI. I did agree with this concept to a degree, and discovered it constrained our ability to deliver intuitive experiences.

The purpose was to identify the type of user and goal in any given interaction. This allowed for proper prioritization of creating components but also when to apply them to allow for more contextual application.

Learn, execute, and coach (Unreal)

Variant

$modal-hotshot

Components

modalG

btn

listItem

Variables

modalAsset

modalBg

modalBtn

modalClass

modalDivider

modalListItem

modalListArea

modalMaterial

modalOverlay

Event States

modalAppear

modalDismissed

Variant

$modal-hotshot

Components

modalG

btn

listItem

Variables

modalAsset

modalBg

modalBtn

modalClass

modalDivider

modalListItem

modalListArea

modalMaterial

modalOverlay

Event States

modalAppear

modalDismissed

Variant

$modal-hotshot

Components

modalG

btn

listItem

Variables

modalAsset

modalBg

modalBtn

modalClass

modalDivider

modalListItem

modalListArea

modalMaterial

modalOverlay

Event States

modalAppear

modalDismissed

Onboarding Unreal

Challenge: I myself and my immediate design team had zero experience with Unreal. There was no resourcing for Game UI Designers with Unreal experience during that time. Additionally Figma didn't provide clear definitions for form and function when translated into the 3D world.


Solution: Aligned with executives and peers to have designers learn scripting and build the UI library in Unreal in order for them to have what was needed to build. I spearheaded this personally to take lead my team by example, and move development forward by building out UI and testing in Unreal to existing script.

Design System for Unreal

tileDestination

Summary

Entry point to destinations leading to the destinations details screen with description and tag.

Subcomponents

$tag-transparentD-prefix-int

16.7K

States

static

{ scale: 1, boxShadowM, transitionEaseShort }

press

{ scale: 1.1, boxShadowL, transitionEaseShort}

Content

$tag-transparentD-prefix-int

16.7K

16.7K

Rooftop nights

tileDestination

Summary

Entry point to destinations leading to the destinations details screen with description and tag.

Subcomponents

$tag-transparentD-prefix-int

16.7K

States

static

{ scale: 1, boxShadowM, transitionEaseShort }

press

{ scale: 1.1, boxShadowL, transitionEaseShort}

Content

$tag-transparentD-prefix-int

16.7K

16.7K

Rooftop nights

Build a library around it

Challenge: All feature and design work was done case by case, creating inconsistency, issues with development, and less cohesive experiences.


Solution: Built out dev documentation and Figma library that supported developer needs and maintained consistency, while increasing velocity. Additionally managed designers to explore more ways to create seamless override capability for nested components.

Challenge: All feature and design work was done case by case, creating inconsistency, issues with development, and less cohesive experiences.


Solution: Built out a focus on two libraries that could support 3D vs 2D both from a form, function, and context perspective.

Challenge: Currently we show every user the same content based on top selling products and avatar gender that is currently being displayed. I identified that this alone is a foundational issue where both creators and customers suffer, but had to consider the technical feasibility on the engineering side.


Solution: Create ways to feature categories so we don't have to create complex data tracking for users and then tie it to creators as well. Additionally plan for the future to support with our Hashtags project to then better curate singular products more accurately to users interests and activities.

Welcome Room

10

👋

Say something

Mariah1039

👋

3D Interaction Menu

Interaction Guidelines

Camera - primary focus position when activated

HUD billboard

• UI scale and perspective is fixed

• UI is pinned to target top anchor point

Dismiss

• Tap target again to dismiss
• Auto dismiss distance >60uu or outside viewport

• Dismiss on activating interaction

Surface - Tap target to surface

Occlusion - No interaction capability behind menu

Welcome Room

10

👋

Say something

Mariah1039

👋

3D Interaction Menu

Interaction Guidelines

Camera - primary focus position when activated

HUD billboard

• UI scale and perspective is fixed

• UI is pinned to target top anchor point

Dismiss

• Tap target again to dismiss
• Auto dismiss distance >60uu or outside viewport

• Dismiss on activating interaction

Surface - Tap target to surface

Occlusion - No interaction capability behind menu

Welcome Room

10

👋

Say something

Mariah1039

👋

3D Interaction Menu

Interaction Guidelines

Camera - primary focus position when activated

HUD billboard

• UI scale and perspective is fixed

• UI is pinned to target top anchor point

Dismiss

• Tap target again to dismiss
• Auto dismiss distance >60uu or outside viewport

• Dismiss on activating interaction

Surface - Tap target to surface

Occlusion - No interaction capability behind menu

Welcome Room

10

👋

Say something

Mariah1039

👋

3D Interaction Menu

Interaction Guidelines

Camera - primary focus position when activated

HUD billboard

• UI scale and perspective is fixed

• UI is pinned to target top anchor point

Dismiss

• Tap target again to dismiss
• Auto dismiss distance >60uu or outside viewport

• Dismiss on activating interaction

Surface - Tap target to surface

Occlusion - No interaction capability behind menu

3D Interaction UI

UI such as interaction with players or smart objects required rules. An example that was our player to player interaction menus while allowing navigation and targeting. We originally had an overlay that locked the screen. In order to utilize UI and 3D functionality better we required rules to help users navigate, interact, and not be encumbered in UI edgecases.

Challenge: All feature and design work was done case by case, creating inconsistency, issues with development, and less cohesive experiences.


Solution: Built out a focus on two libraries that could support 3D vs 2D both from a form, function, and context perspective.

UI around 3D games

👋

Say something

👋

Say something

👋

Say something

👋

Say something

3D UI in game experiences

Challenge: Working in 3D spaces to provide a variety of solutions to support game design, but overall UX within the environments.


Solution: Provided both 2D and 3D UI solutions and 2D "experiences" to still keep gameplay immersive to reduce the scope of game development work.

Build the application side

Apply Updated Design to All Designs

Challenge: Extremely time consuming task requiring going back into files and assets that were already designed for, and sifting through legacy work from previous designers.


Solution: Worked with the existing designers to divide out and apply the new library structure and components based on strengths and previous feature ownership. This involved updating Unreal components and UI, while testing out previous experiences to ensure there was no regression.

Outcome

  • Onboarded a total of 10k users during the first month

  • Hit a high D1 retention of 42% driving excitement for our monetization phase

  • Generated great EA community feedback on the evolution of design

  • Bridged Figma to Unreal allowing product designers to deliver to games in 3D

Learnings & Reflection

  1. Our biggest blocker are ourselves
    There was hesitation around not having a traditional game UI designer and using Unreal, but I saw it as an opportunity—not a limitation. We built a design process from scratch for 3D UI, which is still largely unsolved. It pushed us to think differently and adapt our approach to design systems.

  2. Speaking up on business ideas
    Being deep in execution and filling gaps with teams, I didn't voice up my thoughts on a monetization plan early enough to support goals sooner to monetize in parallel with retention goals.


  3. Motivation is key
    Motivation proved to drive passion and excitement over tough obstacles that team members deemed "out of scope or capability". Moving forward helped prove that we were able to dive into new tech and work on game engines regardless of prior skill sets.