Example #1
0
 static void Main(string[] args)
 {
     using (var game = new Game())
     {
         game.Run();
     }
 }
 static void Main(string[] args)
 {
     // Profiler.EnableAll();
     using (var game = new Game())
     {
         game.Run();
     }
 }
 static void Main(string[] args)
 {
     // Profiler.EnableAll();
     using (var game = new Game())
     {
         game.GraphicsDeviceManager.DeviceCreated += GraphicsDeviceManager_DeviceCreated;
         ParadoxInputDevice.NativeInputManager = game.Input;
         game.Run();
     }
 }
Example #4
0
        /// <inheritdoc/>
        public void GameLaunch(string gameTypeName)
        {
            try
            {
                Log.Info("Running game with type {0}", gameTypeName);

                Type gameType;
                lock (loadedAssemblies)
                {
                    gameType = GameEnumerateTypesHelper().FirstOrDefault(x => x.FullName == gameTypeName);
                }

                if (gameType == null)
                    throw new InvalidOperationException(string.Format("Could not find type [{0}] in project [{1}]", gameTypeName, projectName));

                game = (Game)Activator.CreateInstance(gameType);

                // TODO: Bind database
                Task.Run(() =>
                {
                    gameFinished.Reset();
                    try
                    {
                        using (game)
                        {
                            // Allow scripts to crash, we will still restart them
                            game.Script.Scheduler.PropagateExceptions = false;
                            game.Run();
                        }
                    }
                    catch (Exception e)
                    {
                        Log.Error("Exception while running game", e);
                    }

                    host.OnGameExited();

                    // Notify we are done
                    gameFinished.Set();
                });
            }
            catch (Exception ex)
            {
                Log.Error("Game [{0}] from project [{1}] failed to run", ex, gameTypeName, projectName);
            }
        }
Example #5
0
        /// <inheritdoc/>
        public void GameLaunch(string gameTypeName)
        {
            try
            {
                Type gameType;
                lock (loadedAssemblies)
                {
                    gameType = GameEnumerateTypesHelper().FirstOrDefault(x => x.FullName == gameTypeName);
                }

                if (gameType == null)
                    throw new InvalidOperationException(string.Format("Could not find type [{0}] in project [{1}]", gameTypeName, projectName));

                game = (Game)Activator.CreateInstance(gameType);

                // TODO: Bind database
                Task.Run(() =>
                {
                    gameFinished.Reset();
                    try
                    {
                        using (game)
                        {
                            game.Run();
                        }
                    }
                    catch (Exception e)
                    {
                        // Mute exceptions
                        // TODO: Transfer them back to listening process?
                    }

                    host.OnGameExited();

                    // Notify we are done
                    gameFinished.Set();
                });
            }
            catch (Exception ex)
            {
                Log.Error("Game [{0}] from project [{1}] failed to run", ex, gameTypeName, projectName);
            }
        }