A large number of objects.

I'm trying to make an online RPG, which is about 1,000 items.
I've already done that OnPhotonSerializeView worked only when the item is moving. So I have a small number of messages per second. However, I still can not solve the problem of loading the scene. All the objects in the scene created with PhotonNetwork.InstantiateSceneObject. When a new player enters the room, he gets all these objects at once automaticly, and I have a lot of QueueIncomingReliableWarning, after which the server is disconnecting. How can I make the slow transmission of Instantiate objects to a new client? Or the problem is not it?

Comments

  • The problem is that you do not have scopes and areas in which things are meant to be transfered.

    You need to manage states of objects on your master client and inform newly joining players about things manually, not using Buffered RPCs and not using Photons Instantiate, as both will be sent to the player right away upon joining which will flood him due to which he no longer responds to the server and drops out.
    You are likely also crossing your msg / room / second limit massively.


    The most reasonable approach would be using at least scopes, but optimally a concept like InterestArea on the Photon MMO open source application so you can ensure that only those in range get informed about stuff instead of the whole world being hit by every message.
  • Currently, when you use Interest Groups, you can't buffer those events, so Instantiate is either "sent to everyone on join" or not buffer-able (which is not an option for Instantiate).
    Simply put, PUN is not a fitting framework for an MMO. It has other benefits but when it comes to thousands of dynamic objects, this is not the base you need.

    Like dreamora said: For a more or less seamless world, you better come up with true interest management like the MMO application does. That means however, it's going to be complicated.