Join GitHub today
Mono/C# support on Android #20267
This applies to iOS too but I'll just post this here for now since we'd likely focus on Android first. The only framework I'm aware of for creating mobile apps using Mono/C# is Xamarin. Unfortunately, these tools are not available for Linux, which is problematic for if we want to make use of them since Godot is a strongly multiplatform game engine. I submitted a feature request here: mono/monodevelop#5228
For Android specifically, I also found this https://github.com/xamarin/xamarin-android
We may be able to use Mono separately from Xamarin on Android and iOS, but it would still be good to have Xamarin working on Linux, to ensure that the underlying tech (Mono) works properly.
Well, isn't Godot itself a framework for creating mobile apps using Mono/C# already? We can build Windows apps from Linux with Godot + Mono (i.e. the Linux-compiled C# assemblies work on Windows), so it should work the same for Android, no?
IINM, we just need to find how to include the assemblies in the APK and load them from there - and of course compile the Android export templates with the Mono module, but that shouldn't be hard. (I might miss something specific to non-desktop platforms that would require us to go through a thirdparty framework though).
referenced this issue
Sep 24, 2018
Although all the official documentation I'm reading on the subject says that
We will be happy to make sure that we can produce Xamarin.Android packages from our CI that are suitable for your consumption. We are trying to setup a communications channel between the Godot folks and my team to make sure we are not blocking you.
While you can certainly produce Android packages natively, I would love to see this use Xamarin.Android, mostly because we productize the latter and can provide support to any users that are running into problems. And it would be the same on Windows, Mac and Linux.
But most importantly, because then your C# users could call and consume any native APIs from Android without having to use some sort of module, they can access the entire Android API from C# when they so desire.