I was responsible for the development of UI on the main menu.
Being a school project, we had restrictions placed on our project, by both our instructors and the outline of our project. These restrictions included:
Must be fully functional on a two player arcade kit and an Xbox controller.
Up to 4 players must be able to play together on their own controllers.
CPU's needed to be able to be added and removed by the player during character selection.
Required to employ the use of the Enhanced Input Plugin.
There was also the problem that in Unreal 5.2, the Enhanced Input Plugin could not communicate with UI objects, as the key events were processed in a separate system.
CommonUI exists as a resolution to this issue, but when integrated, commonUI created major issues that made the game unplayable.
So, with the agreement of the team, I opted to create my own Enhanced Input to UI system.
These restrictions created complexity that challenged me to think outside the box, forcing me to learn the in's and out's of the UI system.
To summarize, when in UI mode, the Enhanced input events will filter into the Player controller.
The event will filter from the Player Controller into the UI container and then the focused UI element.
The element will take this event and process the input, either using the surrounding elements to determine which element to focus on next, or processing the interaction with the element.
I created a tool where developers could create preset assets for a buttons appearance, and easily embed extra features like a button indicator on top of the button.
Button Indicators
Font Styles
Named Slots for adding extra decoration
Button Indicators are used to tell players what input to use to execute certain actions.
It can be applied in multiple ways.
For starters, this asset is used on our buttons to show them how to activate it.
Its also used in a row at the bottom of our character selection screen.
They can be customized to have their own color and text, or use their own sprite in the case the key is a unique input (bumpers, joystick, etc).
Font Styles are a Data Asset that can be created, that allows quick iteration on every major variable in the TextBlock widget element (font, alignment, color, padding, etc).
Instead of fixing one element and then slowly copying it to the rest, Font Styles allow all the elements to be edited from one location.
Named Slots are a built in Unreal feature to allow for template assets to be made.
I used two of these slots on my custom buttons. One of these slots is basic decoration, adding extra text, or sprites.
The second slot only appears when the button is focused.
Each programmer was paired with an artist to develop and design one of the playable fighters in the game.
Together, me and the artist developed on the snowboarders concept, building a moveset and character writing. As I grew up in a town near a ski hill, we chose to play homage to the historical tourism spot by making her from that same town. We chose to hone in on Matcha's snowboarding motif, basing her entire moveset on her daring personality.