Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GameExperience: Timed GameStateComponent #351

Open
wail opened this issue Aug 31, 2024 · 0 comments
Open

GameExperience: Timed GameStateComponent #351

wail opened this issue Aug 31, 2024 · 0 comments

Comments

@wail
Copy link
Collaborator

wail commented Aug 31, 2024

High Level
Define a new Timed-Mode GameStateComponent

Technical Overview
The standard UnrealEngine GameFramework classes are not usually used in a modular or composable way. In order to make OpenTournament more extensible, we want to utilize the concept/framework of GameExperiences. A GameExperience is a concept that encapsulates everything about a Mode, from the rules of the mode, the HUD elements of the mode, even the characters+charactercomponents in the mode.

Utilizing GameExperiences we compose an 'Experience' from various single-purpose components. Assembling various components together can easily recreate classic modes as Experiences, but also gives us flexibility to rapidly construct new Experiences without additional engineering.

Design Discussion
Do we actually want a time-based GameStateComponent? Time-limit (or lack thereof) might be one of the few things we should handle natively in the GameMode class. However, not all modes are necessarily time-limited or need certain elements (e.g. visible timer), so using a GSC has some purpose to it as well.

Technical Details & Acceptance Criteria
We define a Time Based GSC.

  • Define a Configurable TimeLimit
  • Define a Configurable OverTime/ExtendedTime if game resolution is not reached in regulation time (might also be another component - discuss?)
  • Define configurable X TimeRemaining messaging
  • GameStateComponent communicates State to other components & UI elements utilizing GameplayMessagingSubsystem
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

1 participant