Repository navigation
Gondwana v2.6.1 - the Studio release #473
Isthimius
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
A few weeks ago, I released Gondwana 2.6.0, which was a pretty substantial milestone for a project I've been building largely on my own. That release introduced WebGL rendering, a more complete widget system, new rendering effects, and quite a few improvements to the engine itself.
I had originally intended 2.6.1 to be a relatively modest follow-up release. Some cleanup, a few fixes, and perhaps another widget or two. That didn't quite go according to plan. Three weeks and 71 commits later, Gondwana has picked up a complete new direction in content authoring, several new asset formats, a collection of visual editing tools, and a fair amount of work under the hood.
Gondwana Studio
The biggest addition is Gondwana Studio, a Windows-based collection of visual authoring tools for working with the engine's content.
Gondwana has always been deliberately code-first. I like writing games in C#, and I don't particularly want an engine that hides everything behind an editor. But after manually defining enough tilesheets, animations, and scenes, I was reminded that doing everything in code isn't necessarily a virtue. So I started building some tools.
Studio brings together editors for tilesheets, animations, scenes, sprites, assets, and audio definitions into a common dockable workspace. The individual editors can also run as standalone applications. The editors support configurable layouts, persistent window arrangements, and the ability to work with multiple content files. The intent is to make repetitive content-authoring tasks easier without sacrificing the engine's code-first architecture.
It's still early, and the tooling will continue to evolve, but it's already made working with Gondwana considerably more pleasant.
New content formats and importers
A fair amount of the work went into making game content more portable, reusable, and easier to author.
Gondwana now has dedicated formats for animations (
.gani) and scenes (.gscn), building on the existing tilesheet (.gts) and packaged asset (.gaf) formats.These formats are integrated with the engine's runtime and authoring tools. Scene tooling has also gained native tile transformations, including flipping and rotation.
Perhaps more importantly, I added an external asset import pipeline supporting content from Tiled, Godot, and Aseprite, including support for Godot 3 TileSet resources.
I'm under no illusion that Gondwana should attempt to replace these tools. They're already very good at what they do. Being able to reuse assets and maps created elsewhere makes much more sense than reinventing every wheel.
More widgets, and some overdue polish
The widget system introduced in 2.6.0 continues to expand.
This release adds a tab control, scrollable list boxes with mouse-wheel support, and scrolling text labels. Text boxes have also gained improved key-repeat behavior.
Several of these improvements came directly from updating the Spot! demo, which has become a surprisingly effective way of discovering where the engine's APIs are awkward or where something that works in isolation doesn't quite hold up in an actual application. That's probably a good thing.
Spot! goes to the browser
Another milestone since 2.6.0 has been refactoring Spot!, Gondwana's little puzzle game, to share its game logic and UI across Windows, Avalonia, and Blazor.
The game now uses Gondwana's GPU rendering and widget systems rather than maintaining separate native UI implementations.
More importantly, the browser version is now playable on itch.io:
[Play Spot! on itch.io](https://isthimius.itch.io/spot)
Getting an actual game running in WebAssembly has been particularly useful. It's one thing to demonstrate that a rendering backend works. It's another to run a complete game, with input, audio, menus, packaged assets, and persistent settings, inside a browser.
There have been quite a few lessons learned along the way.
Improvements under the hood
Not everything in this release is immediately visible.
I've continued working on rendering behavior, diagnostics, and performance instrumentation, particularly around GPU rendering and browser hosting.
The release includes improved MSAA handling and diagnostics, asynchronous browser console logging, and changes to gamepad discovery and polling so those operations can run at independent, configurable rates.
There's also been a substantial amount of code cleanup: more complete XML documentation, consistent formatting, analyzer enforcement, and further improvements to the build and validation pipeline.
None of that makes for especially exciting screenshots, but it matters when trying to keep an engine of this size maintainable.
What's next?
The original goal of Gondwana hasn't changed. I want a reasonably powerful, understandable 2D/2.5D engine for .NET developers who prefer writing code, with enough tooling to make building actual games practical.
There's plenty left to do. Physics and collision handling need more work, the rendering pipeline still has room for improvement, and the visual tooling is far from finished. Mobile hosting is also on the longer-term roadmap.
But the distance between creating an empty project and assembling a playable game has gotten noticeably shorter.
That's a meaningful milestone for me.
Gondwana is open source under the MIT license, written in C# for .NET 8, and supports Windows, Linux, macOS, and WebAssembly through its various hosts and adapters.
If you're interested in game engines, rendering architecture, or just what happens when one developer spends an unreasonable amount of time building the tools to make games instead of actually making games, I'd welcome your feedback.
Links:
Now, perhaps, I can finally get back to making games with it.
At least until I think of another feature.
All reactions