Best peer to peer network solution for a multiplayer shooter


I am currently going to initiate a multiplayer shooter project in a third person perspective, which will take an estimated 1-2 years to create.

I have two multiplayer game modes to choose from for my shooter game concept.

first multiplayer game idea: 50 vs 50 players in one match. (similar to Fortnite)

second multiplayer game idea: 10 vs 10 players which plays 10 matches. (similar to CS GO)

My peer to peer networking knowledge is on a minimal level, which means that I will hire a pro freelancer to implement the system for me.

My biggest questions are:

Which game mode gives the player most playtime apart from the time required to join a game? (I am assuming that it takes more time to join a match when using a p2p network compared to dedicated servers)

How much does a bad internet connection effects the other players if one of the players have it?

Is it hard to implement host change if the host player leaves a game?

Is it hard to implement a region system? For ex. so that Europeans play with each other and north Americans plays with each other etc.

Final question: which game mode would you recomend to be most stable and relaiable when using a peer to peer network system?

I would love to receive additional feedbacks regarding peer to peer multiplayer systems.
All kinds of information are of great value, since I have already spent one year conception the game’s aesthetic.

If it was a single player game you might be able to make it in 1-2 years but since it is multiplayer it is more likely going to take 3-4 years before the game gets anywhere near being finished.

Unreal uses an Authoritative Server Model, not p2p, but you might be referring to the Listen Server Model where one of the clients is also the host. Very few residential connections will be able to handle 20 players and even beefy servers can’t handle 100 players unless if the game is very simple.

If your game becomes very demanding for the host then yes it will take much longer as it has to wait for a suitable host to join the matchmaking server.

Depends how competitive the game is. In competitive games people with very high ping normally gets kicked as it can be difficult to make the game fair for both parties.

I haven’t tried it but I would estimate it to be a nightmare to implement and a horrible experience for the remaining players.

That should be easy to implement either by using the ping, player profile or IP or simply let the client decide from a drop-down menu.

If your game is going to have more than 10 players you should strongly consider using dedicated servers and if the game is competitive then dedicated servers is almost a requirement since you won’t be able to verify any data. The host can cheat all it wants without the connecting clients knowing about it.

Thanks for your reply @GarnerP57. I feared that there is a small chance for a (cheap solution) peer to peer system to handle 10+ players effectivly. I will however make more reserch on a dedicated server solution that can handle 100k players for a cheap prise. Is a VPS model a good option in that case?

Have you considered community run dedicated servers? Keeping servers running is rarely a task a game developer wants to do… we just want to develop games right?

You could also focus on smaller player numbers and search for a developer who has done server migration before and go with non-dedicated servers.

I am planning on changing the plan to small game modes with 10 players in each so i can integrate p2p. what is the difference between Listen Server Model and peer to peer? Is Listen Server Model what they used in old Call of duty games? on the other hand i will look it up. @GarnerP57

p2p means that each player communicates directly with each of the other players. With a Listen Server all clients only connects with the host and the server also “Listens” for input from the local host.
In the older Call of Duty I think they used some sort of Listen-Peer a hybrid solution that doesn’t connect every player with each-other but it has several host candidates connected peer to peer so if one of them leaves the game it migrates to one of the other sub hosts, it is just my best guess though.

If you want to use Unreal for this, you’re barking up the wrong tree already. Unreal is a purely Server/Client architecture and all of it’s multiplayer framework and networking model are designed around it. Changing that will not be easy, dare I say impossible unless you’re very, very experienced.

Server-Client is a far better architecture than P2P anyway - almost every game made today, or even in the last decade, uses it over P2P. You can forget supporting 100 players on a listen server too, dedicated servers are your only realistic option. Residential connections just aren’t up-to-scratch to support that on a worldwide scale, and most player PC’s can’t handle 99 other players as well as their own client running locally. No chance.

Servers can handle 100 players just fine - but obviously any game supporting player counts that high needs well-optimized netcode and to do that you need to be experienced. Fortnite has up 100 players, and our game Hell Let Loose supports 100 players and uses dedicated servers, with community-hosted servers too (through hosting partners - we don’t distribute binaries, many games don’t).

Judging by your questions, you don’t seem to have volumes of experience making multiplayer games. I’d suggest getting experience making something smaller before tackling something on that scale - I can promise you you’ll never finish it otherwise.

Agree with TheJamsh. A valuable lesson is For Honor, which launched with peer-to-peer servers which resulted in terrible experiences and switched dedicated servers as soon as possible:

If a AAA game with 7 studios working on it can’t get peer-to-peer to work, you won’t find a freelancer who can. (If he can, he’d probably be making bank for said AAA studio)

Yes it might be like finding a Unicorn… stick to authoritative servers.

20 players on a P2P game sounds like a train wreck waiting to happen. True peer-to-peer (mesh networking) is only viable for games with very low amount of (1v1) players and very small data packets, because everyone needs to communicate with everyone. If using the one-player-hosts model, you have to deal with host migration and the endless amount of problems it creates (case in point: Warframe). If you can’t afford hosting dedicated servers, let the community host them for you.

Thanks so much for all feedbacks given by you ue4 activists. I am very interested in the idea of making a system so that players must pay for their own servers in some way. In that case I would have a solution for dedicated servers. I would really like to find a possible solution since this is a project I love to spend my time on and develop experience over long time to achieve my long term goal. @GarnerP57 @TheJamsh [USER=“23394”]Zhi Kang Shao[/USER] @Manoel.Neto

1 Like