-
-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable users to create GUI-only optimized builds for web and mobile #190
Comments
We should also look at providing SCons options to only compile a single renderer into the binary. When developing a GUI app, you most likely want GLES2 to be available but you don't care about GLES3 or Vulkan. This can reduce the binary size by several hundred kilobytes. See also godotengine/godot#21992, where WebGL 2.0 support was removed from the HTML5 export template (but this wasn't merged). |
So then, would you recommend separate options for removing individual renderers, one at a time? That would sound good to me. Like |
@willnationsdev It probably makes sense to have a single |
Would it be possible to also do this on exporting the project instead of just when compiling Godot? |
@golddotasksquestions Doing this directly in the export process sounds quite complicated, as you have to make sure the user has a development toolchain installed, while also downloading the Godot source code and building it. We technically have something similar for Android export templates, but only the Java part is compiled. In this case, it's much easier to install dependencies (even Gradle will install itself using a wrapper if you don't have it locally). |
@Calinou Unfortunately I did not understand much if anything of what you wrote. That's my lack of knowledge in these areas, though. |
No, what you do is download an "export template" which is really just a production optimized build of the engine with no editor tools built in. It copies the export template (more or less). It does not actually build the engine. To build the engine, you need to have compilers installed, Python, the scons build tool, and a plethora of build scripts, none of which would be present in the binary file in the tools-enabled version of Godot that the editor runs on. In order to compile the engine on the fly with more or less sections in the core engine, you would need the target platform to have the same set of tools that developers install on their desktops in order to build the engine source code. And having that expectation severely limits where you could install your project since no platform but the most heavily customized ones would have those kinds of things installed by default. So the short answer is, no, you can't really do that. |
Building on this, I would like to see a EDIT: Also, while we're at it, it might be better to refactor these options into |
@aaronfranke I think, to match the convention of the module stuff, I would use |
@willnationsdev On second thought, |
@aaronfranke Maybe do |
Any progress or goals so far to make this real? Godot Engine allows you to prototype faster than other game engines. Using this to provide the freedom to build apps sounds like a great idea. |
@shafnaz I have several PRs that work on this, the first of which moves 2D and 3D resources to their own folders. This has been discussed in a PR meeting but the core devs don't want to merge it yet because they want to do a big redesign of the folder structure of Godot, so in the meantime no progress is allowed to be made. |
Looking forward to an amazing future! |
Any updates on this feature? |
@shafnaz The status has not changed much in 2 years, I still have PRs open that need to be reviewed. However I did open this smaller PR which can be reviewed and merged first godotengine/godot#66744 EDIT: Split it up even further to make it easier to review: godotengine/godot#79183 and godotengine/godot#79185. Reviews are very much appreciated. |
Bugsquad edit: Depends on #1653
Describe the project you are working on:
Building a mobile application.
Describe the problem or limitation you are having in your project:
I wanted to use Godot to build a mobile app since it's a great customizable tool with a strong community and a plethora of built-in UI tools that can deploy to multiple platforms. However, Godot also has a variety of built-in systems for game development that aren't really necessary for a GUI-only app (even if it were a GUI-only game, of which there are many possibilities). And if you are developing for mobile or web, you want the smallest possible size binary.
I believe there should be additional build options, just like
disable_3d
anddisable_advanced_gui
that are tailor-made for GUI-only mobile/web apps. The only thing I can specifically think of to add would be adisable_physics
option, perhaps with a dummy server implementation. But if anyone can think of other things, then that would be great. I already know that a lot of unnecessary features can be stripped out via themodule_<name>_enabled=no
option.Describe how this feature / enhancement will help you overcome this problem or limitation:
It would help minimize binary sizes for mobile/web platforms when you want to build a GUI-only Godot project.
Show a mock up screenshots/video or a flow diagram explaining how your proposal will work:
I want to be able to do this:
Describe implementation detail for your proposal (in code), if possible:
scene
directory that are related to collision detection and physics. Maybe also remove the PhysicsServer global variable / core bind?If this enhancement will not be used often, can it be worked around with a few lines of script?:
It is related to engine builds, not script code.
Is there a reason why this should be core and not an add-on in the asset library?:
It is related to engine builds, not script code.
The text was updated successfully, but these errors were encountered: