Is PUN the right package for drop-in drop out open world multiplayer game?
Hi all, as the title suggests, I am wondering if PUN is the right choice for a multiplayer open world game. The game relies on a lot of procedural generation which will somewhat 'evolve' around the players actions over the course of a session; however is designed to be played by a group of friends over multiple sessions, and permit drop-in and drop-out.
Because of this, I get the impression that there may be significant amounts of data required to:
- bring a "dropping in player" up to speed/synchronised with other players; for example if the game had been in motion for an hour already, a number of procedural scenarios had already been played out (enemies, items, battles, crashes, etc come and gone), and the current players were halfway through their current scenario (for example, a gunfight with a bunch of badies, all sorts of differing health and ammunition values, placements, etc).
- saving and reloading the state of a game; with that information needing to be distributed to all joiners as the "starting basis" for further unfolding/procedural scenarios in the current session.
I've started to look at Photon Server as well; however thought Id give a shout out for any more enlightened opinions as this is our first foray into multiplayer development.
Thanks in advance
Because of this, I get the impression that there may be significant amounts of data required to:
- bring a "dropping in player" up to speed/synchronised with other players; for example if the game had been in motion for an hour already, a number of procedural scenarios had already been played out (enemies, items, battles, crashes, etc come and gone), and the current players were halfway through their current scenario (for example, a gunfight with a bunch of badies, all sorts of differing health and ammunition values, placements, etc).
- saving and reloading the state of a game; with that information needing to be distributed to all joiners as the "starting basis" for further unfolding/procedural scenarios in the current session.
I've started to look at Photon Server as well; however thought Id give a shout out for any more enlightened opinions as this is our first foray into multiplayer development.
Thanks in advance
0
Best Answer
-
It depends on your game design, when someone joins a game in middle, joining client can receive the data to the data in many ways.
1) When a player joins, master client sends an RPC with all the data required to be there already. (non-buffered)
2) When a player joins all clients send their RPCs. (non-buffered)
3) All clients send RPCs to each other, and RPCs which need to be there for a new player should be sent as Buffered RPC, so new client gets all those RPCs. (buffered)
4) server can also send RPCs were sent via Server Buffered. (server buffered)
But this depends entirely on your game design, in my opinion Photon can be used for drop-in drop out open world multiplayer game. However you need to optimise data transmission across clients.5
Answers
-
It depends on your game design, when someone joins a game in middle, joining client can receive the data to the data in many ways.
1) When a player joins, master client sends an RPC with all the data required to be there already. (non-buffered)
2) When a player joins all clients send their RPCs. (non-buffered)
3) All clients send RPCs to each other, and RPCs which need to be there for a new player should be sent as Buffered RPC, so new client gets all those RPCs. (buffered)
4) server can also send RPCs were sent via Server Buffered. (server buffered)
But this depends entirely on your game design, in my opinion Photon can be used for drop-in drop out open world multiplayer game. However you need to optimise data transmission across clients.5 -
Thanks Harris, it seems I needed to investigate RPC's a little more I've moved away from PUN for now and am exploring a more server authoritative approach, however I will keep your suggestions in mind should I return to PUN in future.0