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());
        }
Exemplo n.º 3
0
        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);
                    }
                }
            }
        }