[Released] Photon Blox (plyGame Multiplayer)


(Jamie pearce) #183

Why make braincloud separate…


(Hjupter Cerrud) #184

Too many people getting confused and also I had planned to make a GameSparks support for plyGame.

Is anyone interested in a UNet plyGame plugin?


(Marshall Heffernan) #185

UNET ftw.

I tried, but the playermanager wants to spawn the player, not the network spawner.


(Hjupter Cerrud) #186

I have a very early working version, it works like a charm with plyGame :slight_smile:


(Marshall Heffernan) #187

Yessssssss


(Jamie pearce) #188

interesting well im stuck with the current version please dont give up on its development XD so far everything works pretty much fine


(DarkDeivel) #189

We need to develop Photon Blox! There is still much that can be done, the game in the third person, more different demo, there are big problems with the synchronization position, it must first fix. If this plug-in will no longer develop, I greatly disappointed …


(Hjupter Cerrud) #190

I never said I was going to stop working on it. What big problems are you talking about? I have games working fine with no position issues.


(Jamie pearce) #191

ill msg over skype for small details i started a new project that should hopefully have no problems


(Marshall Heffernan) #192

Big problem with sync.

Here’s an easy example: You are walking along a wall, then go around the corner FAST.
you see yourself on the other side.
the other player(s) see you at an incorrect position.

Even if you stop moving, the “server-side version” of you, will keep walking towards where it’s supposed to be.

Once the “copy” of you has a clear line of sight, or isn’t blocked anymore, it will casually walk over to you, and you will once again appear to be where you actually are.


A 2nd example, you walk up a steep cliff, but the “copy” hits a snag.

The “copy” will be stuck on the bottom floor, following alongside the wall the best it can.


The player’s position isn’t sync’d at all. It just moves, the best it can, to where you really are.


My initial tests with UNET didn’t have this issue, however.


(Hjupter Cerrud) #193

And this example you are talking about was made with photon blox or this just a test using photon realtime? I mean however you sync data is up to you also there is no server side representation of players just players sending information to others clients. The representation of remote players needs to be properly setup in order to avoid such cases.

Photon blox its just an integration of photon unity networking with plygame.


(Marshall Heffernan) #194

This is with Photon Blox, using your example third person player, if I remember correctly.

This is the problem, I suppose. I don’t know how. I just used the prefab Player(s) in the photon Blox example.

Good news is, UNET does it easily and 100% accurately with a single component. :wink:


(Hjupter Cerrud) #195

Yeah that example might not be perfect but again is up to you how you sync position and data. You could attach a PhotonViewTransform and would work similar to UNet NetworkTransform.

But I have to agree with you that UNET is way easier and better in so much ways :slight_smile:

The only thing I dont like is that there is no match making service for WebGL :frowning: Photon works fine in WebGL


(DarkDeivel) #196

if you use the Photon Transform View component of how this will work consistently and as able to withstand the players without lag? And then there will be synchronized animation as I understand it …


(Hjupter Cerrud) #197

Photon Transform View have code to compensate lag yes but you have to play with the settings also there is a lag simulation utility you could use to try that.

There is also a Photon Animator View to sync animations.

I’m working on an update with a bit of more examples I will include one which will use Photon Transform View.

This is the change log so far:

1.2.4

  • Photon Unity Networking 1.8.0 support
  • Added new Equipment example
  • Fixed minor issues on old examples
  • Revamped Equipment Sync workflow, its now required to have PhotonEquipmentSlots along with a plyGame EquipmentSlots component and a plyBlox with On Equip Item and On UnEquip Item
    It also require to use the Photon Pickup system that comes in the PUN package.
    Now require a bit more steps but works much better.
  • Memory allocation improvements. This will improve performance a bit.

If anyone have any request now its the time :slight_smile:


(Marshall Heffernan) #198

No request(s), but I do have 4 PUN questions.

I know it’s not your job to explain how to use PUN, however I just wish I had thought about it before purchasing Photon Blox.

I read the word “plygame” and “multiplayer” in the same sentence, and began typing my credit card number.

Having said that…


1) It seems that PUN and UNET are obsessed with matchmaking.

You can’t just log into the world and play with a friend;
You need to create a lobby, create a room, then join the lobby, then join the room???
(I’m guessing here; I haven’t touched PUN in a long time, and even then I was confused).

How would a game like World of Warcraft work?

MMOs typically have >10 servers, because they support millions of players.

Assuming no more than 10 people will ever play my game at the same time, I want… just one server.

One server, One Lobby, One Room, etc.

How would I set this up? There’s no need for matchmaking;
I’m not making Call of Duty / Battlefield / Counter Strike…


2) What if I’m standing in town with a friend:

What If I click on a door and change scenes? Do we both travel?
Does he stay in the town scene, and I move to the interior scene?

If I leave the building, I’ll go back to town, and he’ll see me appear as well?

Does each “scene” require a different room? lobby??


3) In what order do I import the assets?
plyGame > Open plyGame Main Editor to generate data > PUN > NJGBlox/PhotonBlox > BrainCloud?


4) You’ve mentioned you’re going to put BrainCloud Blox into a separate asset, on the asset store. Can you elaborate?


(Hjupter Cerrud) #199

1. You can turn off auto join lobby then connect to photon > On Photon Connected to Master > use JoinRandomRoom (this will try to join a random room or whatever you specify) > if there is no room On Photon Random Join Failed (here you can create a new room if you leave it open everyone else will join it until the room is full. This process will keep players connecting to random rooms or create one and so on. You can read more about this here:
http://doc.photonengine.com/en-us/pun/current/manuals-and-demos/matchmaking-and-lobby

The Photon SpawnPoint example works exactly like this right now. There is also a ConnectAndJoinRandom script in PUN script utilities folder.

About MMOs they certainly use authoritative servers which is a bit of more work and more expensive, you can use this system and make the Photon Master Client executes in the server. You can alternatively use CloudScript from PlayFab, BrainCloud or GameSparks to handle few things in the server to keep the game secure. Also you can use different rooms for zones so you would be switching rooms as you run in the world. I just noticed they added few new scripts for network culling which probably do this already. I would need to play with it a bit.

2. Each scene doesnt require a different room but I would definitely use a different room for this. If you are switching scene alone its just about leave current room load level and join another room but if you need all players to change from scene you would need to use PhotonNetwork.LoadLeve which will make the MasterClient switch scene for everyone.

3. Thats correct but for BrainCloud you first need to download their SDK you can the link on the admin portal, its a github link then you need to copy and paste the 2 folders inside the src folder inside the unity assets folder of your project. To get the latest BrainCloud blox package I would need to send it to you.

4. Its going to be in a separate package since its and independent LoadSaveProvider for plyGame you are not required to use it with Photon Blox also Im working on another provider which will use GameSparks www.gamesparks.com which I consider much better in many ways (for me at least). Everyone who has purchased Photon Blox will get Brain Cloud blox for free of course.

Feel free to skype me I would be happy to answer any other questions and concerns.

Also UNet blox its coming too! This will be a separate asset too.


(DarkDeivel) #200
  • Maybe I’m doing something wrong, but! If a player leaves the game, half of the game functionality stops working, for example, I can not select an answer in the dialogues pressing the answer which closes the dialog “Interract stoped” does not give a result, the loot is impossible to pick up, if you kill the monster and try to enhance the experience had killed player it does not change attribute, it works fine, the first player to exit.
    Sometimes for no obvious reasons, under my control gets the players, I can manage my player character and another player in my client runs with me …
    P.S. Maybe I’m doing something wrong …

  • If i use Photon Transform Viewm synchronization is almost perfect, but even if my character is from another player it anyway tries himself to run away, but Photon Tranform View quickly throws it back. I use setting from photon demo “RPG Movement”


(Hjupter Cerrud) #201

You need to turn off “Sync Movement” on PhotonCharacter inspector in order to use other sync methods like Photon Transform View. I will improve this in a later update.


(DarkDeivel) #202

I found what wing problem which is why everything stopped working !!!

If any player leaves the game, Link Player stops functioning and everything associated with these features, but if someone comes to a game link Player again begins to work !!

I use your bloks Set Tag, but should leave any player as a Player Unit stops working, to the entrance of a new player …

But I still do not understand how this fix the problem …

P.S. If i “turn off “Sync Movement” on PhotonCharacter” synchronise animation on my player stop working, i use Legacy Animation…