You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the problem or limitation you are having in your project:
Currently to make a custom module for iOS developers are required to implement it as part of the engine and make a custom engine binary to be used instead of one coming with iOS export template.
It's mostly okay if many modules are not required, but could turn into a mess, once number of modules starts to grow.
There could also be a propblem of shipping incorrect binary, since right now on reexport Godot clears the folder where iOS app is exported to.
Describe the feature / enhancement and how it helps to overcome the problem or limitation:
register_modules/unregister_modules methods specific for iOS platform could be used to call register/unregister methods of native modules added to project.
This would perform the same register/setup routines that is happending right now, but would also give a developer control over which module gets loaded additinally simplifing this procedure.
Modules itself would be built in the same way as they are built right now, but as separate static(.a) library with godot's binary linked to them (ARKit modules is a good example for it). But with this changes it would not required for an engine to be build alongside the module every time module is added or gets changed. Only headers and built binary would be needed.
Modules would be bundled upon project export, and could use a special configuration file, like the one used for Android Plugins, to describe which binary and method should be used to register them.
Modules like GameCenter and InAppStore that's currently included in platform could also be changed to use this feature.
Adding a configuration file would also provide a way to list modules in export window as well as enable or disable this if needed.
Basically this changes would simplify modules loading on iOS and give developers a way to build iOS modules independently from engine source.
Describe how your proposal will work, with code, pseudocode, mockups, and/or diagrams:
Module configuration file could look like this (Android Plugin configuration file was taken as example):
Describe the project you are working on:
iOS Game
Describe the problem or limitation you are having in your project:
Currently to make a custom module for iOS developers are required to implement it as part of the engine and make a custom engine binary to be used instead of one coming with iOS export template.
It's mostly okay if many modules are not required, but could turn into a mess, once number of modules starts to grow.
There could also be a propblem of shipping incorrect binary, since right now on reexport Godot clears the folder where iOS app is exported to.
Describe the feature / enhancement and how it helps to overcome the problem or limitation:
register_modules
/unregister_modules
methods specific for iOS platform could be used to callregister
/unregister
methods of native modules added to project.This would perform the same register/setup routines that is happending right now, but would also give a developer control over which module gets loaded additinally simplifing this procedure.
Modules itself would be built in the same way as they are built right now, but as separate static(
.a
) library with godot's binary linked to them (ARKit modules is a good example for it). But with this changes it would not required for an engine to be build alongside the module every time module is added or gets changed. Only headers and built binary would be needed.Modules would be bundled upon project export, and could use a special configuration file, like the one used for Android Plugins, to describe which binary and method should be used to register them.
Modules like
GameCenter
andInAppStore
that's currently included in platform could also be changed to use this feature.Adding a configuration file would also provide a way to list modules in export window as well as enable or disable this if needed.
Basically this changes would simplify modules loading on iOS and give developers a way to build iOS modules independently from engine source.
Describe how your proposal will work, with code, pseudocode, mockups, and/or diagrams:
Module configuration file could look like this (Android Plugin configuration file was taken as example):
In
os_iphone.cpp
would reguire changes to call methods forregister
/unregister
:Resulting iOS's
dummy.cpp
file could look like this, when exporting reworked GameCenter and AppStore modules:If this enhancement will not be used often, can it be worked around with a few lines of script?:
This can't be workaround as current module system does not give a way to dynamically include or exclude modules.
Is there a reason why this should be core and not an add-on in the asset library?:
Modules loading are part of the core. This changes would make it simplier.
The text was updated successfully, but these errors were encountered: