Skip to main content

Manage Game Session

Last updated on

Create a Game Session in the Session Browser

In this section, we will be registering the game session to the session browser. This step will also check whether there are enough players in the database. When the game has enough players, the game session will be registered in the session browser and a Session ID will be created. This ID will be used to register the session in the DSMC.

# 16. Create session
sb_session, error = create_session(
env.game_namespace,
env.session_browser_game_version,
env.session_browser_map_name,
env.session_browser_mode,
env.session_browser_password,
env.session_browser_type,
env.session_browser_username
)
if error:
return error
log_done(f"create session on session browser")

sb_session_id = sb_session.

Register a Game Session to DSMC

Once you have successfully created a session, register it to the DSMC.

# 17. Register session on DSMC
_, error = register_session_on_dsmc(
sb_session_id,
env.dsmc_deployment,
env.game_mode,
env.game_namespace,
party_id=party_id,
user_ids=user_ids
)
if error:
return error
log_done(f"create session on dsmc")

# 17.a. Wait for DSMC to register the session
time.sleep(5.0)

Claim a Game Server

This function is used to claim a game server from the DSMC service.

# 18. Claim server
_, error = claim_server(
env.game_namespace,
sb_session_id
)
if error:
return error
log_done(f"claim server from dsmc")

Add Players to the Game Session

This function adds players to the server in the Session browser.

# 20. Add players to server in Session Browser
for idx, uid in enumerate(user_ids):
_, error = add_player_to_sb_sesion(env.game_namespace, sb_session_id, uid)
if error:
return error
log_done(f"add player ({uid}) to session [{(idx + 1):02d}/{len(user_ids):02d}]")

Get Session Update

After adding players to the Matchmaking session, create a function to obtain the latest session information and to check if the session is now able to be joined.

# 21. Get session update from Session Browser
sb_session, error = get_session_from_session_browser(
env.game_namespace,
sb_session_id
)

# 22. Check if session is joinable
if not sb_session.joinable:
return create_response(400, "Unable to join the session.")