In this comprehensive course, you’ll build a fully-featured, AAA-quality frontend UI system entirely from scratch using Unreal Engine 5’s Common UI framework and C++. From layered menus to full gamepad support, you’ll learn how to create immersive and modular interfaces designed for real-world projects.
In this comprehensive course, you’ll build a fully-featured, AAA-quality frontend UI system entirely from scratch using Unreal Engine 5’s Common UI framework and C++. From layered menus to full gamepad support, you’ll learn how to create immersive and modular interfaces designed for real-world projects.
You’ll start by setting up the core UI foundation. We’ll create a primary layout widget, register widget stacks using gameplay tags, and implement asynchronous functions for pushing widgets onto the screen. Once that’s in place, you’ll build a responsive “Press Any Key” screen and display it using your new widget flow.
Next, you’ll create a dynamic main menu system. We’ll use Common UI buttons backed by native C++ classes to add contextual button descriptions, action buttons, and a flexible confirmation screen. We’ll also ensure full gamepad support is seamlessly integrated. Along the way, you’ll learn how to structure UI features in a modular, reusable way for both Blueprint and C++ projects.
Once the core menu is complete, you’ll move on to building a robust options menu. This system will feature tab buttons at the top, a detailed view panel on the right, and support for multiple settings categories including gameplay, audio, graphics, and input. You’ll learn how to combine data objects with Unreal’s Data Registry system to dynamically populate the UI.
After setting up the structure, we’ll focus on functionality. You’ll implement logic to reset values to default, customize how list entry widgets are generated, and create a custom Game User Settings system to store and load player preferences from config files.
With that foundation in place, we’ll dive into creating audio and video settings. You’ll add controls for adjusting window mode, resolution, shadow quality, frame rate limit, and more—while managing data dependencies and conditional logic properly for a clean, scalable architecture.
Finally, you’ll implement startup and in-game loading screens that integrate seamlessly into your project’s UI flow, giving players a polished experience from launch to gameplay.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.