A large feature that I worked on in tandem with Michael Campbell was the customization feature. The goal of this feature was to allow the player to personalize their bike into the best tool possible they could use to tackle each track. This involves tweaking different elements on the bike to make it behave differently overall. This will come down to personal preference as well as defining features of a track which will suit different configurations of bike.
This adds another dimension of complexity to the game that can engage the player. Not only do they get a chance to compete with other players in their ability to navigate an individual track, but they also get to show off their ability to fine tune a bike to suit different situations.
This involved navigating to a separate scene inside the unreal project while running the game. We were already doing this by navigating between the main menu and the Irish level stage but it is not something I understood how to do. I had to learn how to manage the lifetimes and states of these scenes while switching between them which was mostly complicated by things like loading UI elements in different areas and defining behavior of things like the mouse pointer in different scenes.
I added a button to the main menu which allowed us to switch into the customization area, as well as a back button which performed the same switch in reverse by loading between the two different scenes.
Picking the settings
I added the buttons to the scene so that the player would be able to pick different settings for the bike. The menu options to switch to the customization area as well as these UI elements involved learning about the UMG system in unreal. I was mostly able to use things like the main menu that were developed by Shane Gavin as a base to learn how to implement this separate menu for the options. This was fairly straightforward once it was placed in the scene. I hooked up some data sources so that when different buttons were pressed it would update the current selection for different part of the bike.
From old project
The setting used for this customization of the players bike was designed to emulate a club house / garage that the player would use as a base of operations for constructing their bike. The actual scene used for this was put together for myself as a part of another module, special lighting effects, with the intention that it would be used in the final game. This meant that there was not much work to be done to get this scene into a finished state. The original scene was reasonably large but we simply chose to use the single garage corner.
When setting up the inputs for this scene is was a bit of a different paradigm compared to our main track level which involved the player controlling the bike and moving around. For this scene we wanted there to be a fixed camera, while the inputs would do things like rotate the bike and select different options for the bike. This required a different type of actor set up than I was used to dealing with which took some time to arrange correctly so that all of our data elements could communicate correctly within the scene.
Testing for values
The current customization options for the bike affect the bike in different ways, such as how effective brakes are, or how light the frame of the bike it. We picked some initial values for these based on some limited testing, but our main goal is to use this as one of the main areas that we can mold from end user testing and feedback. We plan on trying a variety of different sets of modifications and determining which are more satisfying to the player to use as well as what differences are needed for the player to feel like they are in control.