![]() |
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.
|
Namespaces | |
| namespace | Assets |
| namespace | Audio |
| namespace | Collision |
| namespace | Configuration |
| namespace | Drawing |
| namespace | Extensibility |
| namespace | Input |
| namespace | Logging |
| namespace | Movement |
| namespace | Rendering |
| namespace | Scenes |
| namespace | SkiaSharp |
| namespace | Timers |
| namespace | Video |
| namespace | WinForms |
Classes | |
| class | CyclesPerSecondCalculatedEventArgs |
| Provides data for events that report calculated cycles per second (CPS) performance metrics. This event args class contains both gross and net cycle counts, their corresponding rates per second, and the sampling time period. Net CPS typically represents the effective frame rate (FPS) of the engine, while gross CPS includes all cycles regardless of whether they resulted in rendered frames. More... | |
| class | Engine |
| Represents the core game engine singleton responsible for managing the main update loop, input systems, rendering, timing, and subsystem coordination. More... | |
| class | EngineDispatcher |
| Provides thread-safe dispatching of actions to the engine's background thread. This dispatcher allows external code to safely post work items that should execute on the engine's dedicated update loop thread, ensuring thread-safe access to engine state. More... | |
| class | EngineInfo |
| Provides static information about the Gondwana engine, including version details. This class offers convenient access to engine metadata derived from assembly attributes and file version information. | |
| class | EngineState |
| Represents the complete serializable state of the game engine, including assets, scenes, sprites, audio resources, and custom data. This class provides functionality to save and load engine state to/from files with support for selective state management, compression, and merge operations. The state can be persisted as JSON and optionally compressed using GZip compression. More... | |
| interface | IEngineDispatcher |
| Defines a contract for dispatching actions to the engine's background thread in a thread-safe manner. Implementations of this interface provide mechanisms for posting work items from any thread to be executed on the engine's dedicated update loop thread, ensuring thread-safe access to engine state. More... | |
| interface | IUiDispatcher |
| Defines a contract for dispatching actions to the UI thread in a thread-safe manner. Implementations of this interface provide mechanisms for posting or sending work items from any thread to be executed on the application's main UI thread, ensuring thread-safe access to UI components and controls. More... | |
| class | TypedValueBag |
| A flexible, strongly-typed value container intended for save-state extensibility. More... | |
| class | UiDispatcher |
| Provides a concrete implementation of IUiDispatcher for dispatching actions to the UI thread using a SynchronizationContext. This class enables thread-safe marshalling of operations from background threads to the application's main UI thread. More... | |
Enumerations | |
| enum | EngineStateParts { None = 0 , AssetsFiles = 1 << 0 , Tilesheets = 1 << 1 , Cycles = 1 << 2 , Scenes = 1 << 3 , Sprites = 1 << 4 , Audio = 1 << 5 , ValueBag = 1 << 6 , All = AssetsFiles | Tilesheets | Cycles | Scenes | Sprites | Audio | ValueBag } |
Represents different parts of the engine state that can be managed, saved, or loaded independently. This is a flags enumeration, allowing multiple state parts to be combined using bitwise operations to represent complex state management scenarios. For example, use AssetsFiles | Tilesheets to represent both asset files and tilesheet state, or use All to represent all engine state components. More... | |
Functions | ||
| readonly record struct | ValueKey< T > (string Name) | |
| Represents a strongly-typed key used to access values in a TypedValueBag. | ||
Represents different parts of the engine state that can be managed, saved, or loaded independently. This is a flags enumeration, allowing multiple state parts to be combined using bitwise operations to represent complex state management scenarios. For example, use AssetsFiles | Tilesheets to represent both asset files and tilesheet state, or use All to represent all engine state components.
| Enumerator | |
|---|---|
| None | No engine state parts are selected. This represents an empty or null state selection, useful as a default or reset value when no specific state parts need to be managed. |
| AssetsFiles | Represents the asset files state, including loaded file references, asset metadata, and file system resources used by the engine. This encompasses all externally loaded resources such as images, data files, and other assets that the engine loads from disk. |
| Tilesheets | Represents the tilesheets state, including loaded tilesheet definitions, tile graphics, tile properties, and tilesheet configurations. This encompasses all tile-based graphics resources used for rendering tile-based game worlds and scenes. |
| Cycles | Represents the animation cycles state, including sprite animations, frame sequences, timing information, and animation configurations. This encompasses all animation data used to create dynamic sprite behaviors and visual effects. |
| Scenes | Represents the scenes state, including scene definitions, layer configurations, entity placements, and scene hierarchies. This encompasses all data related to game scenes, including their structure, contents, and properties. |
| Sprites | Represents the sprites state, including sprite instances, positions, properties, and sprite-related game objects. This encompasses all active sprite entities and their runtime state within the game world. |
| Audio | Represents the audio state, including loaded sound effects, music tracks, audio settings, playback states, and audio configurations. This encompasses all audio resources and their current playback and configuration state. |
| ValueBag | Represents the value bag state, which typically includes custom key-value pairs, game variables, flags, and other dynamic data storage used by the application. This provides a flexible storage mechanism for arbitrary game state data that doesn't fit into other specific categories. |
| All | Represents all engine state parts combined. This is a convenience value that includes AssetsFiles, Tilesheets, Cycles, Scenes, Sprites, Audio, and ValueBag. Use this when you need to manage, save, or load the complete engine state without selectively choosing individual parts. |
| readonly record struct Gondwana.ValueKey< T > | ( | string | Name | ) |
Represents a strongly-typed key used to access values in a TypedValueBag.
The generic type parameter T defines the expected value type associated with the key, enabling compile-time type safety while allowing the underlying storage to remain flexible.
| T | The type of value associated with this key. |