public SyncTestSession(IGGPOSessionCallbacks callbacks, ILog logger, int numPlayers)
        {
            this.callbacks  = callbacks;
            this.logger     = logger;
            this.numPlayers = numPlayers;

            // Initialize the synchronization layer
            sync = new Sync(null,
                            new Sync.Config
            {
                callbacks           = callbacks,
                numPredictionFrames = Constants.MaxPredictionFrames,
            });
        }
Exemple #2
0
        public Sync(NetworkConnectStatus[] status, Config config, ILog logger = null)
            : base(logger)
        {
            this.config        = config;
            localConnectStatus = status;

            callbacks  = config.callbacks;
            FrameCount = 0;
            InRollback = false;

            maxPredictionFrames = config.numPredictionFrames;

            CreateQueues(config);
        }
Exemple #3
0
        public SpectatorBackend(IGGPOSessionCallbacks callbacks,
                                ILog logger,
                                int localPort,
                                int numPlayers,
                                int inputSize,
                                string hostIp,
                                int hostPort)
        {
            this.callbacks  = callbacks;
            this.logger     = logger;
            this.numPlayers = numPlayers;
            this.inputSize  = inputSize;

            // Initialize the UDP port
            var udpEndpoint = new IPEndPoint(IPAddress.Any, localPort);

            udp = new Udp(localPort, poll, this);

            // Initialize the host endpoint
            host = new UdpProtocol(udp, poll, 0, hostIp, hostPort, null, logger);
        }
        public PeerToPeerBackend(IGGPOSessionCallbacks callbacks, ILog logger, int localPort, int numPlayers, int inputSize)
        {
            this.numPlayers = numPlayers;
            this.inputSize  = inputSize;
            this.callbacks  = callbacks;
            this.logger     = logger;

            for (int i = 0; i < Constants.MaxPlayers; i++)
            {
                localConnectStatus[i] = new NetworkConnectStatus();
            }

            for (int i = 0; i < Constants.MaxSpectators; i++)
            {
                spectators[i] = new UdpProtocol(logger);
            }

            isSynchronizing = true;
            endpoints       = new UdpProtocol[numPlayers];
            for (int i = 0; i < numPlayers; i++)
            {
                endpoints[i] = new UdpProtocol(logger);
            }

            // Initialize the synchronziation layer
            sync = new Sync(localConnectStatus,
                            new Sync.Config
            {
                numPlayers          = numPlayers,
                inputSize           = inputSize,
                callbacks           = callbacks,
                numPredictionFrames = Constants.MaxPredictionFrames,
            });

            // Initialize the UDP port
            var udpEndpoint = new IPEndPoint(IPAddress.Any, localPort);

            udp = new Udp(localPort, poll, this);
        }