Gondwana Game Engine
Gondwana is a cross-platform 2.5D game and rendering engine written in C#/.NET 8. It provides fine-grained control over rendering, timing, and scene composition, with built-in support for parallax, z-ordering, pixel overhang, collision detection, and particle effects. Gondwana targets desktop, mobile, and web platforms using SkiaSharp for graphics and NAudio for sound.
Loading...
Searching...
No Matches
Gondwana.Configuration.EngineConfiguration Class Reference

Settings used by the engine when cycling. More...

Properties

int TargetFPS [get, set]
 Target screen refresh rate for the Engine. Setting the number lower allows more time for the processor to perform background Engine tasks. Set the value to 0 for no upper limit. Default is 60 FPS.
double SamplingTimeForCPS [get, set]
 Total number of seconds between Cycles Per Second (CPS) calculation. Default is 1.5 seconds.
long SamplingTimeForCPSTicks [get]
 Total number of system ticks between each CPS sampling.
double TimeBetweenKeyboardEvents = 0.03 [get, set]
 Minimum time (in seconds) allowed between Keyboard events. Use this to prevent flooding the system with too many events at once (holding down a key, etc). Default is 0.03 seconds (30 milliseconds).
double TimeBetweenGamepadEvents = 0.03 [get, set]
 Minimum time (in seconds) allowed between Gamepad events. Use this to prevent flooding the system with too many events at once (holding down a button, etc). Default is 0.03 seconds (30 milliseconds).
double TimeBetweenMouseEvents = 0.03 [get, set]
 Minimum time (in seconds) allowed between Mouse events. Use this to prevent flooding the system with too many events at once (holding down a button, dragging, etc). Default is 0.03 seconds (30 milliseconds).
EngineLoggingMode LoggingMode = EngineLoggingMode.Asynchronous [get, set]
 Controls whether engine logging operations are performed synchronously or asynchronously.
int LoggingQueueCapacity [get, set]
 Maximum number of queued log events when LoggingMode is EngineLoggingMode.Asynchronous. When full, log events are dropped (fire-and-forget). Default is 8192.
bool FlushAsyncLogsOnShutdown = true [get, set]
 If true, the engine will attempt to flush queued async log events during shutdown. Default is true.
List< StateFileMount >? StateFiles [get, set]
 Optional collection of serialized EngineStates to mount at initialization.

Detailed Description

Settings used by the engine when cycling.

Property Documentation

◆ FlushAsyncLogsOnShutdown

bool Gondwana.Configuration.EngineConfiguration.FlushAsyncLogsOnShutdown = true
getset

If true, the engine will attempt to flush queued async log events during shutdown. Default is true.

◆ LoggingMode

EngineLoggingMode Gondwana.Configuration.EngineConfiguration.LoggingMode = EngineLoggingMode.Asynchronous
getset

Controls whether engine logging operations are performed synchronously or asynchronously.

When set to EngineLoggingMode.Asynchronous, log entries are enqueued and processed on a background thread as a fire-and-forget operation. This avoids blocking the engine's main loop but may drop log records if the queue is saturated.

When set to EngineLoggingMode.Synchronous, log entries are written immediately on the calling thread. This guarantees ordering and delivery but may negatively impact engine performance, especially when logging to the console.

The logging execution mode. The default value is EngineLoggingMode.Asynchronous.

◆ LoggingQueueCapacity

int Gondwana.Configuration.EngineConfiguration.LoggingQueueCapacity
getset

Maximum number of queued log events when LoggingMode is EngineLoggingMode.Asynchronous. When full, log events are dropped (fire-and-forget). Default is 8192.

Exceptions
ArgumentOutOfRangeExceptionThrown when attempting to set a value less than or equal to 0.

◆ SamplingTimeForCPS

double Gondwana.Configuration.EngineConfiguration.SamplingTimeForCPS
getset

Total number of seconds between Cycles Per Second (CPS) calculation. Default is 1.5 seconds.

◆ SamplingTimeForCPSTicks

long Gondwana.Configuration.EngineConfiguration.SamplingTimeForCPSTicks
get

Total number of system ticks between each CPS sampling.

◆ StateFiles

List<StateFileMount>? Gondwana.Configuration.EngineConfiguration.StateFiles
getset

Optional collection of serialized EngineStates to mount at initialization.

◆ TargetFPS

int Gondwana.Configuration.EngineConfiguration.TargetFPS
getset

Target screen refresh rate for the Engine. Setting the number lower allows more time for the processor to perform background Engine tasks. Set the value to 0 for no upper limit. Default is 60 FPS.

◆ TimeBetweenGamepadEvents

double Gondwana.Configuration.EngineConfiguration.TimeBetweenGamepadEvents = 0.03
getset

Minimum time (in seconds) allowed between Gamepad events. Use this to prevent flooding the system with too many events at once (holding down a button, etc). Default is 0.03 seconds (30 milliseconds).

◆ TimeBetweenKeyboardEvents

double Gondwana.Configuration.EngineConfiguration.TimeBetweenKeyboardEvents = 0.03
getset

Minimum time (in seconds) allowed between Keyboard events. Use this to prevent flooding the system with too many events at once (holding down a key, etc). Default is 0.03 seconds (30 milliseconds).

◆ TimeBetweenMouseEvents

double Gondwana.Configuration.EngineConfiguration.TimeBetweenMouseEvents = 0.03
getset

Minimum time (in seconds) allowed between Mouse events. Use this to prevent flooding the system with too many events at once (holding down a button, dragging, etc). Default is 0.03 seconds (30 milliseconds).