protected override void OnCreate() { base.OnCreate(); if (NetworkInfos.IsServer) { _isServer = true; _serverHandler = GameServerHandler.Get(); } else { _isServer = false; _clientHandler = ClientHandler.Get(); } }
private void StartAsGameServer() { NetworkInfos.IsServer = true; JobHandle.ScheduleBatchedJobs(); /*foreach (GameObject item in FindObjectsOfType<GameObject>()) * { * if (item != gameObject) * { * Destroy(item); * } * }*/ serverHandler = GameServerHandler.Get(); serverHandler.Start(serverDatas, mmServerDatas, CreateServerGameMaster, debug); StartCoroutine(serverHandler.Client.GetDatas(serverHandler.OnReceiveMMData)); StartCoroutine(serverHandler.Server.GetDatas(serverHandler.OnReceiveData)); StartCoroutine(serverHandler.CoroutineHandler()); }
static void Main(string[] args) { // For log XmlConfigurator.Configure(); // We get all map files to store name + md5 checksum in a dictionary MapLoader.LoadMapFiles(); if (args.Length > 0) { // Arguments to create a server with specific configuration // (max player number, score to win, etc...) Log.Info("Arguments:"); foreach (var s in args) { Log.Info(s); } } var server = new GameServerHandler(); if (!server.Running) { Log.Info(string.Format("[CONFIG] Player Number: {0}", GameConfiguration.PlayerNumber)); server = new GameServerHandler(); server.Initialize(); var timer = new Stopwatch(); timer.Start(); TimeSpan timerTest = TimeSpan.Zero; TimeSpan timerForTimePerSecond = TimeSpan.Zero; int timePerSecond = 0; while (server.Running) { server.Update(); // Debug time :) /* * timerTest += TimeSpan.FromTicks(GameConfiguration.DeltaTime); * Console.WriteLine("Timer test: " + timerTest); * * timerForTimePerSecond += TimeSpan.FromTicks(GameConfiguration.DeltaTime); * * timePerSecond++; * if (timerForTimePerSecond.TotalSeconds > 1) * { * timerForTimePerSecond = TimeSpan.Zero; * Console.WriteLine("Framerate: " + timePerSecond); * timePerSecond = 0; * } */ // Compute delta time GameConfiguration.DeltaTime = timer.Elapsed.Ticks; timer.Restart(); // Max 15 milliseconds between 2 main loop if (timer.Elapsed.Milliseconds < ServerSettings.MaxDeltaTime) { Thread.Sleep(ServerSettings.MaxDeltaTime - timer.Elapsed.Milliseconds); } else { Thread.Sleep(ServerSettings.MaxDeltaTime); } } } }