public void Test() { var logger = new TestLogger(); var config = new DefaultServerConfig(); var playerConnections = new PlayerConnectionManager(logger, config.PlayerConnection); var udpTransport = new ServerUdpPacketTransport( logger, config.NetworkTransport.PacketEncryptor, config.NetworkTransport, config.UdpServer); IPacketEncryptor packetEncryption = new XorPacketEncryptor(); var channelManager = new OutgoingServerChannel( config.NetworkTransport, udpTransport, packetEncryption, logger); IGameWorldLoader gameWorldLoader = new GameWorldLoader(); var gameWorld = new GameWorld( worldType: WorldType.New(), id: WorldInstanceId.New(), logger: logger, config: config, channelManager: channelManager, gameWorldLoader: gameWorldLoader); }
public void Test() { var logger = new TestLogger(); var connections = new PlayerConnectionManager( logger, new PlayerConnectionConfig { Capacity = new PlayerConnectionConfig.CapacityConfig { InitialConnectionsCapacity = 1 } }); Assert.Equal(0, connections.Count); var worldId = new WorldInstanceId(0); var encryptionKey = new byte[] { 0x1 }; connections.Add(worldId, new PlayerId(0), encryptionKey); connections.Add(worldId, new PlayerId(1), encryptionKey); connections.Add(worldId, new PlayerId(2), encryptionKey); Assert.Equal(3, connections.Count); ref readonly var connection1 = ref connections.Get(new PlayerId(0));
public SimulationServerController( ILogger logger, PlayerConnectionManager playerConnections, GameWorlds worlds) { this._logger = logger ?? throw new ArgumentNullException(nameof(logger)); this._playerConnections = playerConnections ?? throw new ArgumentNullException(nameof(playerConnections)); this._worlds = worlds ?? throw new ArgumentNullException(nameof(worlds)); }
// Start is called before the first frame update void Start() { if (Instance) { Destroy(Instance.gameObject); } Instance = this; DontDestroyOnLoad(gameObject); }
public ControlPlaneServerController( ILogger logger, PlayerConnectionManager playerConnections, OutgoingServerChannel channelOutgoing, GameWorlds worlds) { this._logger = logger ?? throw new ArgumentNullException(nameof(logger)); this._playerConnections = playerConnections ?? throw new ArgumentNullException(nameof(playerConnections)); this._channelOutgoing = channelOutgoing ?? throw new ArgumentNullException(nameof(channelOutgoing)); this._worlds = worlds ?? throw new ArgumentNullException(nameof(worlds)); }
public GameServer( IServerConfig serverConfig, ILogger logger) { this._serverConfig = serverConfig ?? throw new ArgumentNullException(nameof(serverConfig)); this._logger = logger ?? throw new ArgumentNullException(nameof(logger)); this.Commander = new GameServerCommander(this); this._udpTransport = new ServerUdpPacketTransport( this._logger, serverConfig.NetworkTransport.PacketEncryptor, serverConfig.NetworkTransport, serverConfig.UdpServer); this._outgoingChannel = new OutgoingServerChannel( serverConfig.NetworkTransport, this._udpTransport, serverConfig.NetworkTransport.PacketEncryptor, this._logger); this._playerConnectionManager = new PlayerConnectionManager( this._logger, this._serverConfig.PlayerConnection); this._gameWorlds = new GameWorlds( this._logger, this._serverConfig, this._outgoingChannel, serverConfig.Server.WorldsCapacity); this._incomingChannel = new IncomingServerChannel( this._udpTransport, serverConfig.NetworkTransport.PacketEncryptor, new ControlPlaneServerController( this._logger, this._playerConnectionManager, this._outgoingChannel, this._gameWorlds), new SimulationServerController( this._logger, this._playerConnectionManager, this._gameWorlds), this._logger); this._worldLoader = new GameWorldLoader(); }