Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Multiplayer: starting to play as quick as possible

Discussion in 'Game Design' started by StealThePixels, Feb 2, 2016.

  1. StealThePixels

    StealThePixels

    Joined:
    Apr 2, 2015
    Posts:
    68
    Suppose a player enters multiplayer mode and no human opponents are available at that very moment.

    We could make the player wait until another human enters the room, but he would get bored soon and will just leave.
    We could make him play against an AI bot while waiting for a human to join the room, so that he can start playing as soon as possible which is important.

    But when the second human enters the room, we have a design choice: do we force the match against the bot to end immediately and we automatically start a new match between the 2 human players, or we make the second human just watch the match between the first player vs bot until it finishes, and only then he can challenge the 1st human ?

    The first option gives priority to making humans play against humans as much as possible, which is more fun because AI is not as competitive and unpredictable as an human can be.
    But on the other end it is rude to terminate the match against the bot in that way.

    Maybe we better show a popup asking the 1st human if he wants to terminate and challenge the human or make the latter wait and watch ?
    What's the best?
     
  2. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    If the game can support more than 2 players in a match, then I think it's much easier: just let the human join in, on the bot's team.

    But it sounds like yours is a 2-player game. So yeah, that's harder.

    I think, in general, it would be better to finish the match. But there would be no harm in letting the human player know another human is waiting.

    In fact I would suggest that, in the lobby, you have some way for players to indicate whether they're ready for a match or just looking. Just a little "ready to play" flag they can put up. And then, when they start watching a match, the UI should display "SuchAndSo is now watching the game," with that same little flag next to their name if they're looking to play.

    So, now if it's a human playing a bot, they can just quit the match (which should have no repercussions in this case) and say "Hey, want to play?" (Confident that the answer is probably yes, since SuchAndSo had his play flag up.)

    But on the other hand if somebody only has a few minutes before they know they have to go somewhere, and is just popping in to see what's going on, they can leave their Ready flag off, watch a match, and now the human player knows not to bother quitting.

    So all this works really well, I think. But, don't sell your bots short... most bots suck because not enough time/expertise was invested in their AI. With enough effort, I believe a bot can be a great competitor — not just challenging, but fun and reasonably social too!
     
    StealThePixels likes this.
  3. illjuicebox

    illjuicebox

    Unity Technologies

    Joined:
    Jan 6, 2016
    Posts:
    21
    Another possible solution is making the human replace the bot in the current game without canceling. I'm not aware of any competitive 1v1 games that do this, but Left 4 Dead does, and similarly Rocket League. Keeping up a constant flow of gameplay is important, and I think making players wait or interrupt ongoing games to play would be detrimental to their fun.
     
    Kiwasi, JoeStrout and tedthebug like this.
  4. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    That's a good point — and of course it applies in the other direction too: when a human drops out, you can have a bot smoothly take over so the match doesn't have to end.
     
    StealThePixels and illjuicebox like this.
  5. StealThePixels

    StealThePixels

    Joined:
    Apr 2, 2015
    Posts:
    68
    I think it would work well the other way around: when a human drops out a bot takes over, just to avoid the gameplay to brutally end.

    But if we are playing , say, a racing or fighting game and the bot is at a great disadvantage, if the second player joins the room replacing the bot, he would start with a disadvantage and it's not fair.
    A fair match must give everybody an equal chance to win.
    Does Left 4 Dead make players replace bots? When the bot is wounded it is not a good moment to replace him :)
    Maybe they wanted to brake the rules and it is still fun.

    In general i would use the versatile solution suggested by JoeStrout :
    Show a popup when the 2nd human joins and wants to play (not only watch), and you can choose to challenge him in a new match or to make him wait.

    @JoeStrout making the player join a team or another is hard to implement because it has to be done in a way that both teams have the same chance to win, for example in a FPS when a player is playing vs bot, if the second human joins the bot's team, the 1st human is going to fight vs 2 opponents which is like an handicap for him.
    Maybe if there are 2 (4,6,.. an even number) players entering the room at the same time it can be done if they are equally distributed on the teams.
    And also... how can you implement that in a racing game, even if it allows more than 2 racers, say 4?
    You can't since that only applies to team games and racing usually is not.
     
  6. illjuicebox

    illjuicebox

    Unity Technologies

    Joined:
    Jan 6, 2016
    Posts:
    21
    Left 4 Dead does have you replace bots, and if you go idle for a certain time, a bot will also replace you until you return. You're right, it's not exactly fair especially in competitive games, which is why in L4D you also have the option to wait in a lobby to start from scratch.

    I think it comes down to what you want to prioritize - equal opportunity or playtime. You should also research what your players care more about too. Also, knowing what your game is, unless this is just a theoretical question, would be helpful, because we're just designing in a general sense.

    This is the one flaw with this design, is that one player gets to play while the other is not guaranteed that they will get to play soon. It's all dependent on what the actively playing player wants to do, and not both. Every player has a new bias; mine is that I'd rather play asap unless I'm doing ranked. Again, it depends on what you want to prioritize in the context of your game.
     
  7. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    The bot won't care about rudeness and the 1st human player entered the multiplayer mode because he wanted to play a human. To me that wouldn't even be a question, get humans to play against each other as soon as possible (imho). You might want to take a look at how quake live does the 1vs1 multiplayer. They probably tweaked that experience pretty well.