The runtime is not fundamentally incompatible. We just don't ship pre-compiled binaries as it's a pain to set up a build pipeline for Mono integration for all platforms.
What specific errors are you getting?
The runtime is not fundamentally incompatible. We just don't ship pre-compiled binaries as it's a pain to set up a build pipeline for Mono integration for all platforms.
What specific errors are you getting?
PS C:\GameDev\GodotEngine\Godot_3_5_Src\godot> scons module_mono_enabled=yes
scons: Reading SConscript files ...
Automatically detected platform: windows
Auto-detected 24 CPU cores available for build parallelism. Using 23 cores by default. You can override it with the -j argument.
Found MSVC version 14.2, arch x86_64
Building for platform "windows", architecture "x86_64", target "editor".
Checking for C header file mntent.h... (cached) no
scons: done reading SConscript files.
scons: Building targets ...
[ 3%] Compiling main\main.cpp ...
[ 3%] main.cpp
[ 3%] Compiling modules\register_module_types.gen.cpp ...
[ 3%] register_module_types.gen.cpp
[ 18%] Compiling modules\gdscript\register_types.cpp ...
[ 18%] register_types.cpp
[ 18%] Compiling modules\gdscript\language_server\gdscript_extend_parser.cpp ...
gdscript_extend_parser.cpp
[ 18%] Compiling modules\gdscript\language_server\gdscript_language_protocol.cpp ...
[ 18%] Compiling modules\gdscript\language_server\gdscript_language_server.cpp ...
gdscript_language_protocol.cpp
gdscript_language_server.cpp
[ 18%] Compiling modules\gdscript\language_server\gdscript_text_document.cpp ...
[ 18%] Compiling modules\gdscript\language_server\gdscript_workspace.cpp ...
gdscript_text_document.cpp
gdscript_workspace.cpp
[ 20%] Compiling modules\gltf\gltf_document.cpp ...
[ 20%] gltf_document.cpp
[ 20%] Compiling modules\gltf\register_types.cpp ...
[ 20%] register_types.cpp
[ 20%] Compiling modules\gltf\editor\editor_scene_exporter_gltf_plugin.cpp ...
[ 20%] Compiling modules\gltf\editor\editor_scene_importer_blend.cpp ...
[ 20%] editor_scene_exporter_gltf_plugin.cpp
[ 20%] Compiling modules\gltf\editor\editor_scene_importer_fbx.cpp ...
[ 20%] Compiling modules\gltf\editor\editor_scene_importer_gltf.cpp ...
editor_scene_importer_blend.cpp
editor_scene_importer_fbx.cpp
editor_scene_importer_gltf.cpp
[ 26%] Compiling modules\navigation\navigation_mesh_generator.cpp ...
[ 26%] navigation_mesh_generator.cpp
[ 34%] Compiling modules\spine_godot\GodotSpineExtension.cpp ...
GodotSpineExtension.cpp
C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\GodotSpineExtension.h(32): fatal error C1083: Cannot open include file: 'spine/Extension.h': No such file or directory
[ 34%] Compiling modules\spine_godot\SpineAnimation.cpp ...
SpineAnimation.cpp
[ 34%] Compiling modules\spine_godot\SpineAnimationState.cpp ...
SpineAnimationState.cpp
[ 34%] Compiling modules\spine_godot\SpineAnimationTrack.cpp ...
[ 34%] Compiling modules\spine_godot\SpineAtlasResource.cpp ...
SpineAnimationTrack.cpp
[ 34%] Compiling modules\spine_godot\SpineAttachment.cpp ...
SpineAtlasResource.cpp
[ 34%] Compiling modules\spine_godot\SpineBone.cpp ...
[ 34%] Compiling modules\spine_godot\SpineBoneData.cpp ...
SpineAttachment.cpp
SpineBone.cpp
SpineBoneData.cpp
scons: *** [modules\spine_godot\GodotSpineExtension.windows.editor.x86_64.obj] Error 2
C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\SpineAnimation.h(34): fatal error C1083: Cannot open include file: 'spine/Animation.h': No such file or directory
scons: *** [modules\spine_godot\SpineAnimation.windows.editor.x86_64.obj] Error 2
C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\SpineAtlasResource.h(36): fatal error C1083: Cannot open include file: 'spine/Atlas.h': No such file or directory
scons: *** [modules\spine_godot\SpineAnimationState.windows.editor.x86_64.obj] Error 2
C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\SpineAtlasResource.h(36): fatal error C1083: Cannot open include file: 'spine/Atlas.h': No such file or directory
scons: *** [modules\spine_godot\SpineAtlasResource.windows.editor.x86_64.obj] Error 2
C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\SpineAtlasResource.h(36): fatal error C1083: Cannot open include file: 'spine/Atlas.h': No such file or directory
scons: *** [modules\spine_godot\SpineAnimationTrack.windows.editor.x86_64.obj] Error 2
C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\SpineAttachment.h(33): fatal error C1083: Cannot open include file: 'spine/spine.h': No such file or directory
C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\SpineBoneData.h(34): fatal error C1083: Cannot open include file: 'spine/BoneData.h': No such file or directory
scons: *** [modules\spine_godot\SpineAttachment.windows.editor.x86_64.obj] Error 2
scons: *** [modules\spine_godot\SpineBone.windows.editor.x86_64.obj] Error 2
C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\SpineBoneData.h(34): fatal error C1083: Cannot open include file: 'spine/BoneData.h': No such file or directory
scons: *** [modules\spine_godot\SpineBoneData.windows.editor.x86_64.obj] Error 2
scons: building terminated because of errors.
[Time elapsed: 00:00:16.617]
PS C:\GameDev\GodotEngine\Godot_3_5_Src\godot>
The process I've followed so far:
spine_godot
folder from Runtimes to engine source in godot/modules.I have not run any of the included spine shell scripts as I'm unsure if/when I should do any of that.
EDIT: Assuming I have to go the shell script route where I have to modify the scripts to include the mono steps, I've been unsuccessful in running the default scripts as well:
The world of compiling from source, shell scripts and everything else related is completely foreign to me.
Here's the reason things don't compile for you:
C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\GodotSpineExtension.h(32): fatal error C1083: Cannot open include file: 'spine/Extension.h': No such file or directory
You don't have to use the shell scripts that come with spine-godot, but you need to copy over the folder spine-runtimes/spine-cpp/spine-cpp
to your copy of the spine_godot
folder.
Here's what that looks like:
The errors you get when executing the Bash scripts in spine-godot
are due to the spaces in your path. I'll fix that up on our end. But I strongly suggest to never use spaces in your files and/or folder names as many (programming) tools don't deal with those properly.
Mario I've copied spine-runtimes/spine-cpp/spine-cpp
folder to spine_godot
folder:
But I'm still experiencing issues:
C:\GameDev\GodotEngine\Godot_Src\godot>scons p=windows tools=yes module_mono_enabled=yes mono_glue=no
scons: Reading SConscript files ...
Auto-detected 24 CPU cores available for build parallelism. Using 23 cores by default. You can override it with the -j argument.
Configuring for Windows: target=debug, bits=default
Found MSVC version 14.2, arch amd64, bits=64
Note: Building a debug binary (which will run slowly). Usetarget=release_debug
to build an optimized release binary.
Checking forthread_local
support... supported
Found Mono root directory: C:\Program Files\Mono\
Checking for C header file mntent.h... (cached) no
scons: done reading SConscript files.
scons: Building targets ...
[ 4%] generate_modules_enabled(["modules\modules_enabled.gen.h"], [OrderedDict([('bmp', 'modules/bmp'), ('bullet', 'modules/bullet'), ('camera', 'modules/camera'), ('csg', 'modules/csg'), ('cvtt', 'modules/cvtt'), ('dds', 'modules/dds'), ('denoise', 'modules/denoise'), ('enet', 'modules/enet'), ('etc', 'modules/etc'), ('fbx', 'modules/fbx'), ('freetype', 'modules/freetype'), ('gdnative', 'modules/gdnative'), ('gdscript', 'modules/gdscript'), ('gltf', 'modules/gltf'), ('gridmap', 'modules/gridmap'), ('hdr', 'modules/hdr'), ('jpg', 'modules/jpg'), ('jsonrpc', 'modules/jsonrpc'), ('lightmapper_cpu', 'modules/lightmapper_cpu'), ('mbedtls', 'modules/mbedtls'), ('minimp3', 'modules/minimp3'), ('mobile_vr', 'modules/mobile_vr'), ('mono', 'modules/mono'), ('navigation', 'modules/navigation'), ('ogg', 'modules/ogg'), ('opensimplex', 'modules/opensimplex'), ('opus', 'modules/opus'), ('pvr', 'modules/pvr'), ('raycast', 'modules/raycast'), ('regex', 'modules/regex'), ('spine_godot', 'modules/spine_godot'), ('squish', 'modules/squish'), ('stb_vorbis', 'modules/stb_vorbis'), ('svg', 'modules/svg'), ('tga', 'modules/tga'), ('theora', 'modules/theora'), ('tinyexr', 'modules/tinyexr'), ('upnp', 'modules/upnp'), ('vhacd', 'modules/vhacd'), ('visual_script', 'modules/visual_script'), ('vorbis', 'modules/vorbis'), ('webm', 'modules/webm'), ('webp', 'modules/webp'), ('webrtc', 'modules/webrtc'), ('websocket', 'modules/websocket'), ('webxr', 'modules/webxr'), ('xatlas_unwrap', 'modules/xatlas_unwrap')])])
[ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\Animation.cpp
[ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\AnimationState.cpp
[ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\AnimationStateData.cpp
Animation.cpp
[ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\Atlas.cpp
AnimationState.cpp
[ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\AtlasAttachmentLoader.cpp
AnimationStateData.cpp
[ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\Attachment.cpp
[ 45%] Atlas.cpp
[ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\AttachmentLoader.cpp
AtlasAttachmentLoader.cpp
[ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\AttachmentTimeline.cpp
Attachment.cpp
[ 45%] AttachmentLoader.cpp
[ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\Bone.cpp
AttachmentTimeline.cpp
[ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\BoneData.cpp
[ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\BoundingBoxAttachment.cpp
Bone.cpp
[ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\ClippingAttachment.cpp
BoneData.cpp
[ 45%] modules\spine_godot\spine-cpp\src\spine\AnimationStateData.cpp(30): fatal error C1083: Cannot open include file: 'spine/AnimationStateData.h': No such file or directory
[ 45%] modules\spine_godot\spine-cpp\src\spine\AttachmentTimeline.cpp(30): fatal error C1083: Cannot open include file: 'spine/AttachmentTimeline.h': No such file or directory
Compiling ==> modules\spine_godot\spine-cpp\src\spine\ColorTimeline.cpp
modules\spine_godot\spine-cpp\src\spine\Atlas.cpp(30): fatal error C1083: Cannot open include file: 'spine/Atlas.h': No such file or directory
BoundingBoxAttachment.cpp
modules\spine_godot\spine-cpp\src\spine\Animation.cpp(30): fatal error C1083: Cannot open include file: 'spine/Animation.h': No such file or directorymodules\spine_godot\spine-cpp\src\spine\Attachment.cpp(30): fatal error C1083: Cannot open include file: 'spine/Attachment.h': No such file or directorymodules\spine_godot\spine-cpp\src\spine\AttachmentLoader.cpp(30): fatal error C1083: Cannot open include file: 'spine/AttachmentLoader.h': No such file or directory
modules\spine_godot\spine-cpp\src\spine\AnimationState.cpp(30): fatal error C1083: Cannot open include file: 'spine/AnimationState.h': No such file or directory
modules\spine_godot\spine-cpp\src\spine\AtlasAttachmentLoader.cpp(30): fatal error C1083: Cannot open include file: 'spine/AtlasAttachmentLoader.h': No such file or directorymodules\spine_godot\spine-cpp\src\spine\BoneData.cpp(30): fatal error C1083: Cannot open include file: 'spine/BoneData.h': No such file or directorymodules\spine_godot\spine-cpp\src\spine\Bone.cpp(30): fatal error C1083: Cannot open include file: 'spine/Bone.h': No such file or directory
[ 45%][ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\ConstraintData.cpp
ClippingAttachment.cpp
[ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\CurveTimeline.cpp
ColorTimeline.cpp
[ 45%] ConstraintData.cpp
Compiling ==> modules\spine_godot\spine-cpp\src\spine\DeformTimeline.cpp
[ 46%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\DrawOrderTimeline.cpp
CurveTimeline.cpp
[ 46%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\Event.cpp
DeformTimeline.cpp
[ 46%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\EventData.cpp
DrawOrderTimeline.cpp
[ 46%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\EventTimeline.cpp
Event.cpp
[ 46%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\Extension.cpp
EventData.cpp
modules\spine_godot\spine-cpp\src\spine\DeformTimeline.cpp(30): fatal error C1083: Cannot open include file: 'spine/DeformTimeline.h': No such file or directory
modules\spine_godot\spine-cpp\src\spine\BoundingBoxAttachment.cpp(30): fatal error C1083: Cannot open include file: 'spine/BoundingBoxAttachment.h': No such file or directorymodules\spine_godot\spine-cpp\src\spine\ConstraintData.cpp(30): fatal error C1083: Cannot open include file: 'spine/ConstraintData.h': No such file or directorymodules\spine_godot\spine-cpp\src\spine\ColorTimeline.cpp(30): fatal error C1083: Cannot open include file: 'spine/ColorTimeline.h': No such file [ 46%] ctorymodules\spine_godot\spine-cpp\src\spine\ClippingAttachment.cpp(30): fatal error C1083: Cannot open include file: 'spine/ClippingAttachment.h': No such file or directory
modules\spine_godot\spine-cpp\src\spine\Event.cpp(30): fatal error C1083: Cannot open include file: 'spine/Event.h': No such file or directory[ 46%] open include file: 'spine/CurveTimeline.h': No such file or directoryerror C1083: Cannot
Compiling ==> modules\spine_godot\spine-cpp\src\spine\IkConstraint.cpp
modules\spine_godot\spine-cpp\src\spine\DrawOrderTimeline.cpp(30): fatal error C1083: Cannot open include file: 'spine/DrawOrderTimeline.h': No such file or directory
EventTimeline.cpp
Extension.cpp
modules\spine_godot\spine-cpp\src\spine\EventTimeline.cpp(30): fatal error C1083: Cannot open include file: 'spine/EventTimeline.h': No such file or directory
modules\spine_godot\spine-cpp\src\spine\EventData.cpp(30): fatal error C1083: Cannot open include file: 'spine/EventData.h': No such file or directory
IkConstraint.cpp
[ 46%] Compiling ==> modules\navigation\register_types.cpp
scons: *** [modules\spine_godot\spine-cpp\src\spine\CurveTimeline.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\BoundingBoxAttachment.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\AnimationStateData.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\Atlas.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\AttachmentTimeline.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\ConstraintData.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\AtlasAttachmentLoader.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\Bone.windows.tools.64.obj] Error 2
register_types.cpp
scons: *** [modules\spine_godot\spine-cpp\src\spine\ClippingAttachment.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\AnimationState.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\Event.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\DrawOrderTimeline.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\EventData.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\Attachment.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\Animation.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\ColorTimeline.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\DeformTimeline.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\AttachmentLoader.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\EventTimeline.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\BoneData.windows.tools.64.obj] Error 2
modules\spine_godot\spine-cpp\src\spine\IkConstraint.cpp(30): fatal error C1083: Cannot open include file: 'spine/IkConstraint.h': No such file or directorymodules\spine_godot\spine-cpp\src\spine\Extension.cpp(30): fatal error C1083: Cannot open include file: 'spine/Extension.h': No such file or directoryscons: *** [modules\spine_godot\spine-cpp\src\spine\Extension.windows.tools.64.obj] Error 2
scons: *** [modules\spine_godot\spine-cpp\src\spine\IkConstraint.windows.tools.64.obj] Error 2
scons: building terminated because of errors.
[Time elapsed: 00:00:04.263]
I did manage to resolve the shell script issue, thank you for the Path tip.
Ah, you are copying the Spine module into the Godot source tree. We keep the Spine module outside the Godot source tree. Have a look at the spine_godot/SCsub
file, lines 5 and 8. The paths given there are relative to the godot/
directory. I think if you change them to spine-cpp/include
it should work.
Now that Godot 4.1 is out, it would be great to see the signal name conflicts resolved as well as the other ongoing Godot 4 issues like mesh culling and 3D support.
GDExtension also has a backwards compatibility system in place now and no breaking changes are expected in the future. Perhaps the implementation could be ported to GDExtension?
I was on vacation last week, so couldn't fully check the 4.1 release yet.
I'm not sure 4.1 has any new means for us to fix mesh culling as described here: EsotericSoftware/spine-runtimes2248
3D support is independent of the Godot version. I just currently lack the time to work on it, as I have other runtimes to update/create. I'd welcome pull requests in that area.
I'd love to go GDExtension for the plugin, but that's still not well documented, especially for mobile and web platforms. I see what changed in 4.1.
I would also very much appreciate a GDExtensions version of the runtime, as a c# programmer the mono/.NET version of godot is the only way I can code with c#. I'm not particularly knowledgeable about more backend heavy things so I'm currently learning how to compile the godot editor from source but to be honest it seems like a major pain to get going, not to mention having to go through that whole process every time there's an update for the engine. If I have to compile it myself I will but I hope in the future it will be a much smoother process because I adore spine and just want to integrate it properly with godot without too much headache. That being said thank you for keeping up with godot 4.1 and continuing to update the runtime, I'm sure it's difficult to manage all these different game engines with their unique infrastructures.
Yeah, that's also my last info on GDExtension and C#. I'll look into GDExtension-ifying spine-godot in the near future once I'm done with other runtime work. One of the issues we'll face is that not everything we need is exposed via GDExtension and godot-cpp, e.g. AnimationPlayer
.
T.Fly() oh gotcha, well in that case I'll just set it up myself, it seems you were able to get it working after some troubleshooting, have you had any major complications using your custom build once you got it working? I plan on using the current 4.1 version of godot so hopefully the process won't be too different.
Alyria I went back to Unity for now. Both Godot 4 and Spine-Godot runtimes need time to mature for my purposes. Also, the project I'm working on now makes heavy use of the attachment API where I can set up template skins in Spine, but grab images from other sources like in the mix-and-match example scene. Godot implementation is limited in this use case, as it does not have access to the attachment API. Everything has to be done in Spine, which has load time and memory usage implications as well as a lot more manual labor.
The runtime can only mature if people give us feedback based on their real-world usage scenarios. Your use case is a good one, and we should definitely implement support for it. I've opened an issue here:
EsotericSoftware/spine-runtimes2322
That said, the runtime can only mature if we get this kind of feedback. So keep it coming please.
Mario Wasn't meant as critique, just an observation about software releases in general. Both the engine and its runtimes implementation are very new in the grand scheme of things. And Unity is a safer bet for commercial release within 6 months (and has the functionality I need).
Glad to see attachment API considered for a future version of Godot runtimes!
T.Fly() I see, well I'll give it a shot I guess, either that or I just learn and use GDscript at this point lol. Also I thought custom skins were possible with godot given the mix and match example? Is setting individual body parts/clothing items as individual skins particularly inefficient? Though I guess if you do everything in spine then modding new gear into the game could be difficult.
I'm a little confused, following the godot documentation it explains how to compile with .NET but im unsure where the spine runtimes fits into it. I have VSC, python, and SCons all setup but I haven't compiled anything yet. After cloning the spine runtimes I have both spine-godot and spine-cpp, from the above posts it seems I need to copy the spine-runtimes/spine-cpp/spine-cpp
folder to the spine_godot
folder, but since the runtimes are using a shell script, I'm not sure where to put the module_mono_enabled=yes
and <godot_binary> --headless --generate-mono-glue modules/mono/glue
lines in Git Bash if im using the shell scripts. If I don't use the shell scripts should I just follow the godot documentation normally and just do this part manually as well, also I shouldn't place the spine_godot
folder in the godot/modules
folder right?
I'm currently working on the C# build and will report back once it's done.
Today's progress: I got things to build on macOS. When you create a C# Godot Project, it will by default fetch the Godot assemblies from the default remote repository. For users of our custom engine build, they'll have to add a local repository to their nuget.config file. I'm also only targeting desktop OSs for the first MVP. There is simply not enough documentation regarding mobile or web with C#. The same is true for GDExtensions btw.
Once this is done, we'll publish C# builds of our Godot engine fork as well. Then there should only be one manual step for users to get their C# projects working with Spine support, namely, adding the NuGet source to point to a local copy of "our" Godot .NET assemblies.
Alyria Skins are supported in Godot, but only if they're set up in the Spine editor, then exported and included in the texture atlas. In Unity with attachment API, you can swap individual sprites, create runtime only skins and even repack the texture atlas on the fly. No additional re-export or setup from Spine necessary. This is very handy if you have hundreds of customization options for a couple dozen skeletons.
Mario Web and mobile for C# are currently unsupported in Godot 4. They're waiting for upstream support in .NET 8 sometime next year most likely. For GDExtension, since nothing is specified, the assumption would be that support is equal to engine modules. I've created an issue for docs improvement in this regard:godotengine/godot-docs7685
Mario oh dang that's awesome! thank you so much for looking into the .NET version. When it comes to compiling the godot source I was pretty overwhelmed with all the info at first, but after going through the documentation for a few hours and setting everything up I started to piece it together and the process wasn't nearly as bad as I thought, but it seems this way it'll be even easier which is awesome. Also no worries on the mobile/web compatibility, as T.fly says it seems kinda up in the air on godots side and at least for me personally I have no intention of doing anything in mobile/web development.
T.Fly() I see I see, not too much of a deal breaker for me personally but I definitely get why it could be a problem, especially for mod support later on.