Best way to manage groups

Hi,

my game must always have three active virtual rooms where players can choose which room to enter. If they want, the players can be present in all three rooms.

There can be 10, 100 or 1000 players per room.
They must not interact but be registered in one or more rooms.

I think the best thing is to use groups.

A rule will be defined where one player wins over all others. When the player has won the group where he won must be archived (and not eliminated) and the list of players must be kept.
At this point a new group must be created. The groups (or active rooms) must always be three.

Translated into nakama :slight_smile:

The winning player makes an RPC Call to the server declaring the group archiving.

What is the best way to get a new group created when a group full of players is archived?

I was thinking of using an event on the server: this function (create groups) seems to me correct to implement on the server side.

Do you have any suggestions?

Hi @solidsnakeit,

Can you share more info on how the virtual rooms fit into your game and then I can see what Nakama feature might be best to manage them. It would be useful if you could describe your player’s journey as they interact with the feature.

I also have some questions from what you’ve described already:

  1. Are there only 3 virtual rooms at any time for all players, with a limit of 10, 100, 1000 players per room?
  2. What happens if there are more than 1110 players in your game?
  3. What will players do in the virtual room in additon to playing a game, for example: chat?
  4. What triggers the win condition?
  5. How do you want to view past virtual room participants and winners?

Kind regards,
Sean

Hi @sean

thank you for your interest.
Sorry for this long post :slight_smile:

In short: This game is a lottery game.

I’ll briefly describe the player’s journey

  • The player opens the app
  • It is recognized by the device id (or by its login).
  • The player presses “PLAY”
  • The 3 available virtual rooms are shown to him.
  • For each virtual room it is indicated how many players are currently registered.
  • Each virtual room will accepts ONLY 100 players but you can queue up because you have to be there at the right time.
  • For this reason I need to accept 10, 100, 1000 players or even more.
  • At the right time, a notification is sent to all players present in a virtual room.
  • They must open the app in and stay online. (presence)
  • If there are more than 100 players, all the surpluses are diverted to another virtual room (the two remaining virtual room).

A die is rolled and 10 winners are drawn.

  • The 10 winners are notified…they won something…
  • The virtual room closes and is recorded in the history visible to everybody).
  • There are two virtual rooms left. The third virtual room will be created immediately.
  • Three virtual rooms must always be present. Their numbering will be sequential

About your questions

  1. Are there only 3 virtual rooms at any time for all players, with a limit of 10, 100, 1000 players per room?

I guess now it’s clear to you: there will always be 3 active virtual rooms with (potentially) many registered users. They don’t need to be all online. They must be online only when needed: during the data launch.

When a virtual room is archived, the system must create a new one.

YES

  1. What happens if there are more than 1110 players in your game?

I hope to have many online players. there could be many

  1. What will players do in the virtual room in additon to playing a game, for example: chat?

No, I have not thought of activating a chat for the moment: there would be only noise of words.
At most I implement a “like” system like instagram or facebook but nothing more

  1. What triggers the win condition?

This is important: the die is ONLY rolled if there are 100 people online in the same virtual room.

Imagine this: every hour I send a notification to all participants that I am about to roll the dice.
The first 100 who enter the app, press the “play” button, are entitled to participate.
By this I mean that the player must take an action at a certain time in order to be drawn

  1. How do you want to view past virtual room participants and winners?

The old virtual rooms and connected players would like to keep them archived.

If you are a player who has participated in the virtual rooms, in your profile, you will be able to see the virtual rooms where you have participated.

Anyone will be able to see the virtual rooms and the list of winners for each virtual room

Hey @solidsnakeit,

Thank you I think I understand. I suggest the following:

  1. Have 3 groups, “room1”, “room2”, and “room3”

  2. The groups show the total member count

  3. Allow players to register for the room’s lottery by joining the group

  4. Once a player threshold is met, create a match for the group and notify players

  5. Players could be offline, so you need to notify them with push notifications, email, texts or some other method

  6. Players receive the notification and open the app

  7. The first 100 players can join the created match

  8. Run the lottery and don’t allow new players to join

  9. If players drop out they miss their chance

  10. Award 10 players a prize, send them a Nakama in-app notification or other notification

  11. Write the match participants and winners to an admin owned storage collection for the room e.g “room1”

  12. End the match

  13. Remove all the groups members

  14. List previous matches for each group by listing the storage collection e.g “room1” objects

I hope that helps you with your game.

Kind regards,

Sean

Ok, thank you very much.
In short: your suggestion is to have always three groups. When the lottery finish I use storage to have the history

1 Like