[Request] Remove Specific Buffered RPC call.

Options
One large drawback I always felt the Unity Networking had, was you buffered RPCs could only be removed on a group or on a view, but not specifically.

It would be great if there was a way to remove just one buffered RPC in the current buffer, say by...some kind of ID that is returned with RPC call. There has been more than a few times in which I wish I could remove just a single RPC call since it is not relevant to the world currently, but still have other buffered RPC's sent before or after to stay in the buffer.

Comments

  • dreamora
    Options
    Sounds like an interesting request, though I doubt its possible as not even the package number would work as a UUID due to resending for acknoledgement.

    I personally solve such situations by not using buffering at all but by making the client inform new joiners about the information if its still relevant and more importantly: About the CURRENT information (buffered data aren't updated, so normally have to buffer updates to them too etc which becomes a major bomb if you do it for a longer running game where late joins are allowed. You can easily drop out low bandwidth connections if you overdo it with buffer updates to buffer informations.
    On the other hand I normally don't use buffering anymore for any kind of state informations, thats what the player and room properties are for, to store such information room-persistently on the photon server instead of relying on the master client to handle it
  • I currently solve the issue by doing essentially what you do.

    When new players join the owner of an object will send any information that needs to be sent to new clients as initial unbuffered RPC calls, although a more automated way seems like a good addition to the library.
  • Tobias
    Options
    If the RPC has some id, we could delete it, so technically this would be possible.
    As it's not in Unity, we didn't flesh it out and it's not exposed.

    We will keep it in mind for future updates.

    While we're talking about the buffering: Does anyone know if Unity's buffer is limited or can it achieve any size?