Slider Nuisance in "Cheats" Menu


Author: Daniel Ben Zvi
Date: 10/20/2023 EST

Part 1: The Problem

This week, my primary task revolved around the development of the "Cheats" menu within our game. One of the menu's essential components was a widget responsible for managing the selection of enemy wave number. While Unreal Engine offers various built-in widgets, I opted to use the "Spin Box" widget due to its numerical input capabilities.

However, the issue reared its head when I discovered that the "Spin Box" widget allowed for multiple input methods. Users could input the desired wave number using the keyboard and hitting Enter, adjust it using the plus and minus arrows, or employ a slider. The catch was that all these methods were linked to a common event - "OnValueChanged." While it seemed like a reasonable choice at first, the slider input method posed a problem.

As users adjusted the slider to change the wave number, the "OnValueChanged" event fired multiple times. This meant that even small adjustments, such as sliding from wave 12 to wave 20, triggered the event eight times in a split second. The result was a significant performance hit on the game, as these frequent, unnecessary executions strained the system.

Part 2: Problem Solution

In the spirit of game development problem-solving, I dove into finding a solution for this slider nuisance. The goal was clear - maintain the integrity of the numerical input system while preventing undesired, resource-intensive event executions.

The answer lay in changing our approach. Instead of relying solely on the "OnValueChanged" event, as each input method had it's own individual event, I simply opted to use the other events - "OnValueCommitted" and "OnEndSliderMovement." The "OnValueCommitted" event triggers when the user presses "Enter," and the "OnEndSliderMovement" event activates when the user releases the slider after selecting the desired wave number.

By switching to these two events, I ensured that the required logic executed only once when users committed to their selected wave number or finished slider movement. This not only resolved the performance issue but also enhanced the user experience by eliminating unwanted, rapid event calls during slider adjustment.

As a game developer, it's all about tackling the quirks and hiccups along the journey to a polished, immersive game. This week's challenge and its solution shed light on the dedication and adaptability required to create a seamless user experience.

Get Cyber Siege

Leave a comment

Log in with itch.io to leave a comment.