Port of the Summator sample project originally from the GDExtensionSummator template.
This is a F# project that uses the Godot .NET bindings to implement a GDExtension that can be loaded by Godot.
Please note that I'm not an F# developer so this code is likely not idiomatic, but it should be a good enough starting point.
Build the F# library as a native library and put it in the lib directory of the Game project.
dotnet publish Extension -r linux-x64 -o Game/lib
There is a GDExtension manifest that already points to the right location so Godot can find the library.
Warning
Since it doesn't seem like F# supports the [UnmanagedCallersOnly]
attribute. Building a native library and loading it as a GDExtension will not work, instead follow the steps below.
For more context, see dotnet/samples#5647.
Build the F# library as a portable DLL and put it in the directory where Godot expects to find it.
The new dotnet
module is still a work-in-progress, but if you put the DLL in the .godot/mono/temp/bin/Debug
directory it should be able to find it (this may change in the future).
Note
The new dotnet
module is not publicly available yet.