Skip to content

Narsell/UE5_CaptureTheFlag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Capture the Flag

A Capture The Flag demo game made in Unreal Engine 5 in an effort to learn more about UE with a big focus on UI.


High-level design UI features

There are three main widgets (composed of many different user-created widgets) each of them interacts with an appropriate MVVM viewmodel to update and display its data.

  • Main HUD: Displays player information (health and stamina) as well as match information such as the match remaining time and each team's name and current score.
    Main HUD

  • Friend List Menu: Displays a list of online and offline players which is fetched from a CSV file, player entries on this list get updated in real-time as their online status changes. The state change is simulated through a mocked Player Online Service.
    Friend List Menu

  • Friend Notification Toast: When a friend's online status changes, a small pop-up notification window will notify of this change.
    Friend pop-up


High-level gameplay features

There are two teams that can be configured with different names and colors, you can then assign instances of ATeamBase, AFlag, and ACaptureTheFlagCharacter to one of these teams to change the way they interact with each other.

  • A player on team A can only pick flags from team B.
  • A flag on team A can only be dropped on a base from team B.

When the match time ends, the team with the most points will be the winner, however, if there's a tie some additional time will be added, but a tie is still possible if both teams fail to score a point then.


Automation testing implementation

This project uses Gauntlet and the UAT (Unreal Automation Tool) to implement automated tests. The automation project source code, which handles the execution command and configuration can be found in the Gauntlet Automation Project repository.

The underlying logic of the test case scenario is implemented in a child of the UGauntletTestController class which allows the puppeteering of the state of the game to evaluate the desired outcome.


Concepts and/or features worked on this project so far:

  • UMG Widgets with C++.
  • UMG Viewmodels using UE5's MVVM.
  • UE5's C++ delegates (Non-dynamic, Multicast, and Dynamic)
  • Unreal Automation Tool and Gauntlet for automated tests
  • Best practices in the use of the Unreal Engine Game Framework (Game State, Game Mode, Game Instance, Player State, etc...)
  • Others such as:
    • C++ Components.
    • Collision profiles, object types, etc...
    • Editor-only tools to facilitate gameplay design.
    • Timer Handles.

Controls

  • WASD to move
  • Press Tab to open the friend list menu

About

UE5 Capture the Flag demo game

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published