Пример #1
0
        protected static void ServerThread(int port)
        {
            Thread.CurrentThread.Name = "Server Update Thread";

            var packetHandler = new Networking.Server.ServerPacketHandler();
            var svControllers = new ShootyShootyBangBangEngine.Controllers.ServerControllers(packetHandler, "ShootyShootyBangBang", port, 64, false);

            packetHandler.SetControllers(svControllers);
            m_serverGame = new ShootyShootyBangBangServerGame(svControllers);
            Stopwatch svUpdateSw       = new Stopwatch();
            long      tickDuration     = 0;
            double    tarTickTime      = 1.0 / 15.0;
            long      tarFrameTimeInMs = (long)(tarTickTime * 1000.0);

            while (m_serverGame.GetisRunning())
            {
                svUpdateSw.Restart();
                m_serverGame.OnUpdateFrame(tarTickTime);

                tickDuration += svUpdateSw.ElapsedMilliseconds;
                if (tickDuration < tarFrameTimeInMs)
                {
                    Thread.Sleep((int)(tarFrameTimeInMs - tickDuration));
                    tickDuration = 0;
                }
                else
                {
                    tickDuration -= tarFrameTimeInMs;
                }
            }
            m_serverGame.UnLoad();
        }
Пример #2
0
 public ShootyShootyBangBangServerGame(ShootyShootyBangBangEngine.Controllers.ServerControllers controllers)
     : base(controllers)
 {
     m_serverControllers = controllers;
 }