2
\$\begingroup\$

Fortnite Battle Royale is an example of a non-continuous multiplayer game. 100 players join a game which has fixed start and end times. When there's only one player remaining, the game ends.

Agar.io is an example of what I like to call a continuous multiplayer game. Players join in and die out, but the game goes on forever.

How would a game developer design a system to split players into different groups when there're too many online to fit in a single game? Let's say a game has a limit of 10 players, and 50 players are trying to join. The server will split them up into 5 separate groups. New players will be sorted evenly into these groups to replace players who died. When the player count increases past the global limit, new games will be created to fit them. The problem arises when the player count decreases. The system needs some way to seamlessly delete extra groups of players that are no longer needed. How can that be done without A) interrupting games to merge players together or B) block new players from joining into the group(s) that require deletion and waiting for everyone in it to die (which will be a bad experience for the last few players).

Agar.io obviously has a player population management system that works, so how do they do it?

\$\endgroup\$
  • \$\begingroup\$ Does your game allow players to join existing games, or is each match played from start to end with fixed teams? How long does a match take? \$\endgroup\$ – Philipp Jun 14 '18 at 11:18
  • \$\begingroup\$ Players can join existing games if there is room available. If there isn't, they get put into a new game. I don't know how to end games without having problems. \$\endgroup\$ – clickbait Jun 14 '18 at 14:11
  • \$\begingroup\$ Also, as it's been noted on another of your questions, please do not vandalize post content. Making the text very small makes the post very hard to read. \$\endgroup\$ – Vaillancourt Jun 15 '18 at 2:54
1
\$\begingroup\$

Merge the Games

If i understand it correctly, you have 5 different games with max 10 Players. Problem: you don't have enough players to refill every match.

Possibloe solution: merge the games slowly. Show the Players from the other game ghostelike for 10-20 seconds. Maybe with a warning on the screen, that the games get merged. So everyone can see the other players for a moment, before they get merged in and shot directly.

How does your game handling spawning of new players? This maybe could also done this way. So there would be no difference in new players joining, or merging two matches.

How could the server manage Players? Make a lobby for waiting players. If there are (n/2)+1 players, where n is the max size of a game, create a new one. If the number of players drops below n/2 in two matches merge them.

Problem: People like playing with friends. If you assign everything automatically this won't be possile. You could let them say, who they want to play with, but that really depends on the type of game.

\$\endgroup\$
2
\$\begingroup\$

Team Auto-balance: A good way to balance the teams is making players change teams mid-game. This would need to be handled with care, as it would be very annoying for a player to keep changing teams, only to end up losing because in the last match they were moved to the losing team, but they are the player with the best score. (not true in continuous games)

Team-up: Don't forget that when you have a game with multiple teams, the teams consist of actual humans, which means if there are 5 teams in the game, and one team is dominating everyone else, most likely all other teams will start attacking that one team, to bring balance. Yes, this is up to the players, and not really in your control, but isn't that true for most multiplayer games anyway?

Weak players have different skills: What I like in agar.io is also that when you become strong, you start moving slower, and new players move fast. Although most likely the strong player can get them, the new players have a chance to avoid being killed, so they don't feel that underpowered. So a nice idea would be "weak players have skills focused on escaping, and as they grown stronger, they focus on being more powerful".

\$\endgroup\$
-1
\$\begingroup\$

Give the enemy team advantages.

I thought about Bf1 in this case.

The losing team will get a bonus - e.g. an airship that could (if used correctly) give the losing team the advantage to even out with the opponents.

\$\endgroup\$
  • \$\begingroup\$ This sounds like a dangerous advice. You don't really want to reward the losing team for performing bad, and punish the winning team for performing good. \$\endgroup\$ – TomTsagk Jun 15 '18 at 10:08
  • \$\begingroup\$ Is your "Weak players have different skills" not kind of the same? I guess it really depends on the game he is developing. In battlefield 1 it seems to be working out (AAA title with millions of users - which does not mean that it has to be good, but it is a good indicator) \$\endgroup\$ – Marco Zielbauer Jun 16 '18 at 13:04
  • \$\begingroup\$ You literally said in your answer "the losing team will get a bonus", this is rewarding the losing team for losing. My "weak players have different skills" clearly mentions that depending how it is handled, a game can have weak players have "escape" skills, while strong players have "fighting" skills. As a player is becoming better, they lose escape skills, and become better fighters, like in agar.io. Nobody is punished, winning players are rewarded by becoming stronger, while weak players have a chance to escape and try to become stronger. \$\endgroup\$ – TomTsagk Jun 16 '18 at 14:57
  • \$\begingroup\$ now I understood you answer! I think your answer is better then as it does not directly "reward" the losing side. I still think your answer is pretty hard to implement as most of the skills I can think of could be exploited. \$\endgroup\$ – Marco Zielbauer Jun 16 '18 at 17:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.