Gondwana Game Engine Development (master) - 2.6.1
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 and web platforms using SkiaSharp for graphics and pluggable audio backends for desktop and browser targets.
Loading...
Searching...
No Matches
Gondwana Namespace Reference

Namespaces

namespace  Assets
namespace  Audio
namespace  Avalonia
namespace  Blazor
namespace  Configuration
namespace  Diagnostics
namespace  Drawing
namespace  Effects
namespace  Examples
namespace  Extensibility
namespace  Hosting
namespace  Input
namespace  Logging
namespace  Physics
namespace  Rendering
namespace  Scenes
namespace  SkiaSharp
namespace  Timers
namespace  Video
namespace  Widgets
namespace  WinForms

Classes

class  BrowserAudioEngineExtensions
 Engine registration helpers for browser/WASM audio.
class  CyclesPerSecondCalculatedEventArgs
 Provides the compatibility payload for legacy cycles-per-second (CPS) performance notifications. 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  DefinitionLoadStamp
class  DefinitionProvenance
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  EngineInputSystems
 Provides centralized access to all the input systems of the engine, including gamepad, keyboard, mouse, and touch input. More...
class  EngineManagers
 Provides centralized access to all engine resource managers. More...
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...
class  EngineStateSaveOptions
 Persistence choices for an EngineState save. 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  NAudioEngineExtensions
 Engine registration helpers for the NAudio backend.
class  TypedValueBag
 A flexible, strongly-typed value container intended for runtime-attached metadata and ephemeral engine state. 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 , All = AssetsFiles | Tilesheets | Cycles | Scenes | Sprites | Audio
}
 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...
enum  DefinitionPersistence { Inline , Loose , PreserveSource }
 Controls how EngineState persists a definition. More...

Functions

readonly record struct ValueKey< T > (string Name)
 Represents a strongly-typed key used to access values in a TypedValueBag.

Enumeration Type Documentation

◆ DefinitionPersistence

Controls how EngineState persists a definition.

Enumerator
Inline 

Embed the current definition in the state file.

Loose 

Write the current definition to a loose file beside the state.

PreserveSource 

Retain an unchanged durable source; otherwise embed the current definition.

Definition at line 4 of file EngineStateSaveOptions.cs.

◆ EngineStateParts

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.

All 

Represents all engine state parts combined. This is a convenience value that includes AssetsFiles, Tilesheets, Cycles, Scenes, Sprites, and Audio. Use this when you need to manage, save, or load the complete engine state without selectively choosing individual parts.

Definition at line 11 of file EngineStateParts.cs.

Function Documentation

◆ ValueKey< T >()

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 runtime type associated with the key. This allows the value bag to remain flexible internally while still providing compile-time type safety to callers.

In practical terms, a ValueKey<T> is the contract between the caller and the bag: the caller declares, up front, the type that is intended to be stored and later retrieved for a given logical name.

Template Parameters
TThe type of value associated with this key.
Parameters
NameThe unique logical name of the value.