game / pragma.gameinstance / GameInstanceService /

GameInstanceService #

internal class GameInstanceService(pragmaNode: PragmaNode, instanceId: <ERROR CLASS>, routingUtils: RoutingUtils = RoutingUtils.defaultInstance, gameInstanceProxy: GameInstanceProxy = GameInstanceProxy(), gameInstanceManager: GameInstanceManager = GameInstanceManager(), notificationClient: GameInstanceNotificationClient = GameInstanceNotificationClient(), matchmakingClient: MatchmakingClient = MatchmakingClient(), partyClient: PartyClient = PartyClient(), multiplayerClient: MultiplayerClient = MultiplayerClient(), timeProxy: TimeProxy = TimeProxy.defaultInstance) : DistributedService, ConfigHandler<GameInstanceServiceConfig>

GameInstanceService is a game flow service responsible for creating games, sending connection details to players, and handling any game end processing.

Constructors #

GameInstanceService

fun GameInstanceService(pragmaNode: PragmaNode, instanceId: <ERROR CLASS>, routingUtils: RoutingUtils = RoutingUtils.defaultInstance, gameInstanceProxy: GameInstanceProxy = GameInstanceProxy(), gameInstanceManager: GameInstanceManager = GameInstanceManager(), notificationClient: GameInstanceNotificationClient = GameInstanceNotificationClient(), matchmakingClient: MatchmakingClient = MatchmakingClient(), partyClient: PartyClient = PartyClient(), multiplayerClient: MultiplayerClient = MultiplayerClient(), timeProxy: TimeProxy = TimeProxy.defaultInstance)

Functions #

NameSummary

addPlayersServiceV1

suspend fun addPlayersServiceV1(session: ServiceSession, request: GameInstanceRpc.AddPlayersServiceV1Request): GameInstanceRpc.AddPlayersServiceV1Response

Adds player to a game by invoking GameInstancePlugin.handleBackendAddPlayersRequest.

connectMorePlayersV1

suspend fun connectMorePlayersV1(session: PartnerSession, request: GameInstanceRpc.ConnectMorePlayersV1Request): GameInstanceRpc.ConnectMorePlayersV1Response

Sends connection details from the game server to players in a game.

connectPlayersV1

suspend fun connectPlayersV1(session: PartnerSession, request: GameInstanceRpc.ConnectPlayersV1Request): GameInstanceRpc.ConnectPlayersV1Response

Sends connection details from the game server to players in a game.

createAndLinkV1

suspend fun createAndLinkV1(session: PartnerSession, request: GameInstanceRpc.CreateAndLinkV1Request): GameInstanceRpc.CreateAndLinkV1Response

Creates a new game, links the game server to it, and invokes GameInstancePlugin.handleBackendCreateRequest.

createGameInstanceServiceV1

suspend fun createGameInstanceServiceV1(session: ServiceSession, request: GameInstanceRpc.CreateGameInstanceServiceV1Request): GameInstanceRpc.CreateGameInstanceServiceV1Response

Creates a new game, then invokes GameInstancePlugin.handleBackendCreateRequest to configure the game.

createGameInstanceV1

suspend fun createGameInstanceV1(session: ServiceSession, request: GameInstanceRpc.CreateGameInstanceV1Request): GameInstanceRpc.CreateGameInstanceV1Response

Creates a new game, then invokes GameInstancePlugin.handleBackendCreateRequest to configure the game.

createV1

suspend fun createV1(session: PlayerSession, request: GameInstanceRpc.CreateV1Request): GameInstanceRpc.CreateV1Response

Create a new game, invoking GameInstancePlugin.handlePlayerCreateRequest to customize the newly created game.

endGameV1

suspend fun endGameV1(session: PartnerSession, request: GameInstanceRpc.EndGameV1Request): GameInstanceRpc.EndGameV1Response

Ends a game, invoking GameInstancePlugin.handleBackendEndRequest.

enterMatchmakingV1

suspend fun enterMatchmakingV1(session: PartnerSession, request: GameInstanceRpc.EnterMatchmakingV1Request): GameInstanceRpc.EnterMatchmakingV1Response

Enters a game into matchmaking, using the GameInstanceMatchmakingPlugin to determine matchmaking data.

foundMorePlayersV1

suspend fun foundMorePlayersV1(session: ServiceSession, request: GameInstanceRpc.FoundMorePlayersV1Request): GameInstanceRpc.FoundMorePlayersV1Response

Adds players to a game by invoking GameInstancePlugin.handleBackendAddPlayersRequest.

gameKeepAliveV1

suspend fun gameKeepAliveV1(session: PartnerSession, request: GameInstanceRpc.GameKeepAliveV1Request): GameInstanceRpc.GameKeepAliveV1Response

Called periodically by the game server to signal that a game is still operating normally.

getCacheInfoOperatorV1

suspend fun getCacheInfoOperatorV1(session: OperatorSession, request: GameInstanceRpc.GetCacheInfoOperatorV1Request): GameInstanceRpc.GetCacheInfoOperatorV1Response

Queries cached game instance data by game instance id.

getCacheInfoServiceV1

suspend fun getCacheInfoServiceV1(session: ServiceSession, request: GameInstanceRpc.GetCacheInfoServiceV1Request): GameInstanceRpc.GetCacheInfoServiceV1Response

Queries cached game instance data by game instance id.

getGameStartDataV1

suspend fun getGameStartDataV1(session: PartnerSession, request: GameInstanceRpc.GetGameStartDataV1Request): GameInstanceRpc.GetGameStartDataV1Response

Links the game server to the game and returns a GameStart payload for the game instance.

joinGameInstanceV1

suspend fun joinGameInstanceV1(session: PlayerSession, request: GameInstanceRpc.JoinGameInstanceV1Request): GameInstanceRpc.JoinGameInstanceV1Response

Join a game. Invokes the GameInstancePlugin.handlePlayerJoinRequest function to customize game relevant data for the player.

leaveMatchmakingV1

suspend fun leaveMatchmakingV1(session: PartnerSession, request: GameInstanceRpc.LeaveMatchmakingV1Request): GameInstanceRpc.LeaveMatchmakingV1Response

Removes a game from matchmaking.

leaveV1

suspend fun leaveV1(session: PlayerSession, request: GameInstanceRpc.LeaveV1Request): GameInstanceRpc.LeaveV1Response

Leaves a game, invoking GameInstancePlugin.handlePlayerLeaveRequest.

onSessionTerminated

open suspend override fun onSessionTerminated(notification: PlayerSessionRpc.SessionTerminatedForServiceV1Notification)

Notification handler for player disconnect. Marks player as REMOVED from a game.

removedGameInstanceFromMatchmakingV1

suspend fun removedGameInstanceFromMatchmakingV1(session: ServiceSession, request: GameInstanceRpc.RemovedGameInstanceFromMatchmakingV1Request): GameInstanceRpc.RemovedGameInstanceFromMatchmakingV1Response

Called by matchmaking service if a game has been removed from matchmaking by matchmaking.

removePlayersServiceV1

suspend fun removePlayersServiceV1(session: ServiceSession, request: GameInstanceRpc.RemovePlayersServiceV1Request): GameInstanceRpc.RemovePlayersServiceV1Response

Remove players from a game, invoking GameInstancePlugin.handleBackendRemovePlayersRequest.

removePlayersV2

suspend fun removePlayersV2(session: PartnerSession, request: GameInstanceRpc.RemovePlayersV2Request): GameInstanceRpc.RemovePlayersV2Response

Remove players from a game, invoking GameInstancePlugin.handleBackendRemovePlayersRequest.

syncServiceV1

suspend fun syncServiceV1(session: ServiceSession, request: GameInstanceRpc.SyncServiceV1Request): GameInstanceRpc.SyncServiceV1Response

Retrieves the latest cached game instance info for a specific player.

unlinkV1

suspend fun unlinkV1(session: PartnerSession, request: GameInstanceRpc.UnlinkV1Request): GameInstanceRpc.UnlinkV1Response

Unlinks a game server from a game, invoking GameInstancePlugin.handleGameServerUnlinkRequest.

updateGameInstancePartnerV1

suspend fun updateGameInstancePartnerV1(session: PartnerSession, request: GameInstanceRpc.UpdateGameInstancePartnerV1Request): GameInstanceRpc.UpdateGameInstancePartnerV1Response

Updates a game by invoking GameInstancePlugin.handleBackendUpdateRequest.

updateGameInstanceServiceV1

suspend fun updateGameInstanceServiceV1(session: ServiceSession, request: GameInstanceRpc.UpdateGameInstanceServiceV1Request): GameInstanceRpc.UpdateGameInstanceServiceV1Response

Updates a game by invoking GameInstancePlugin.handleBackendUpdateRequest.

updateGameInstanceV1

suspend fun updateGameInstanceV1(session: PlayerSession, request: GameInstanceRpc.UpdateGameInstanceV1Request): GameInstanceRpc.UpdateGameInstanceV1Response

Updates a player’s game by invoking GameInstancePlugin.handlePlayerUpdateRequest.

verifyPlayerPartnerV1

suspend fun verifyPlayerPartnerV1(session: PartnerSession, request: GameInstanceRpc.VerifyPlayerPartnerV1Request): GameInstanceRpc.VerifyPlayerPartnerV1Response

Verifies that players connecting to the game server are not misrepresenting their pragma identity.