Skip to content

Usage Overview

Aaron Salyer edited this page Jun 26, 2020 · 1 revision

This is a general overview to help developers have a broad idea of how the framework is intended to be used.

One Game Type Per Server Instance

To make it possible to scale with player growth, only one game type should be running on a server instance at one time. Player's should choose their game type in another "Lobby" type server instance and be transferred to an available server instance that is running the type requested.

General Lifecycle of a MiniGame

  • Server instance starts up
  • Plugin loader primes necessary data and files for proper game operation
  • Game type is created
  • New player joins are marked as "Not Allowed"
  • Required teams are created
  • Required arenas are registered and validated
  • Game completes any necessary prerequisites to be prepared for the first match

Game loop begins

  • New "Match" is created
  • Player joins are marked as "Allowed"
  • Queue timer is started
  • Players join server instance into a "waiting area" and are queued to the next Match
  • Queue actions are handled. This includes:
    • Arena selection
    • Player specific configurations (cosmetics)
  • Start conditions are met, typically:
    • Player cap is reached
    • Minimum required players was reached and queue timer has ended
  • Players are assigned to teams
  • Players are teleported to the arena
  • Match cycle starts
  • Match cycle ends based on Game Type rules
  • Remaining players are teleported to post-match waiting area
  • Players are transferred to other servers of desired types
  • New player joins are marked as "Not Allowed"
  • Match statistics are reported
  • Arena is scrubbed
  • Teams are reset
  • Game loop restarts
Clone this wiki locally