Exemple #1
0
        public OutgoingServerChannel(
            NetworkTransportConfig config,
            ServerUdpPacketTransport transport,
            IPacketEncryptor packetEncryption,
            ILogger logger)
        {
            this._config           = config ?? throw new ArgumentNullException(nameof(config));
            this._transport        = transport ?? throw new ArgumentNullException(nameof(transport));
            this._packetEncryption = packetEncryption ?? throw new ArgumentNullException(nameof(packetEncryption));
            this._logger           = logger ?? throw new ArgumentNullException(nameof(logger));

            this._clientEntitiesToRemove = new AppendOnlyList <Entity>(64);
        }
        public IncomingServerChannel(
            ServerUdpPacketTransport transport,
            IPacketEncryptor packetEncryption,
            ControlPlaneServerController controlPacketController,
            SimulationServerController simulationPacketController,
            ILogger logger)
        {
            this._isRunning = false;

            this._transport                  = transport ?? throw new ArgumentNullException(nameof(transport));
            this._packetEncryption           = packetEncryption ?? throw new ArgumentNullException(nameof(packetEncryption));
            this._controlPacketController    = controlPacketController ?? throw new ArgumentNullException(nameof(controlPacketController));
            this._simulationPacketController = simulationPacketController ?? throw new ArgumentNullException(nameof(simulationPacketController));
            this._logger = logger ?? throw new ArgumentNullException(nameof(logger));
        }
Exemple #3
0
        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();
        }