Game
Namespace: Murder 
Assembly: Murder.dll
public class Game : Game, IDisposable
Implements: Game, IDisposable
⭐ Constructors
public Game(IMurderGame game, GameDataManager dataManager)
Creates a new game, there should only be one game instance ever.
If 
Parameters 
game IMurderGame 
dataManager GameDataManager 
public Game(IMurderGame game)
Parameters 
game IMurderGame 
⭐ Properties
_disposePendingWorld
protected bool _disposePendingWorld;
Returns 
bool 
_gameData
protected readonly GameDataManager _gameData;
Returns 
GameDataManager 
_graphics
protected readonly GraphicsDeviceManager _graphics;
Returns 
GraphicsDeviceManager 
_logger
protected GameLogger _logger;
Single logger of the game.
Returns 
GameLogger 
_pendingExit
protected bool _pendingExit;
Returns 
bool 
_pendingWorld
protected MonoWorld _pendingWorld;
Returns 
MonoWorld 
_pendingWorldTransition
protected T? _pendingWorldTransition;
Returns 
T? 
_playerInput
protected readonly PlayerInput _playerInput;
Returns 
PlayerInput 
_sceneLoader
protected SceneLoader _sceneLoader;
Initialized in Game.LoadContent.
Returns 
SceneLoader 
ActiveScene
public Scene ActiveScene { get; }
Returns 
Scene 
AlwaysUpdateBeforeFixed
protected virtual bool AlwaysUpdateBeforeFixed { get; }
Always run update before fixed update. Override this for a different behavior.
Returns 
bool 
Components
public GameComponentCollection Components { get; }
Returns 
GameComponentCollection 
Content
public ContentManager Content { get; public set; }
Returns 
ContentManager 
Data
public static GameDataManager Data { get; }
Gets the GameDataManager instance.
Returns 
GameDataManager 
DeltaTime
public static float DeltaTime { get; }
De time difference between current and last update, scaled by pause and other time scaling. Value is reliable only during the Update().
Returns 
float 
DIAGNOSTICS_MODE
public static bool DIAGNOSTICS_MODE;
Use this to set whether diagnostics should be pulled.
Returns 
bool 
Downsample
public float Downsample;
Returns 
float 
FixedDeltaTime
public static float FixedDeltaTime { get; }
Gets the fixed delta time in seconds.
Returns 
float 
Fullscreen
public bool Fullscreen { get; public set; }
Gets or sets the fullscreen mode of the game. When set, it updates the game's window to reflect the new mode.
Returns 
bool 
GameScale
public Vector2 GameScale { get; }
Gets the scale of the game relative to the window size and game profile scale. Returns Vector2.One if the window has invalid dimensions.
Returns 
Vector2 
GraphicsDevice
public GraphicsDevice GraphicsDevice { get; }
Gets the current instance of the GraphicsDevice.
Returns 
GraphicsDevice 
GraphicsDeviceManager
public GraphicsDeviceManager GraphicsDeviceManager { get; }
Returns 
GraphicsDeviceManager 
GraphLogger
public virtual GraphLogger GraphLogger { get; }
Gets the current graph logger debugger.
Returns 
GraphLogger 
Grid
public static GridConfiguration Grid { get; }
Beautiful hardcoded grid so it's very easy to access in game!
Returns 
GridConfiguration 
HasCursor
protected virtual bool HasCursor { get; }
Returns 
bool 
Height
public static int Height { get; }
Gets the game height from the GameProfile. This is the intended size, not the actual size. For the current window size use RenderContext.Camera.
Returns 
int 
InactiveSleepTime
public TimeSpan InactiveSleepTime { get; public set; }
Returns 
TimeSpan 
InitialScene
protected virtual Scene InitialScene { get; }
Returns 
Scene 
Input
public static PlayerInput Input { get; }
Gets the PlayerInput instance.
Returns 
PlayerInput 
Instance
public static Game Instance { get; private set; }
Singleton instance of the game. wBe cautious when referencing this...
Returns 
Game 
IsActive
public bool IsActive { get; internal set; }
Returns 
bool 
IsDiagnosticEnabled
protected virtual bool IsDiagnosticEnabled { get; }
Returns 
bool 
IsFixedTimeStep
public bool IsFixedTimeStep { get; public set; }
Returns 
bool 
IsMouseVisible
public bool IsMouseVisible { get; public set; }
Returns 
bool 
IsPaused
public bool IsPaused { get; private set; }
Returns 
bool 
IsSkippingDeltaTimeOnUpdate
public bool IsSkippingDeltaTimeOnUpdate { get; }
Whether the player is currently skipping frames (due to cutscene) and ignore the time while calling update methods.
Returns 
bool 
LaunchParameters
public LaunchParameters LaunchParameters { get; }
Returns 
LaunchParameters 
LONGEST_TIME_RESET
public static const float LONGEST_TIME_RESET;
Returns 
float 
LongestRenderTime
public float LongestRenderTime { get; private set; }
Gets the longest render time ever recorded.
Returns 
float 
LongestUpdateTime
public float LongestUpdateTime { get; private set; }
Returns 
float 
Now
public static float Now { get; }
Gets the current scaled elapsed time.
Returns 
float 
NowAbsolute
public static float NowAbsolute { get; }
Gets the absolute time since the game started. This is not affected by pause, freeze frames or time scaling.
Returns 
float 
NowUnscaled
public static float NowUnscaled { get; }
Gets the current unscaled elapsed time.
Returns 
float 
Preferences
public static GamePreferences Preferences { get; }
Gets the GamePreferences asset instance.
Returns 
GamePreferences 
PreviousElapsedTime
public float PreviousElapsedTime { get; }
Elapsed time in seconds from the previous update frame since the game started
Returns 
float 
PreviousNow
public static float PreviousNow { get; }
Gets the scaled elapsed time from the previous fixed update.
Returns 
float 
PreviousNowUnscaled
public static float PreviousNowUnscaled { get; }
Time from previous fixed update.
Returns 
float 
Profile
public static GameProfile Profile { get; }
Gets the GameProfile asset instance.
Returns 
GameProfile 
Random
public static Random Random;
Provides a static Random instance.
Returns 
Random 
RenderTime
public float RenderTime { get; private set; }
Time in seconds that the Draw() method took to finish
Returns 
float 
Save
public static SaveData Save { get; }
Gets the active SaveData asset instance.
Returns 
SaveData 
Services
public GameServiceContainer Services { get; }
Returns 
GameServiceContainer 
Sound
public static ISoundPlayer Sound { get; }
Gets the ISoundPlayer instance.
Returns 
ISoundPlayer 
SoundPlayer
public readonly ISoundPlayer SoundPlayer;
Returns 
ISoundPlayer 
StartedSkippingCutscene
public bool StartedSkippingCutscene;
Whether the player started skipping.
Returns 
bool 
TargetElapsedTime
public TimeSpan TargetElapsedTime { get; public set; }
Returns 
TimeSpan 
TimeScale
public float TimeScale;
Returns 
float 
TimeTrackerDiagnoostics
public static UpdateTimeTracker TimeTrackerDiagnoostics;
Only updated if Game.DIAGNOSTICS_MODE is set.
Returns 
UpdateTimeTracker 
UnscaledDeltaTime
public static float UnscaledDeltaTime { get; }
De time difference between current and last update. Value is reliable only during the Update().
Returns 
float 
UpdateTime
public float UpdateTime { get; private set; }
Returns 
float 
Width
public static int Width { get; }
Gets the game width from the GameProfile. This is the intended size, not the actual size. For the current window size use RenderContext.Camera.
Returns 
int 
Window
public GameWindow Window { get; }
Returns 
GameWindow 
⭐ Events
Activated
public event EventHandler<TEventArgs> Activated;
Returns 
EventHandler<TEventArgs> 
Deactivated
public event EventHandler<TEventArgs> Deactivated;
Returns 
EventHandler<TEventArgs> 
Disposed
public event EventHandler<TEventArgs> Disposed;
Returns 
EventHandler<TEventArgs> 
Exiting
public event EventHandler<TEventArgs> Exiting;
Returns 
EventHandler<TEventArgs> 
⭐ Methods
BeginDraw()
protected virtual bool BeginDraw()
Returns 
bool 
ShowMissingRequirementMessage(Exception)
protected virtual bool ShowMissingRequirementMessage(Exception exception)
Parameters 
exception Exception 
Returns 
bool 
LoadSceneAsync(bool)
protected virtual Task LoadSceneAsync(bool waitForAllContent)
Asynchronously loads the game's content.
Parameters 
waitForAllContent bool 
Returns 
Task 
ApplyGameSettingsImpl()
protected virtual void ApplyGameSettingsImpl()
Virtual method for extended game settings application in derived classes.
BeginRun()
protected virtual void BeginRun()
Dispose(bool)
protected virtual void Dispose(bool isDisposing)
Parameters 
isDisposing bool 
Draw(GameTime)
protected virtual void Draw(GameTime gameTime)
Renders the current frame, handling loading draw and ImGui rendering, and tracks rendering time.
Parameters 
gameTime GameTime 
DrawImGui(GameTime)
protected virtual void DrawImGui(GameTime gameTime)
Placeholder for extending the ImGui drawing functionality in game editor.
Parameters 
gameTime GameTime 
EndDraw()
protected virtual void EndDraw()
EndRun()
protected virtual void EndRun()
ExitGame()
protected virtual void ExitGame()
Exit the game. This is used to wrap any custom behavior depending on the game implementation.
Finalize()
protected virtual void Finalize()
Initialize()
protected virtual void Initialize()
Initializes the game by setting up input bindings and configuring initial settings. Typically overridden by the game implementation.
LoadContent()
protected virtual void LoadContent()
Loads game content and initializes it. This includes initializing the sound player, game data, settings, shaders, and initial scene. Also asynchronously loads the initial scene.
LoadContentImpl()
protected virtual void LoadContentImpl()
Virtual method for extended content loading implementation in derived classes.
OnActivated(Object, EventArgs)
protected virtual void OnActivated(Object sender, EventArgs args)
Parameters 
sender Object 
args EventArgs 
OnDeactivated(Object, EventArgs)
protected virtual void OnDeactivated(Object sender, EventArgs args)
Parameters 
sender Object 
args EventArgs 
OnExiting(Object, EventArgs)
protected virtual void OnExiting(Object sender, EventArgs args)
Parameters 
sender Object 
args EventArgs 
OnLoadingDraw(RenderContext)
protected virtual void OnLoadingDraw(RenderContext render)
Display drawing for the load animation.
Parameters 
render RenderContext 
SetWindowSize(Point)
protected virtual void SetWindowSize(Point screenSize)
Sets the window size for the game based on the specified screen size and full screen settings.
Parameters 
screenSize Point 
UnloadContent()
protected virtual void UnloadContent()
Update(GameTime)
protected virtual void Update(GameTime gameTime)
Performs game frame updates, handling logic for paused states, fixed updates, and unscaled time.
Parameters 
gameTime GameTime 
ApplyGameSettings()
protected void ApplyGameSettings()
Applies game settings based on the current Murder.Game._gameData. Configures grid and rendering settings, and calls an implementation-specific settings application method.
DoPendingExitGame()
protected void DoPendingExitGame()
DoPendingWorldTransition()
protected void DoPendingWorldTransition()
UpdateImpl(GameTime)
protected void UpdateImpl(GameTime gameTime)
Implements core update logic, including frame freezing, world transitions, input handling, and time scaling.
Parameters 
gameTime GameTime 
CanResumeAfterSaveComplete()
public bool CanResumeAfterSaveComplete()
Determines if the game can resume after a save operation is complete. Returns true if there's no active save data or the save operation has finished.
Returns 
bool 
QueueReplaceWorldOnCurrentScene(MonoWorld, bool)
public bool QueueReplaceWorldOnCurrentScene(MonoWorld world, bool disposeWorld)
This is called when replacing the world for a current scene. Happened when transition from two different scenes (already loaded) as a world.
Parameters 
world MonoWorld 
disposeWorld bool 
Returns 
bool 
QueueWorldTransition(Guid)
public bool QueueWorldTransition(Guid world)
Parameters 
world Guid 
Returns 
bool 
ResumeDeltaTimeOnUpdate()
public bool ResumeDeltaTimeOnUpdate()
Resume game to normal game time.
Returns 
bool 
CreateRenderContext(GraphicsDevice, Camera2D, RenderContextFlags)
public RenderContext CreateRenderContext(GraphicsDevice graphicsDevice, Camera2D camera, RenderContextFlags settings)
Creates a RenderContext using the specified graphics device, camera, and settings. Returns a new RenderContext if the game instance is null. Optionally implement this interface for using your custom RenderContext.
Parameters 
graphicsDevice GraphicsDevice 
camera Camera2D 
settings RenderContextFlags 
Returns 
RenderContext 
BeginImGuiTheme()
public virtual void BeginImGuiTheme()
Placeholder for setting up a custom ImGui theme, to be extended in game editor.
Dispose()
public virtual void Dispose()
EndImGuiTheme()
public virtual void EndImGuiTheme()
Placeholder for finalizing a custom ImGui theme, to be extended in game editor.
RefreshWindow()
public virtual void RefreshWindow()
Refreshes the game window settings based on the current profile.
Exit()
public void Exit()
FreezeFrames(int)
public void FreezeFrames(int amount)
This will pause the game for 
Parameters 
amount int 
Pause()
public void Pause()
This will pause the game.
QueueExitGame()
public void QueueExitGame()
This queues such that the game exit at the end of the update. We wait until the end of the update to avoid any access to a world that has been disposed on cleanup.
ResetElapsedTime()
public void ResetElapsedTime()
Resume()
public void Resume()
This will resume the game.
Run()
public void Run()
RunOneFrame()
public void RunOneFrame()
SetWaitForSaveComplete()
public void SetWaitForSaveComplete()
Sets the flag to indicate that the game should wait for the save operation to complete.
SkipDeltaTimeOnUpdate()
public void SkipDeltaTimeOnUpdate()
This will skip update times and immediately run the update calls from the game until Game.ResumeDeltaTimeOnUpdate is called.
SuppressDraw()
public void SuppressDraw()
Tick()
public void Tick()
⚡