Dedicated Server (#1679)
* Initial branch commit for dedi server message routing
* Try to synchronize Connection State through ConnectionInfo where possible
* Use Connection.All for filtered broadcasts so that will use ConnectionInfo if exists
* TargetedMessage support for byte[] array for already packed messages, and pass in NetTransmission flags for routing as well
* For now, one idea is to override SendRawMessage on MockConnection - for these type of Connection we can route through the host
* Store Connection internal state if ConnectionInfo doesn't exist then we can just use that
* Better synchronization of Connection State - now working as it was before, but should also synchronize other clients properly when on a dedicated server
* For filtered connection list / broadcast - if we're the host then use the connections we have, otherwise we should use Connection.All
* Include Connection with available connections when broadcasting - as Dedicated Server won't be included in Connection.All (maybe it should, or maybe people should just use Connection.Host)
* Serialize TargetMessage flags as byte
* system must be set to SendMessage to a Connection. Fix an issue with SenderId when receiving a TargetedMessage - this can't be local, so try to find the connection but if we can't find it just use the source.
* Test logs
* Some cleanup - fix issue where system isn't initialized so can't serialize. Could be wrong here, but only one system can be active so just use that.
* Remove this log
* Remove unusued code
* Add NetTransmission flag support when using SendMessage via Steam Sockets
* Don't forget to add arg to header
* Clearer docs here, only log warning if networking debug is enabled here
* Some tidy up here
* Reset local connection state to Unconnected when closing network system - some debug log for other machine
* Close these connections
* Remove this log
* Add Dedicated Server page to Project Config with its own option for a Startup Scene. When loading a game, if we're headless, use that if its set instead of the usual one.
* Don't call INetworkListener.OnActive for dedicated server, similarly don't call OnDisconnected. OnConnected will never get called anyway because it doesn't go through the handshake.
* This bit isn't needed actually
* Test boot back to main menu
* Properly get when disconnected
* Use CollectionExtensions properly
* Fix test, re-add system member
* Fix this state
---------
Co-authored-by: Garry Newman <garrynewman@users.noreply.github.com>