Gondwana is a code-first, cross-platform 2D and 2.5D game and rendering engine for C# and .NET 8. It gives developers fine-grained control over rendering, timing, movement, input, collision detection, and scene composition.
Gondwana targets Windows, Linux, macOS, and WebAssembly through SkiaSharp-based rendering, with dedicated integrations for WinForms, Avalonia, and Blazor. Its layered worlds support multiple views, parallax, stable z-ordering, particles, pixel overhang, and several grid projections. Optional packages add desktop and browser audio, MIDI playback, SDL2 gamepad input, video playback, hosting, and reusable game UI widgets.
Rather than hiding the render pipeline behind an editor, Gondwana embraces a code-first, engine-driven design. Developers retain direct ownership of the game loop and rendering flow when needed, while sensible defaults and ready-to-use hosts keep smaller games approachable.
The engine carries forward the predictability of classic Win32/GDI-era rendering—explicit draw order, dirty-region updates where appropriate, scene composition, and timing—inside a modern, modular architecture. The result is an engine intended to remain understandable and debuggable without demanding that a project surrender control as it grows.
Spot! is Gondwana's primary playable showcase.
Requires the .NET 8 SDK.
dotnet new install Gondwana.Templates
dotnet new gondwana-winforms -n MyFirstGame
cd MyFirstGame
dotnet runFor a guided introduction, see Make Your First Game in 30 Minutes with Gondwana.
Prefer an AI-assisted workflow? See Using Gondwana with ChatGPT and Codex.
Note
Gondwana is actively developed. Its public API is usable today, but breaking changes may occur as the engine and tooling mature.
- 📘 Engine Wiki
- 📚 API Reference — stable · Development (
master) · Historical releases are available in the API version selector. - 📦 NuGet Package
- 🏷️ GitHub Releases
- 📜 Release History
- ✅ Latest CI Run
- 💬 Discussions
GitHub is the canonical repository for Gondwana. Issues, pull requests, discussions, and development activity should be submitted there.
Read-only mirrors are maintained for availability and discoverability:
- Codeberg — source mirror
- SourceForge — source mirror and release downloads
Gondwana is for .NET developers who want to build games in C# rather than assemble them entirely through an editor. It is a good fit when you value:
- Fine-grained control over rendering, timing, input, and movement
- Predictable, debuggable draw and update pipelines
- A code-first workflow without editor lock-in
- A reusable foundation for custom 2D and 2.5D games
- Modern .NET architecture grounded in proven rendering principles
Gondwana is deliberately an engine and framework, not an all-encompassing visual game-making suite. Its tooling supports the code-first workflow rather than replacing it.
- Cross-platform SkiaSharp rendering through CPU bitmap and GPU-backed surfaces
- Backbuffer abstraction through
BitmapBackbufferandGpuBackbuffer - WinForms, Avalonia, and Blazor adapters, with ready-to-use hosts for Windows, Linux, macOS, and WebAssembly
- View-centric layered scenes with multiple cameras, viewports, parallax, stable z-ordering, and world-space dirty-region tracking
- Host-owned display effects for view- and layer-level effects, including fades, slides, directional fills and erases, view shake, and zoom
- Modular lighting and fog-of-war primitives, including radial lights, flicker, darkness overlays, and tracked world-space reveal areas
- Multiple coordinate systems: orthogonal, rhombic isometric, axial isometric, flat-top hex, pointy-top hex, and oblique
- Sprites and DirectDrawing for reusable images, shapes, text, particles, overlays, effects, composites, and high-volume bitmap instances
- Reusable game UI widgets with lifecycle events, automatic input registration, focus, keyboard and pointer routing, dragging, hit testing, and components such as
SplashScreen - Sprite and camera movement with easing, target following, interpolation, scripted paths, and reusable visual effects
- Collision detection and kinematic resolution, including per-frame and per-tile collision adjustments for more precise collision geometry
- High-resolution timing and thread-safe drawable management with stable z-order sorting
- Asset support for tilesheets, sprites, fonts, audio, and packaged Gondwana asset files
- Unified keyboard, mouse, touch, and gamepad input, with SDL2 gamepad support available as a dedicated package
- Audio, MIDI, browser audio, and experimental video integration through optional packages
Gondwana uses a central Engine cycle to advance timing, input, movement, animation, and game state. Active View instances then project and composite their SceneLayer contents through cameras and viewports into a platform backbuffer.
CPU bitmap backbuffers support world-space dirty-region rendering, while GPU-backed surfaces render the full viewport. WinForms, Avalonia, and Blazor adapters handle presentation and native input at the edges, leaving the core engine platform-agnostic.
Engine → Views and cameras → Scene layers and drawables → Backbuffer → Platform adapter
See the Engine Wiki for detailed rendering pipelines and subsystem documentation.
Runtime packages are available on NuGet. Install only the pieces your project needs.
| Package | Description |
|---|---|
Gondwana |
Core engine; required by Gondwana projects |
Gondwana.Hosting |
Cross-platform GameHostBase for structured startup, shutdown, and lifecycle management |
Gondwana.Widgets |
Reusable game UI widgets, overlays, HUD elements, and unified widget input routing |
Gondwana.WinForms |
WinForms rendering and input adapters for Windows |
Gondwana.WinForms.Hosting |
Ready-to-use WinFormsGameHost |
Gondwana.Avalonia |
Avalonia rendering and input adapters for Windows, macOS, and Linux |
Gondwana.Avalonia.Hosting |
Ready-to-use AvaloniaGameHost |
Gondwana.Blazor |
Blazor WebAssembly rendering, input, and browser components |
Gondwana.Blazor.Hosting |
Ready-to-use Blazor host lifecycle integration |
Gondwana.Input.SDL2 |
Cross-platform SDL2 gamepad input; requires native SDL2 |
Gondwana.Audio.Midi |
MIDI playback and SoundFont support |
Gondwana.Audio.Browser |
Browser and WebAssembly audio through the HTML5 Audio API and JavaScript interop |
Gondwana.Video |
Experimental video playback through LibVLCSharp |
| Tool | Install / location | Description |
|---|---|---|
| Gondwana.Templates | dotnet new install Gondwana.Templates |
Project templates for gondwana-winforms, gondwana-avalonia, and gondwana-blazor |
| Gondwana.Cli | dotnet tool install --global Gondwana.Cli |
The gondwana CLI for creating projects, checking an environment with gondwana doctor, and packing or inspecting asset files |
| Gondwana.Tooling.Studio.Avalonia | Build from Tooling/Gondwana.Tooling.Studio.Avalonia |
Cross-platform Avalonia front end for Gondwana project and asset tooling |
| Gondwana.Tooling.Studio.WinForms | Build from Tooling/Gondwana.Tooling.Studio.WinForms |
Windows-native Studio front end sharing framework-agnostic editor logic with the Avalonia application |
- Code first: Game code owns behavior and can reach the rendering and update pipeline directly.
- World space first: Gameplay and scene logic operate in world pixels; views and cameras convert world coordinates to screen coordinates at render time.
- Dirty-region rendering where it pays: CPU bitmap backbuffers redraw changed world-space regions rather than repainting the entire frame.
- Layered, view-centric scenes: Scenes contain independently rendered
SceneLayerinstances, whileViewandViewRenderermake multiple cameras, viewports, and split views natural. - Adapters at the edges: Platform projects host render surfaces and wire native input while the core remains platform-agnostic.
- Explicit composition: Sprites, direct drawings, composites, widgets, and scene layers have clear ownership and ordering rules.
- Predictable behavior: Stable ordering and explicit timing make rendering and movement easier to debug.
- Modularity without ceremony: Hosting, widgets, platform adapters, audio, input, and video remain separate packages so applications take only what they need.
Gondwana is actively evolving, with an emphasis on strengthening the engine and its tooling.
- WebAssembly support through Blazor
- Tilesheet and SceneLayer tooling, including TMX support
- Full platformer sample
- WebGL-backed Blazor rendering adapter
- Expanded 2D physics, including momentum, elasticity, and additional collision shapes
- Native, first-class pathfinding
- Initial client/server networking support
- Android and iOS support via .NET MAUI adapters
Contributions are welcome.
- Open an issue for a bug report or feature request.
- Fork the repository, create a focused branch, and submit a pull request.
Gondwana is available under the MIT License.
Third-party libraries
Gondwana uses Skia (© Google) through SkiaSharp (© Microsoft and contributors), licensed under the BSD 3-Clause license.
Gondwana is developed and maintained independently. If you find the engine useful, consider buying me a coffee to support its continued development.

