In my Android game, I want players to be able to invite their friends to a game match that will take place at a later date and time. The player who created the match chooses this date and time. I want these invitations to be able to be pending, meaning that the users don't have to accept an invitation right away, but rather have them in a pending list where they can accept them anytime, as long as it is before the date and time that the game will take place. The game itself is a real-time based game.
I thought about using Google Play Game Services to accomplish this and other things in the game, like achievements etc, and I believe it will work well with the actual game. The fact that it works cross platform is also a big plus. The problem is how invitations are handled by Game Services. From the Google developer documentation: https://developers.google.com/games/services/common/concepts/realtimeMultiplayer
Room: A virtual meeting space where games take place. Players can be invited to join rooms, or be automatically matched into them. Players that are connected to the same room can exchange game data with each other.
Participant: Players that can participate in a game. A local player can send invitations to other players from their circles to join a room, or request to be auto-matched to random players. A player who is sent an invitation will see a notification to accept the game invitation. If the player accepts the invitation, they are joined to the room. The state of the participants in a room is managed by Google Play game services and is sent to the game clients.
This is all done on the spot, and the game is supposed to be played immediately when all the players has accepted the invitation. My question is: Is there any way to work around this in Google Play Game Services, in order to use my invitation system? Or is there any other game service that can support what I want to achieve?
One of the ideas I've had of a work around in Game Services, is handling it like two different invitations: a player invites his or her friends to a game that will take place some time later. When the invited friends accept this invite, a timer is set in their application, 10 minutes before the game will take place. When the timer goes of, a dialog is shown where he players, again, can accept whether they want to participate in the game or not. This is when the room is created, and the game will work like a normal real-time multiplayer game. The problem with this solution is the invites. I don't think they can be pending, but must be accepted on the spot, which is not how my application is supposed to work.