Hello, is there a plan to expand the supported platform beyond windows/linux/mac? For example Android, HTML5, or even Opera GX build
Thanks.
Dynamic scripting on Win/Mac/Linux. · By
I have a desire, but the problem is in how much overhead there is.
For Windows/Mac/Linux, through years of gradual improvements and automation, I have reached the point where adding a new function is usually a matter of writing the said C++ code and tagging the function with a custom “keyword” - without setting up function arguments/return type in GameMaker editor and writing an intermediate script if the function takes a buffer, int64, or anything else that isn’t a real/string/pointer.
HTML5 can kind of use C++ code with help of Emscripten, but this is pretty clunky because you don’t even “just” give a string to an Emscripten program - you ask it to store the string to you, which returns an “address” (which is just a number) that you then pass to the actual function, and call the clean-up function afterwards.
I experimented with this for a client before, but basically you need a tool to auto-generate these small JS functions because writing them by hand is a disaster.
Android is only slightly better - both GameMaker and your extension are C++ code with shared memory, but there’s a certain caveat: GameMaker can only call Java code. So for every C++ function you need a Java function definition. Someone made a test Android version of Apollo before (the source code is included in the download), but I do not like the idea of doing this by hand for every function - so that’s another tool that I would need to write.
iOS is kind of like Android except instead of Java you have Objective-C code. That’s a third tool to write.
Opera GX formally can’t use native extensions at all - you’d want to use my “tiny expression runtime” (which is GML without external code) if you need to publish on it (although I doubt that this will be the only issue with loading user-generated content on GX).
As for your other topic, yes, you can use GMLive while testing in Opera GX - the only feature that uses native extensions is shader reloading.