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?

  • T.Fly() ha risposto a questo messaggio
    Related Discussions
    ...
    • Modificato

    Mario

    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:

    1. Cloned Godot 3.5 branch.
    2. Cloned Spine Runtimes.
    3. Copy/pasted spine_godot folder from Runtimes to engine source in godot/modules.
    4. Then followed compiling with mono instructions up until the "Enable the Mono module" step where I get the above error.

    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.

    • T.Fly() ha risposto a questo messaggio

      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). Use target=release_debug to build an optimized release binary.
      Checking for thread_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 directory

      modules\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%] ctory

      modules\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 directory

      scons: *** [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.

      5 mesi dopo

      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.

      5 giorni dopo

      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.

      • T.Fly() ha risposto a questo messaggio

        Alyria I'm fairly sure the GDExtension system doesn't have any C# hooks yet so you'd still have to control Spine via GDScript and then interop that with C#, which might be slow depending on what you're doing. Still, it would at least eliminate the engine compilation step.

        • Alyria ha risposto a questo messaggio

          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.

          • T.Fly() ha risposto a questo messaggio

            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.

                • T.Fly() ha risposto a questo messaggio

                  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=yesand <godot_binary> --headless --generate-mono-glue modules/mono/gluelines 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/modulesfolder 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.

                    • Modificato

                    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.