Hey community, Rick (Lead Game Dev) here to share with you a slightly different kind of update.
As we move closer to the 30_Person_Alpha_Test, it requires us to really start narrowing down and constraining the desired testing goals / information that we are aiming to collect.
Now with this, it’s pretty easy to “over scope” the target testing results, as there is almost no such thing as “too much data”, but even constrained, there is still quite a lot to cover and so I’ll be breaking this writeup down into a multipart update, as I would prefer to provide a more comprehensive idea of what the 30_Person_Alpha_Test is aiming to accomplish as well as the processes and tasks that we are hoping to achieve.
Production plan for the preparation of the (30_Person_Alpha_Test) + the desired outcome of the test.
Preliminary, real world, full system testing of all “Major” game components (Including systematic data collection, player tester feedback, review and post analysis).
Post test analysis and subsequent evaluation of the test data and feedback will be used for overall game and card balancing, function/bug identification, general feature review, iteration and “polish”.
Major game components (Codebase) include full core system framework + required gameplay components. (Feature / Bug testing)
- AWS Multiplayer
- GameSession (PreMatch, MatchSetup, TurnOrder, AttackPhase, EndGame conditions, MatchCleanup, AuthorityPortalCommunication, PostMatchCleanup)
- Initial (Raw) card balancing (Basic + 175)
- Functional and synergy balancing (Abilities)
- Functional and synergy balancing (Spells)
- RPS balancing (Elementals)
- UI/UX feedback (Operational) (Menu, Lobbies, Board, Cards..etc)
- Deck / Builder / Collection (N/A premade decks provided for initial testing)
- Ability System (Functional testing, Outliers and exception identifications)
- Animation system (Ordering, Stacking, Time delays, Clarity of simultaneously active ability statuses..etc)
Preliminary Player Experience components (Feel, Visual, Quality of life…etc) with automatic data acquisition and manual individual tester feedback collection.
- Overall Gameplay Experience
- Menu System
- UI/UX feedback
- Card operating design.
- Board UI elements.
Feedback criteria “Feel”,“Subjective”
In Match
- ”Fun”
- Skill floor/ceiling
- Meta’s
- Balance
- Problems / Difficulties (Comments) (Non Bugs)
- Problems / Difficulties (Comments) (Bugs)
Generally
- Visual Design/Layout
- Overall Artistic Style
- Ease of use / Accessibility
- Intuitiveness / Clarity
- Problems / Difficulties (Comments) (Non Bugs)
- Problems / Difficulties (Comments) (Bugs)
AWS Multiplayer (Functionality breakdown for testing)
//
(Player login and authentication (Using dev provided login credentials))
(Creation of client LobbyServer)
(Request PlayerSession object from the created LobbyServer)
(On Success, connect and join created LobbyServer using provided IP/Port info)
(Store LobbyServer(Self) info in the GameInstance and (In TempLocalApp data for redundancy)
//
(Populate Client Lobby using dev generated data (Including selection of premade decks)
(On_Search for an opponent)
(Find available/suitable opponent within search constraints (Gamemode, Deck selection, Wagering)
(Store opponent LobbyServer info(Incognito) in the GameInstance and (In TempLocalApp data for redundancy)
(Request PlayerSession object from opponent LobbyServer)
(On success connect and join opponents LobbyServer using provided IP/Port info)
//
(Display wagering options (If available)
(Wagering selection / negotiation (Timer))
(On selections confirmed / No selections required (Timer ends, Game start countdown begins)
(LobbyServer Host — Searches for available GameServer)
(If no GameServer available then create a new GameServer)
(Share found/created GameServer Info to both players)
(Store GameServer info in the GameInstance and (In TempLocalApp data for redundancy)
(Both players request PlayerSession objects from the GameServer)
(On success, both players, connect and join the GameServer using provided IP/Port info)
//
(GameServer/Gamemode waits until both players have successfully joined the GameServer, and all client/player setup has completed)
//
GameLoop
//
On_EndGame conditions met
(GameMode — API calls to Dev-Portal (Match data, Win/Loss, Turns,….etc)
(GameMode — API calls to Client-Portals (Match data, (Updates authoritatively)
(EndGame conditions are shared with both clients and stored on the clients GameInstances)
(Both clients to return to their own LobbyServers using stored IP/Port Info (GameInstance))
(GameMode — On both clients disconnecting from GameServer, Terminate GameSession, and unallocate server resources)
//
GAMESESSION (Functionality breakdown for testing)
(PreMatch, MatchSetup, TurnOrder, AttackPhase, EndGame conditions, MatchCleanup, AuthorityPortalCommunication, PostMatchCleanup)
//Prematch
(Authenticate/Reject requesting to join clients)
(Using clients username/ID communicate with DevPortal to Authenticate Client/Player data)
(On_Success Import client data (Deck/Cards, PlayerStats, Visuals, Settings…etc)
(Display waiting/joining screen on connected client/s until both (expected) players have connected and joined successfully)
(On authorised, Match Start)
(Mulligan would happen now)
//MatchSetup
(Match Setup — CoinFlip, TurnOrder, PreAntiCheat, EnergySet, ElementalSet, HandManagerSetup, BoardManagerSetup, DynamicAntiCheat, ObserveManager, EndGameConditions, AnimationSystemSetup, PreCardDraw…etc)
(MatchTurnOrder Starts)
//TurnOrder
(TurnOrderSystem — ActivePlayer, LockoutSystem, EnergySet, DrawCard, HandManagerSetup)
(Player Input Place Card) — (BoardManager, HandManager, DynamicAntiCheat, ElementalSystem, SpellSystem, AbilitySystem, EnergySystem)
(Player Input End Turn) — (DynamicAntiCheat, LockoutSystem, ActivePlayer,
//AttackPhase
(AttackSystem, ElementalSystem, SpellSystem, AbilitySystem, EnergySystem), AnimationSystem)
//(EndGameConditions — Success ?)
//If_Not_Success — (TurnOrderSystem, ActivePlayer, LockoutSystem, EnergySet, DrawCard, HandManagerSetup)
//EndGame conditions
//If_Success — (ActivePlayer, LockoutSystem, AnimationSystem)
On_EndGame conditions met.
//MatchCleanup
(Display win/lose screen on connected client/s)
(Copy match data to client GameInstance)
(Display EndOfMatch screen until clients returned to own LobbySession)