Improving Accessibility Through Theme Sharing in Unreal Engine 5.1

Internship: 4 months | Project duration: July - August 2022
Live November 2022
Front-end development
Interaction design
Accessibility
As an open and advanced real-time 3D creation tool, Unreal Engine (UE) is seeking a more accessible way to customize the colour of the engine’s interface to improve developer and artist workflows and accessibility for creators worldwide.  
Challenge
During my internship, I designed and shipped the theme-sharing feature in Unreal Engine 5.1, empowering users to effortlessly share themes with the Unreal Engine Dev Community, which resulted in ~80% time saved to customize colours for accessibility. 

Upon the release of UE 5.1 in November 2022, over 7 million users can now share customized themes, with over 30k themes shared just last year.
Impact
UX Engineer — user research, competitive analysis, workflow improvement, frontend development, accessibility research
My role
Team
Erik Dillinger — Icon designer
Patrick Laflamme — Mentor
Lauren Barnes — Manager
Feature highlights
Leading with accessibility
As one of the biggest game engines in the world, the theme sharing feature increased usability for users worldwide, and set Epic Games up to become an industry leader who created access for 300 million people with low vision or colour blindness. 
01
User Research
First, I wanted to understand why users are motivated to create themes in the engine. I conducted user interview 6 internal Epic employees and reached out to the community to gain some initial insights.
The detailed RRSP flow marked with improvements by the team
Common use cases
Based on the user interviews, three common use cases surfaced:
The detailed RRSP flow marked with improvements by the teamThe detailed RRSP flow marked with improvements by the teamThe detailed RRSP flow marked with improvements by the team
How users were chosen
Selected users have had significant involvement in accessibility projects at Epic Games, with an equal mix of experienced and new UE users. Additionally, 4 out of the 6 participants are members of the disability alliance employee resource group, who helped to identify accessibility enhancements for the engine.
02
Competitors Analysis
Theme-sharing should be as simple as clicking a button.
Most UE users are technically skilled engineers and designers. To ensure a seamless experience, I investigated how other engineering and design software handle theme sharing.
  1. Slack users can share themes via direct messages using a "theme code."
  2. Visual Studio users can directly download and import community-shared themes from online sources.
  3. Photoshop users have limited theme choices with various options in grayscale.
We decided to take similar approach as Visual Studio, to empower users to effortlessly share themes online with other creators, boosting engagement of the Epic community.
03
How do "themes" work behind the UI?
Currently, theme-related settings are categorized under the "General" settings. However, when exporting the "General" settings, themes are left out, preventing users from sharing these settings with each other.
Why don't we include themes in the "General" export?
Other settings under "General" may be personal. For example, users may not want to share their accessibility preferences with each other, so it's crucial to make non-theme settings private. On the technical side, I discovered that themes cannot exported with other settings due to a file type mismatch.
Sharing themes intuitively
Allowing users to share themes exclusively is not only the most intuitive, but also the most feasible. I added "import", "export", and "delete" beside the existing "edit" and "duplicate" buttons, controlling the entire engine's interface.
The detailed RRSP flow marked with improvements by the team
04
Implementation in C++
To ensure a seamless experience of theme-sharing, I developed a flowchart outlining the interactions of each theme-related functionalities for the implementation in C++ and edge cases.

For example, when creating a new theme, it's crucial to verify for duplicate names. Similarly, when deleting the current theme, the engine should seamlessly revert back to the default theme.
The detailed RRSP flow marked with improvements by the team
1. Select a location to export your current theme
The detailed RRSP flow marked with improvements by the team
2. Select a location to import new themes
The detailed RRSP flow marked with improvements by the team
3. Delete a theme and revert back to the default
The detailed RRSP flow marked with improvements by the team
4. Verifying duplicate theme names
The detailed RRSP flow marked with improvements by the team
05
Establishing consistency
Given the ability to import themes from both the general settings and the theme setting, some users expect that the theme will automatically update when importing the general setting. The user flow illustrates this expectation.
The detailed RRSP flow marked with improvements by the team
Now, when importing general settings, the theme is automatically updated if it's found in the user's collection; otherwise, users are prompted to import a new theme. Additionally, when exporting general settings, the system checks for duplicate themes within the user's collection.
06
An Opportunity to Further Design for Accessibility
At this stage, I've collected valuable feedback from users who are eager about further improving accessibility in the engine. The next high-impact opportunity lies in refining the colour-picking screen. When users attempt to modify colours in a theme, they are met with an overwhelming number of options. Here is some initial user feedback:
The detailed RRSP flow marked with improvements by the team
An expectation not met...
Both experienced and new users of Unreal Engine expected to see preset themes that not only take into account colour contrasts, but also offer the ability for additional customization.
Instead, they are able to customize colours freely. Is that a good experience?
The detailed RRSP flow marked with improvements by the team
UX recommendations
The detailed RRSP flow marked with improvements by the team
07
Further accessibility improvements
Concluding the project, I extended user research to further pinpoint opportunities to enhance accessibility in the engine. I delivered a concise video summary of findings and recommendations, shaping accessibility standards across Epic Games' products. Key improvements include:
See the presentation recording: UE Theme Empathy Study
08
Learnings
  1. Wearing the designer and developer hat
    Wearing both hats, I advocate for users while considering technical constraints, and obtain design feedback to implement rapid changes.
  2. Understand the “why”
    Understanding the reasons behind current code/design is crucial before implementation. It streamlines adding new code and avoids unnecessary work by leveraging existing resources.
  3. Prioritization & Allocation
    During my internship, I documented out-of-scope ideas and prioritized feature delivery. I passed on proposed changes for future consideration, ensuring a cohesive user experience without compromising the best solutions due to time constraints.
09
Result & Metrics
The project led to ~80% time saved to customize colours for accessibility. Upon the release of UE 5.1 in November 2022, over 7 million users can now share customized themes, with over 30k themes shared as of December 2023.
Huge thank you to my mentors Lauren and Patrick for the unforgettable 4 months! You’ve helped me fill the gaps in my skills as an UX Engineer and provided opportunities to collaborate with designers across Epic Games through my research. It’s been a fruitful learning experience and I can’t wait to see what else Unreal Engine will enable artists and developers to create for the metaverse.