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, }); }
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); }
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); }