PUN 2 Multiplayer Addon

Justin, I'm so happy to hear that you will support SplitScreen. Without it, developing a multiplayer game will be a nightmare.

May also be a wise idea to make a smaller network project that has nothing but the basics so you can nail down multiplayer functionality and then port it back into your main project.

Matt, It's a good idea but soon or later I'll have to merge them and it will be really painful to build every time.
I'm really looking forward to Mirror integration. I think it's by far the best choice for the commercial multiplayer game right now.

Since we have PUN2 and going to have Mirror, having Bolt will be redundant in my opinion.
I hope we don't have to wait for Bolt until Mirror integration gets started.
Anyway, I really appreciate your contributions.

Cheers!
 
You won't have to wait until Bolt comes around for Mirror. I have started laying down some groundwork for the Mirror integration at the moment but I can't say much else at this point in time.
 
Photon is a problem for those who want to make dedicated servers.
I have read in several places that Photon can not help in case of saving player states on the server and load again when the player returns to play at another time.
But I think it's a good start to work.
I'm going to wait for the mirrored version, which I believe is the best option at the moment. XD
 
Photon is a problem for those who want to make dedicated servers.
Yes, but gotta remember dedicated servers may not be everyone's usage case.

Photon works more or less as a room based peer to peer system, where one client acts as the room host and everyone else broadcasts to everyone else. This poses a problem because there's been cases where developers using Photon in have had hackers use their own tools to join rooms in games, forcily take control of the room and then send commands in that game, ie. sending a kill packet to all players. I clearly remember someone in the Mirror discord who switched over to Mirror from PUN mainly because that hacker was ruining the gameplay for their player base.

As with any network library there's pros and cons and recommended usage cases.

For a game like a shooter or anything like that, you need at least some sort of server authoritative code. You don't want people faking packets saying they killed someone when they're just passing false information.

I have read in several places that Photon can not help in case of saving player states on the server and load again when the player returns to play at another time.
That's more gameplayer-specific implementation, you can easily save a player data file on the server for the position, rotation and for example the inventory items so when a player re-connects the server bootstraps them back where they logged off.

See also: implement your own cheat prevention.
 
Yes, but gotta remember dedicated servers may not be everyone's usage case.

Photon works more or less as a room based peer to peer system, where one client acts as the room host and everyone else broadcasts to everyone else. This poses a problem because there's been cases where developers using Photon in have had hackers use their own tools to join rooms in games, forcily take control of the room and then send commands in that game, ie. sending a kill packet to all players. I clearly remember someone in the Mirror discord who switched over to Mirror from PUN mainly because that hacker was ruining the gameplay for their player base.

As with any network library there's pros and cons and recommended usage cases.

For a game like a shooter or anything like that, you need at least some sort of server authoritative code. You don't want people faking packets saying they killed someone when they're just passing false information.


That's more gameplayer-specific implementation, you can easily save a player data file on the server for the position, rotation and for example the inventory items so when a player re-connects the server bootstraps them back where they logged off.

See also: implement your own cheat prevention.

Matt, thank you very much for your response.
I'm an experienced programmer, but I'm starting now in the gaming world, I still have several questions about how multiplayer works.
I bought UCC and am really impressed with the quality of the asset.

My game design is a Survival, in the style of Rust / Ark / Miscreated (but not AAA). And I'm studying tools to create my multiplayer. I read a lot about Photon and Mirror, but I still do not know which tool to use.

Could you help me with this? I'm really in doubt as to Mirror and Photon and I liked the tip it gave on saving the status of the player and other objects on the server.

Would it be possible to create 24/7 servers with Photon?

Thank you for your concern. :D
 
Last edited:
@robson Sure, you can. But rest assured that saving and loading player status is fairly easy to implement, just depending on how complex you want it.

Photon can be used in a 24/7 environment, you just have to keep the host client running. Same with Mirror, although in Mirror's case you just build a headless Windows/Linux server instance that displays a command line window when running the executable.

It really depends on the architecture of your game. Do you trust your clients (the players running the game on your PC)? If so, Photon is probably a good starting point. If you want security knowing the server dictates what goes on in the scene, Mirror is the way to go. Photon Bolt is in my "to investigate further" book because that seems to be PUN but on steroids and designed for dedicated server.

This might be starting to go off the specific PUN topic but feel free to hit me up on the Discord and we can talk more about this. :D
 
@robson Sure, you can. But rest assured that saving and loading player status is fairly easy to implement, just depending on how complex you want it.

Photon can be used in a 24/7 environment, you just have to keep the host client running. Same with Mirror, although in Mirror's case you just build a headless Windows/Linux server instance that displays a command line window when running the executable.

It really depends on the architecture of your game. Do you trust your clients (the players running the game on your PC)? If so, Photon is probably a good starting point. If you want security knowing the server dictates what goes on in the scene, Mirror is the way to go. Photon Bolt is in my "to investigate further" book because that seems to be PUN but on steroids and designed for dedicated server.

This might be starting to go off the specific PUN topic but feel free to hit me up on the Discord and we can talk more about this. :D
Cool @Matt, thank you very much for the response.

I'll try to stop me against the "bad guys" as much as I can. In my case, I think it is better to use Mirror, because of the flexibility I will have regarding servers, especially linux. I do not know if I could get a linux server with Photon.

In the case of Photon, I seem to be something that we do not have as much control over, but maybe it's easier because of the amount of games that use it. The point here is just the headless mode I'd like to have and I do not think it would be possible with Photon.

Are you developing any solution with Mirro? I saw it here in the forum. Will you launch in the Store as an addon? I'd love to buy it to start multiplayer mode.

I'll add you on Discord.

Thanks again for the response.
 
Cool @Matt, thank you very much for the response.

I'll try to stop me against the "bad guys" as much as I can. In my case, I think it is better to use Mirror, because of the flexibility I will have regarding servers, especially linux. I do not know if I could get a linux server with Photon.
I don't think so. Mirror discord actually has a high-level Photon team member spying on us and he sometimes chimes in with very helpful knowledge.

In the case of Photon, I seem to be something that we do not have as much control over, but maybe it's easier because of the amount of games that use it. The point here is just the headless mode I'd like to have and I do not think it would be possible with Photon.
Photon handles all the hard work for you with their infrastructure. You're basically just writing netcode and then paying them for the "write once, play anywhere with a network connection" service. I used to bash Photon and say it's a scam but honestly, for what it is, it works. There's a reason why it works and Exit Games gets dollary doos at the end of the day!

Consoles work great with Photon where Mirror may or may not have issues, for example Mirror cannot be used in UWP applications and we haven't tested on Xbox One, Switch or PS4/PS Vita since no one on our team has the developer kits for them.

Are you developing any solution with Mirro? I saw it here in the forum. Will you launch in the Store as an addon? I'd love to buy it to start multiplayer mode.
You mean the network add-on of mine? Of course that'll be Mirror based. As for where it will be sold, I am not sure - probably on my own studio's website or my business main site since I'm getting that revamped. It will be also sold on the Asset Store but I'm currently a little offended with one of my assets being declined for stupid reasons.
 
Let's try to get this topic focused on Photon PUN. We can create a new topic that goes into more differences for the client versus server architecture.

Current addon status: Everything is still going well and should be able to release to the opsive store sometime next week. I've been playing against @Sarah and we've been making many small improvements to both the addon and the base controller. Even though the addon doesn't have any gameplay elements it's still really fun to play against somebody else using the controller.

The demo scene has three rooms: welcome, synchronization, and free roam. The synchronization room contains various objects from the base demo scene such as a door, turret, and runtime pickup items. The free roam room then contains all of the items so you can test them out over the network.

1367

1368
 
The first version of the documentation is complete - you can see it at this link:


I know that it's tough to tell without getting into it but let me know if you think that anything is missing. From the character controller perspective once the objects have been setup it should just work and you don't have to do any extra configuration beyond what you would do for a single player game.
 
Last edited:
Good find on the opsive store :) We aren't done with the addon so haven't uploaded it yet. I'll be sure to post here when we do.

The multiplayer addon will require version 1.2.5 of the character controller but I don't really want to upload it to the Asset Store since it is still changing and this version will still be considered beta. I plan on uploading this new build to the opsive store and for the Asset Store purchases I may just have everyone who wants to get the multiplayer addon early send me their invoice number and I'll send a link on where to download the beta version of 1.2.5.
 
@Justin Any idea when it will be done. I want to know if it is worth telling my team to wait or we should try to get it to work ourselves. I see above you said something about this week. Want to know if thats still the case.

Thanks
 
We will be releasing the pun multiplayer add-on beta tomorrow.

This add-on will require version 2.1.5 of the character controller which I don't want to release yet because there will likely be changes before the Asset Store release. Therefore, after you have purchased the add-on you'll need to send me your character controller invoice number and I'll send you a link to download version 2.1.5. Some of the integrations needed to be updated for this version but those integrations won't be available until after we fully release so this is purely a beta.
 
The PUN Multiplayer Add-On has been released. You can get it on this page:


Please include all feedback within this post:

 
The PUN multiplayer add-on beta has been going well and we should be able to release either on Sunday or Monday. Looking forward to getting this add-on out!
 
The PUN add-on has been released! Thank you for all of the feedback while it was being developed.

 
Top