public override void Start() { using (var spaceEngineersGame = new SpaceEngineersGame(_services, RunArgs)) { Log.Info("Starting client"); spaceEngineersGame.OnGameLoaded += SpaceEngineersGame_OnGameLoaded; spaceEngineersGame.Run(); } }
public override void Start() { using (var spaceEngineersGame = new SpaceEngineersGame(RunArgs)) { Log.Info("Starting client"); OverrideMenus(); spaceEngineersGame.OnGameLoaded += SpaceEngineersGame_OnGameLoaded; spaceEngineersGame.OnGameExit += Dispose; spaceEngineersGame.Run(false, _startup.DisposeSplashScreen); } }
private void DoStart() { _game = new SpaceEngineersGame(_runArgs); if (MySandboxGame.FatalErrorDuringInit) { throw new InvalidOperationException("Failed to start sandbox game: fatal error during init"); } try { StateChange(GameState.Running); _game.Run(); } finally { StateChange(GameState.Stopped); } }
private void DoStart() { _game = new SpaceEngineersGame(_runArgs); if (MySandboxGame.FatalErrorDuringInit) { _log.Warn("Failed to start sandbox game: fatal error during init"); return; } try { StateChange(GameState.Running); _game.Run(); } finally { StateChange(GameState.Stopped); } }
// Main method static void Main(string[] args) { #if XB1 XB1Interface.XB1Interface.Init(); MyAssembly.Init(); #endif SpaceEngineersGame.SetupBasicGameInfo(); m_startup = new MyCommonProgramStartup(args); if (m_startup.PerformReporting()) { return; } m_startup.PerformAutoconnect(); #if !XB1 if (!m_startup.CheckSingleInstance()) { return; } #endif // !XB1 var appDataPath = m_startup.GetAppDataPath(); MyInitializer.InvokeBeforeRun(AppId, MyPerGameSettings.BasicGameInfo.ApplicationName, appDataPath); MyInitializer.InitCheckSum(); m_startup.InitSplashScreen(); if (!m_startup.Check64Bit()) { return; } m_startup.DetectSharpDxLeaksBeforeRun(); using (MySteamService steamService = new MySteamService(MySandboxGame.IsDedicated, AppId)) { m_renderer = null; SpaceEngineersGame.SetupPerGameSettings(); SpaceEngineersGame.SetupRender(); try { InitializeRender(); } catch (MyRenderException ex) { #if !XB1 MessageBox.Show(ex.Message); #else // XB1 System.Diagnostics.Debug.Assert(false, "InitializeRender failed"); #endif // XB1 return; } VRageRender.MyRenderProxy.GetRenderProfiler().StartProfilingBlock("MyProgram.Init"); VRageRender.MyRenderProxy.GetRenderProfiler().StartProfilingBlock("MySteam.Init()"); if (!m_startup.CheckSteamRunning(steamService)) { return; } VRageRender.MyRenderProxy.GetRenderProfiler().EndProfilingBlock(); VRageRender.MyRenderProxy.GetRenderProfiler().StartProfilingBlock("new MySandboxGame()"); VRageGameServices services = new VRageGameServices(steamService); if (!MySandboxGame.IsDedicated) { MyFileSystem.InitUserSpecific(steamService.UserId.ToString()); } using (SpaceEngineersGame game = new SpaceEngineersGame(services, args)) { VRageRender.MyRenderProxy.GetRenderProfiler().EndProfilingBlock(); VRageRender.MyRenderProxy.GetRenderProfiler().EndProfilingBlock(); game.Run(disposeSplashScreen: m_startup.DisposeSplashScreen); } } m_startup.DetectSharpDxLeaksAfterRun(); #if PROFILING MyPerformanceTimer.WriteToLog(); #endif MyInitializer.InvokeAfterRun(); }
static void RunInternal(string[] args) { using (MySteamService steamService = new MySteamService(MySandboxGame.IsDedicated, AppId)) { IMyRender renderer = null; SpaceEngineersGame.SetupPerGameSettings(); if (MySandboxGame.IsDedicated) { renderer = new MyNullRender(); } else if (MyFakes.ENABLE_DX11_RENDERER) { var rendererId = MySandboxGame.Config.GraphicsRenderer; if (rendererId == MySandboxGame.DirectX11RendererKey) { renderer = new MyDX11Render(); if (!renderer.IsSupported) { MySandboxGame.Log.WriteLine("DirectX 11 renderer not supported. Reverting to DirectX 9."); renderer = null; } } if (renderer == null) { renderer = new MyDX9Render(); rendererId = MySandboxGame.DirectX9RendererKey; } MySandboxGame.Config.GraphicsRenderer = rendererId; } else { renderer = new MyDX9Render(); } MyFakes.ENABLE_PLANETS &= MySandboxGame.Config.GraphicsRenderer != MySandboxGame.DirectX9RendererKey; VRageRender.MyRenderProxy.Initialize(renderer); VRageRender.MyRenderProxy.IS_OFFICIAL = MyFinalBuildConstants.IS_OFFICIAL; VRageRender.MyRenderProxy.GetRenderProfiler().SetAutocommit(false); VRageRender.MyRenderProxy.GetRenderProfiler().InitMemoryHack("MainEntryPoint"); VRageRender.MyRenderProxy.GetRenderProfiler().StartProfilingBlock("MyProgram.Init"); VRageRender.MyRenderProxy.GetRenderProfiler().StartProfilingBlock("MySteam.Init()"); if (!MySandboxGame.IsDedicated) { if (steamService.IsActive) { steamService.SetNotificationPosition(MySteamService.NotificationPosition.TopLeft); MySandboxGame.Log.WriteLineAndConsole("Steam.IsActive: " + steamService.IsActive); MySandboxGame.Log.WriteLineAndConsole("Steam.IsOnline: " + steamService.IsOnline); MySandboxGame.Log.WriteLineAndConsole("Steam.OwnsGame: " + steamService.OwnsGame); MySandboxGame.Log.WriteLineAndConsole("Steam.UserId: " + steamService.UserId); MySandboxGame.Log.WriteLineAndConsole("Steam.UserName: "******"[n/a]"); MySandboxGame.Log.WriteLineAndConsole("Steam.Branch: " + steamService.BranchName ?? "[n/a]"); MySandboxGame.Log.WriteLineAndConsole("Build date: " + MySandboxGame.BuildDateTime.ToString("yyyy-MM-dd hh:mm", CultureInfo.InvariantCulture)); MySandboxGame.Log.WriteLineAndConsole("Build version: " + MySandboxGame.BuildVersion.ToString()); } else if (MyFinalBuildConstants.IS_OFFICIAL) //We dont need Steam only in VS { if (!(steamService.IsActive && steamService.OwnsGame)) { if (MyFakes.ENABLE_RUN_WITHOUT_STEAM == false) { MessageBoxWrapper("Steam is not running!", "Please run this game from Steam." + Environment.NewLine + "(restart Steam if already running)"); return; } } } else { // At the moment in some cases we can't really distinguish if Steam is // active but the user doesn't own the game MessageBoxWrapper("Steam is not running!", "Game might be unstable when run without Steam\n" + "or when the game is not present in the user's library!\n" + "FOR DEBUG: Set MyFakes.ENABLE_RUN_WITHOUT_STEAM to true"); } } VRageRender.MyRenderProxy.GetRenderProfiler().EndProfilingBlock(); VRageRender.MyRenderProxy.GetRenderProfiler().StartProfilingBlock("new MySandboxGame()"); VRageGameServices services = new VRageGameServices(steamService); if (!MySandboxGame.IsDedicated) { MyFileSystem.InitUserSpecific(steamService.UserId.ToString()); } using (SpaceEngineersGame game = new SpaceEngineersGame(services, args)) { VRageRender.MyRenderProxy.GetRenderProfiler().EndProfilingBlock(); VRageRender.MyRenderProxy.GetRenderProfiler().EndProfilingBlock(); game.Run(disposeSplashScreen: DisposeSplashScreen); } } }