A collection of game UI systems developed in Unreal Engine 5 as part of a mentoring project.
The project focused on recreating selected game interface concepts while developing my own implementations of their underlying mechanics. Unreal Engine's UMG system was used as a foundation and extended with a reusable C++ UI framework created for the needs of the project.
Selected interfaces from Assassin's Creed Odyssey were used as visual and functional references during development.
The goal was not to reproduce them pixel-for-pixel, but to understand how more complex game interfaces are structured and recreate similar behavior using custom logic and reusable UI components.
The project combines C++, UMG, Blueprints, Enhanced Input, Data Assets and Unreal Engine's Asset Registry.
I developed a reusable C++ UI framework on top of Unreal Engine's UMG system.
The framework extends standard Unreal Engine UI components with a custom widget hierarchy, dedicated data objects and shared behavior. It includes reusable buttons and containers, common widget state handling, and support for keyboard and gamepad navigation.
Standard Unreal Engine classes such as UUserWidget, UButton, UPanelWidget, UImage and UTextBlock are used as the underlying building blocks, while the project-specific abstraction layer and behavior are implemented in C++.
The inventory is built automatically from UItem assets discovered through Unreal Engine's Asset Registry.
Items are automatically:
- assigned to their corresponding categories,
- sorted by required level,
- arranged into configurable grid rows,
- visually styled according to their rarity,
- connected to a detailed item view.
Selecting an item updates its information and related character statistics. The system also handles item modifiers and engravings.
The Store screen demonstrates a custom scrollable UI component integrated with the framework's navigation system.
It supports keyboard and gamepad navigation and keeps the currently navigated elements within the visible scroll area.
The cultist-style interface combines a custom Data Asset with a network of connected UI nodes.
Character information such as name, title, level, description and icon is stored separately from the interface and assigned to the corresponding widgets when the screen is initialized.
Connections between nodes are drawn using their current widget positions, allowing them to adapt when the layout changes or the interface is displayed at a different size.
The character details panel also calculates its position dynamically based on the selected node and the available screen space.
The project also includes:
- Character screen
- Key assignment screen
- Runtime input rebinding with a custom input preprocessor
- Input Mapping Context modification
- Hint and Quit screens
- Dynamic widget positioning
- Unreal Engine 5
- C++
- Unreal Motion Graphics (UMG)
- Enhanced Input
- Blueprints
- Data Assets
- Asset Registry
This project was developed as part of a mentoring collaboration with @Natalia Nowacka.
Her guidance and feedback supported the development process and helped me explore more advanced approaches to UI architecture and implementation in Unreal Engine.
Selected interfaces from Assassin's Creed Odyssey were used as visual and functional references for educational purposes.
The UI implementations and custom systems presented in this repository were developed as part of my own work during the mentoring process.



