Server layout

Scalable infrastructure for up to 1M concurrent users, featuring distributed game and group servers connecting clients across North America, Europe, Russia, and Australia; central coordination via DGW , Analysis, and Deployment hubs with databases; supporting local play, scheduled tournaments, and casual friend matches with low-latency links.

Challenge

  1. Two (or more) players come online and get the group-client from the web server
  2. One of them decides to challenge the other through the group server
  3. The group server looks up the other player on the DGW if unknown
  4. If the other player is not on the same group server, the coordination server is asked
  5. The second player accepts the challenge after being notified by the group server
  6. The group server requests a game slot on a game server that is fair to both
  7. The game client for that particular game is opened in both browsers (or on both devices)
  8. The game is executed through the game server
  9. Once the game is over, high scores and bragging rights are registered on the DGW

Blind matching

Pre: User is logged in and in groups

Used for: When a user wants to play a casual game with any user

1) Casual game - blind matching

  • Request for a game goes to a group server
  • 1.1) Group server attempts to match locally. If no match is found:
    • 1.2) Group server sends request to Coordination Server

Blind matching - local match

  • 1.1.1) Group Server requests a gameslotid from the closest Game Server
  • 1.1.2) Game Server requests UserProfile and UserGameProfile from DGW
  • 1.1.3) Group Server sends gameslotid to both clients
  • 1.1.4) Both clients log in on the Game Server with token, gameid and gameslotid

Blind matching - global match

  • 1.2.1) Coordination Server attempt to find a match
  • 1.2.1a) If no match is found Group Server is notified and then user
  • 1.2.2) Coordination server picks a Game Server between the two users and request a gameslotid from it
  • 1.2.3) Game Server requests UserProfile and UserGameProfile from DGW
  • 1.2.4) Group Server gets the gameslotid.
  • 1.2.5) Gameslotid is sent to user
  • 1.2.6) User logs in on the Game Server

Establish connection (TCP/IP)

  • Login:
    • Client initiates connection to server
    • Server Connection Manager sends welcome message and requests credentials
    • Client provides login credentials
    • Server validates credentials and responds with OK/denied status plus game state
  • Relogin:
    • Client reconnects using previous connection details
    • Sends old connection ID and last received message ID
    • Server matches connection and identifies any missing messages
    • Synchronizes client state by sending missed messages
  • Processing:
    • Bidirectional message exchange between client and server
    • Server processes incoming messages through game logic
    • Messages include protocol information (ConnId, SeqNum, MaxRxMsgId)
    • Continuous communication loop for real-time interaction
×