I've encountered a bug that I'm not sure how to fix while trying to get the Cast Game Manager up and running. I've been able to connect the game manager, and get state updates. After this, I attempt to send a PlayerAvailableRequest. The receiver updates the game debug ui indicating that the request was successful, but then crashes while trying to send it's response message to the sender. Below I've attached the relevant console logs, as well as a picture of the GameDebug UI. Please let me know if there is something that I'm missing on my end.
[ 59.643s] [cast.receiver.IpcChannel] Received message: {"data":"{\"type\":1100,\"requestId\":1}","namespace":"urn:x-cast:com.google.cast.games","senderId":"219:C97BEC14-B8AF-4BD1-855A-C55CEED51E43"}
cast_receiver.js:37 [ 59.650s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver.js:37 [ 59.669s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.games","senderId":"219:C97BEC14-B8AF-4BD1-855A-C55CEED51E43","data":"{\"type\":1,\"requestId\":1,\"playerToken\":null,\"statusCode\":0,\"errorDescription\":\"\",\"gameplayState\":1,\"lobbyState\":1,\"players\":[{\"playerId\":\":0\",\"playerState\":1,\"playerData\":null}],\"gameData\":null,\"gameStatusText\":\"\",\"gameManagerConfig\":{\"applicationName\":\"Code Cast\",\"maxPlayers\":2,\"version\":\"1.0.0\"},\"extraMessageData\":null}"}
cast_receiver.js:37 [ 59.689s] [cast.receiver.IpcChannel] Received message: {"data":"{\"type\":1,\"requestId\":2}","namespace":"urn:x-cast:com.google.cast.games","senderId":"219:C97BEC14-B8AF-4BD1-855A-C55CEED51E43"}
cast_receiver.js:37 [ 59.696s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_games_receiver.js:220 Uncaught TypeError: Cannot read property 'call' of undefined cast_games_receiver.js:220 b.Zbcast_games_receiver.js:221 l.f.EventTarget.dkcast_games_receiver.js:218 b.dispatchEventcast_games_receiver.js:261 Qcast_games_receiver.js:255 cast.receiver.games.j.Clcast_receiver.js:22 ybcast_receiver.js:21 g.dispatchEventcast_receiver.js:33 R.gbcast_receiver.js:22 ybcast_receiver.js:21 g.dispatchEventcast_receiver.js:31 g.hbcast_receiver.js:22 ybcast_receiver.js:21 g.dispatchEventcast_receiver.js:28 g.hb
EDIT: I've narrowed it down to using a GameManagerListener via addGameManagerListener. I've made my listener as simple as the example, but it still crashes.
Game Manager Listener Object:
MyGame = function () {
};
MyGame.prototype.onPlayerAvailable = function (event) {
console.log('Player ' + event.playerInfo.playerId + ' is available');
};
MyGame.prototype.onPlayerReady = function () { };
MyGame.prototype.onPlayerIdle = function () { };
MyGame.prototype.onPlayerPlaying = function () { };
MyGame.prototype.onPlayerDropped = function () { };
MyGame.prototype.onPlayerQuit = function () { };
MyGame.prototype.onGetGameManagerStatus = function () { };
MyGame.prototype.onGameMessage = function () { };
MyGame.prototype.onGameLoading = function () { };
MyGame.prototype.onGameRunning = function () { };
MyGame.prototype.onGamePaused = function () { };
MyGame.prototype.onGameShowingInfoScreen = function () { };
MyGame.prototype.onLobbyOpen = function () { };
MyGame.prototype.onLobbyClosed = function () { };
line adding it:
this.mMyGame = new MyGame();
this.mCastGameManager.addGameManagerListener(this.mMyGame);
Sorry - this is because of errors in the documentation guide:
For addGameManagerListener, implement all of the methods of GameManagerListener listed in https://developers.google.com/cast/docs/reference/receiver/cast.receiver.games.GameManagerListener
For example, you need to add:
As for implementing the callback for the defined GameManager property, make sure there are no syntax errors, e.g.
and not
Apologies again - we'll get the docs fixed. :)