Don't automatically timeout and disconnect people

Options
In my lockstep game, I want to have a latency-dealing system similar to that of Starcraft 2 where people have 1 minute before they can be disconnected. Is there a setting I can set to prevent players from timing out so I can control that myself?

Comments

  • Tobias
    Options
    Sorry, you can't control the timeout.
    But of course you can let players try to re-connect and re-join. If they do within a minute, the game can go on, right?
  • SnpM
    Options
    Oh, that sounds great! Can they connect without changing scenes? That way, the game state stays cached for fear of syncing 500+ doubles.
  • Tobias
    Options
    The client can keep the scene open, yes.
    But the server doesn't know what the client does and will send you any buffered events, props and the players list, etc. Anything that a new player gets anyways.
    And: The client that re-connects will have another Player ID and another PhotonView ID range. At the moment, it does not simply claim existing PhotonViews.

    At the moment, I can't change this and you will need to figure out how to cope with that. Sorry for the extra hassle.
  • SnpM
    Options
    Oh, darn. The main problem is that there'll be 200+ units, too much to sync every position, rotation, health, energy, and many miscellaneous pieces of information. Hm... Is there any way to send bulk data? The game could pause and wait for all that data to be received before resuming? I assume I'd have to use TCP to send all this data through. Is this plausible?

    As for the buffered messages, I think I'll just not use any buffered messages and send everything that's needed when requested.
  • Tobias
    Options
    I thought that the idea of using lockstep is to reduce the number of updates needed, because everything is deterministic unless there is new input??
    So unless you give new orders, there should be nothing to send and the units should be able to move in exactly the same way on all clients.
    It should not be needed to sync all units positions, rotation, etc.
    You should minimize your data in general. Aside from that, if your messages become bigger, they will be fragmented and reassembled without extra work on your behalf.