top of page

FLEX YOUR REFLEX

Unreal Engine | Live on Google Play Store

Flex Your Reflex is a local 2-player multiplayer game that pushes your reaction time and reflexes to the limit in a fun and competitive setting.

The entire project was made and published using UE 4.27. But eventually upgraded it to UE 5.2.

Concept

The game is set in the wild wests taking the concept of fast draw, where 2 cowboys face each other in a duel showdown.

The heart of the game is the fast draw dueling system. Both the players have a button to shoot. They must wait for the "Fire" command and shoot before the enemy does to successfully win the round. Timing and reflexes are crucial.

Game Modes

Best of 5

Player can compete with each other in a best of 5 format. Whoever wins 3 rounds first, wins the game.

BO5.png
Unlimited mode.png

Unlimited

This mode offers variety of possibilites to the player:

  • Endless rounds

  • Setting their own round limits

  • Solo players can practice their reflexes endlessly

Mechanics

Player name

Players can set their names before starting the match.

Name Your outlaws.png
Edit name.png

Once the names are updated, the players can select the game mode by tapping on "Best of 5" button or "Unlimited" button to start the game.

Player Input

There are 2 input buttons, one for each player. 

If the blue button is pressed first, it registers player 1 input and sets "left is pressed" to true.

If the Orange button is pressed first, it registers player 1 input and sets "Right is pressed" to true.

Left_Pressed.png
Right Pressed.png
Player Input.png

Scoring System

Once the input is registered from the player, it checks whether the left button is pressed or the right button, and adds score accordingly.

Winning Counter.png

Updating win counter

If the player shoots before the "Fire" command, the round isn't counted giving no points to anyone, and the round restarts.

Fired too soon.png

By default, the "Fired Too Soon" is false. "Fire" command has a random delay of between 0.5 seconds to 8 second. It checks if any of the player has already pressed the shoot button. If not, it spawns the "Fire" command and sets the "Valid Fire" boolean to true.

While registering user input, it checks whether it was a valid fire or not, If true, it goes to the winning round function and if false, it sets "Fired Too Soon" to true which stops all further functions from triggering and goes directly to round "ResetGame" function. 

After each successful round completion, it checks if either of the player reached a score of 3. If the condition gets true, the match is over and the player with 3 points wins the match.

Checking for best of 5 winner

Flex Time

I used Unreal's Timer node to link the start and stop functions of the Flex Time. As soon as the "Fire" command is spawned, the StartResponseTimer is called and the timer starts. When any shoot input is registered, StopResponseTime is called and the stopped time is dispayed the UI.

Flex TImer.png

I used Macro Library blueprint to show milliseconds and converted time in decimals to text.

Orange Win
TimeConversion.png

Round reset

After each round, either Successful or Fired too soon, ResetGame is called which resets all booleans to default and removes all the existing widgets and spawns the "start" button.

For Best of 5, round reset is called after it check for whether any of the player has won 3 rounds.

Round Reset_1.png
Round Reset_2.png

cHARACTER and animations

The character used is a free asset that I found online. I edited the mesh to match the visual I needed, and also, optimized it a bit.

 

I used Mixamo to rig the character and download all the animations that can be seen in the game. For holstering and shooting, I modified the animations to play them through the state machine.

5.gif
4.gif
1.gif
3.gif
2.gif
Sound Cue.png

aUDIO

All audios in the game are royalty free that I found online.

I used inbuilt randomizer in Unreal Engine 4 to randomise audio on death as well as match victory.

Publishing the Game

This project for me was to learn the entire development process, including, publishing the game on Google Play Store.

The first AAB that I uploaded on the Play Store was on Unreal Engine 4.27 but eventually had to upgrade to UE 5.2 due to API limitations.

The process of publishing games on Google Play Store itself has a big learning curve that inlcudes, but not limited to

  • Google Play Console

  • Setting up Android SDK

  • Build size

  • Play App Signing

  • Google Play Billing

and many other problems than came with making builds for Android using Unreal Engine 4.27 and Unreal Engine 5.2, and uploading them on Google Play Console.

Try out the GamE On

Google Play Store

bottom of page