I needed a way to embed Godot in .NET applications, and ended up facilitating HTML5 export for C# games, too, which really reinvigorated my passion for Godot in game jams. And for boring work, I needed parallel unit testing (across multiple ALCs).

But what is it...? I call it a C# front-end for the Godot engine, but really...

2dog is still Godot

All the Godot goodness still works, including programming with GodotSharp (their official C# SDK) and the 4.7 official editor, which was important to me for stability and trust (also, easier to swap out or extend).

The nuget packages are free and libre open source under the MIT license. 2dog uses libgodot and creates a choice of small .NET "host" applications that you can tailor to your needs - HTML5 browser export, embedding in WinForms, xUnit testing, etc.

Still hot off the press, always happy about visitors to the ⤜outfox⤏ discord or issues on our GitHub.

you are viewing a single comment's thread
view the rest of the comments
[–] [S] 3 points 5 days ago* (2 children)

Yay! Your game works! *asterisk...

I released a new release (v4.7.1.59) of 2dog that hardwires all the native WASM trampoline functions. It's one of those bugs that has me scratching my head, as in "how did this ever work?", but it did, including for samples from the Godot foundation, three friends' games, and two of my own. So... mega big thanks for this bug report, this was a big one!

You may need to run dotnet nuget locals all --clear and dotnet restore --force or similar to get the fresh packages.

Anyway. The asterisk: the loading performance of certain scenes and textures isn't great at all 😓, and I'm working on ways to make that nicer in the web html harness; and I also need to figure out where the majority of that time is spent; sometimes it's WASM compile time, sometimes it's scene load.

PS: Super adorable game idea. That angry beach ball can get bent, though... sheesh. Ey, I'm walkin' crawlin' here!

  • source
  • parent
  • hideshow 4 child comments
  • [–] [S] 1 point 3 days ago*

    v4. 7.1.64 or later should drastically improve loading performance. I find it acceptable with it, if not outstanding of course.

    Turns out among other things, I was loading the PCK and the WASM blob twice depending on web server behaviour. 🤪

  • source
  • parent
  • [–] 3 points 5 days ago (1 child)

    Yay, that's awesome!

    I needed to do a dotnet dnx 2dog again after your commands to regenerate the build assets but after that the build worked fine, thanks!

    The asterisk: the loading performance of certain scenes and textures isn’t great at all

    To cheer you up: The performance of the regular Godot web version is not all that great either for 3D stuff. It loaded quite quickly on my PC. Throws an error on level load but still works, might just be the shady level loading we did under time pressure.

    PS: Super adorable game idea. That angry beach ball can get bent, though… sheesh. Ey, I’m walkin’ crawlin’ here!

    Glad you liked it! We put a lot of work into this one. :)

    Shame I didn't see 2dog during the jam but for next time we are equipped to finally ship a web version. Thanks!

  • source
  • parent
  • hideshow 2 child comments
  • [–] [S] 3 points 5 days ago*

    Just try it, in the worst case you have to git reset --hard and git clean -dxn / -dxf and dnx 2dog add again, but I think the dotnet restore --force should do it! There's only changes to the native library and the glue code.

    I plan to use 2dog a lot in future jams... it wasn't quite stable enough for GMTK jam, though, so... something to look forward to in upcoming jams.

  • source
  • parent