Moving discussion from the closed #19667.
The current workflow to select the debug/release mode when exporting binaries is a hardly visible stretched button in the editor file dialog where you define the export location. Many users miss it, and as it defaults to debug, end up shipping games in debug mode.
I think a proper fix should be somewhat like what @razcore-art proposed:
I am in favor of adding a watermark or a warning or something like that on a project exported with debug enabled by default. And have a separate checkbox for disabling this watermark in case you want to export for testers for example, but with debugging enabled. This will make you more conscious of the option.
And like was mentioned before it's also a visibility problem. I also think it should be a global option (that affects all templates), not per export template.
More proposals welcome.
How about changing the loading screen? I feel like a watermark would be annoying and unnecessary.
that's the point, to be annoying, or maybe a slim red border?
How about changing the loading screen?
Changing the splash screen is not enough because most of the time it only flashes for half a second, might not even show up if your main scene loads fast enough.
I think a red border is the better solution.
On Tue, Jul 17, 2018, 17:56 Răzvan C. Rădulescu notifications@github.com
wrote:
that's the point, to be annoying, or maybe a slim red border?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/20219#issuecomment-405633645,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXTzbHaRgp9c1JJ5xDAjaQF27v5yGVmzks5uHgkzgaJpZM4VS0H7
.
warning would be good I think too , a popup at the final export, unless specified in the project settings .. but watermark could be annoying . or maybe thats the only way to completely make sure no one uses debug mode . It should also be kept as disabled by default unless specified in project settings .
This was improved a bit by #25175.
I think an opt-out watermark or visual identification of some sort would still be interesting for exported debug builds (so not when running in-editor).
An even clearer/simpler solution would be to change the save button text. From Save
to something like Save 'Debug' Build
or Save 'Release' Build
based on which setting you check.
Or even cleaner: Export Release
and Export Debug
instead of just plain old save
with the same idea as above. That way it's very explicit at what's about to happen and the user will decide 'oh I don't want to export a release build, let me see where the setting for debug is located' and common sense would kick in from there to search the current save window for the setting.
I missed it on the Save dialog too, because that is not where I usually look for settings, but please don't over complicate things with messages and extra step annoying popups. A checkbox at the top of the Export Settings should suffice and call it Release Mode or whatever. No one will complain they missed it especially with tooltip a description. At worst you can, in addition to the checkbox on the Export Settings, have the current progress message just say Exporting DEBUG or Exporting Release . E.g.
@wyattbiker This can be implemented easily, but not all platforms display a progress bar when exporting the project. Therefore, it may still be missed depending on the platform the user is exporting to.
From a quick search in the code, the progress bar is implemented when exporting to Android, iOS, macOS and UWP.
As an amendment to my above comment, I would consider mutually exclusive checkbox in the settings labeled
Export Mode:
Release [ ]
Debug [ ]
No ambiguity and tooltips will provide more detail. Also users can save their export modes as presets E.g.
As far as the progress bar differences between platforms I can see where it could be difficult to track export progress (perhaps no feedback?), though it can be a plain popup message that auto-closes when completed. I also noticed the Export Settings groupings order between Mac and Windows/Linux are inconsistent. Little nuances.
@wyattbiker The debug/release export option is not specific to export presets, it's intended to be a "stateless" option (i.e. it's not persisted to export_presets.cfg
). The upside is that you don't have to duplicate export presets if you wish to export projects both in debug and release mode.
Remember that we also allow command-line exporting using --export
(release mode) and --export-debug
(debug mode). If we persist the export mode to export_presets.cfg
, we'd require users to perform sed
trickery to change the export mode before exporting a project from the command-line.
Edit: To answer your original concern, we could export projects in release mode by default. The issue is that on Android, it won't work unless you specify a release keystore (which you may not have done if you're just testing stuff). To solve this, we could use the debug keystore when exporting in release mode if no release keystore is defined in the Android export preset.
The debug/release export option is not specific to export presets, it's intended to be a "stateless" option
There's plenty of space for the separate Export Release/Debug buttons in the main dialogue.
watermark could be annoying
Watermark is overkill, but we can add something like (DEBUG MODE)
to the end of window title (modify OS.set_window_title
to make sure it's still present on every change).
There's plenty of space for the separate Export Release/Debug buttons in the main dialogue.
I tried doing this yesterday (see below), but it seems overriding the parameter in _OS::set_window_title()
in core_bind.cpp
doesn't work. It would be better to have it there, so we don't have to duplicate the logic for every OS.
void _OS::set_window_title(const String &p_title) {
#if (defined(DEBUG_ENABLED) && !defined(TOOLS_ENABLED))
// Append a suffix to the window title to denote that the project was exported in debug mode.
// Since this results in lower performance, this should be clearly presented to the user.
OS::get_singleton()->set_window_title(p_title + " (DEBUG)");
#else
OS::get_singleton()->set_window_title(p_title);
#endif
}
It would be better to have it there, so we don't have to duplicate the logic for every OS.
It's probably enough to additionally change this line: https://github.com/godotengine/godot/blob/master/main/main.cpp#L1714
same here. how to export to release from gui? I loaded release and debug custom templates.
and godot command not exists
@ulvido Click Export Project then uncheck Export With Debug at the bottom of the file dialog that appears. Select a destination path and click Export.
Partly fixed by #39208, and superseded by godotengine/godot-proposals#1073 for the watermark/outline part.
Most helpful comment
An even clearer/simpler solution would be to change the save button text. From
Save
to something likeSave 'Debug' Build
orSave 'Release' Build
based on which setting you check.Or even cleaner:
Export Release
andExport Debug
instead of just plain oldsave
with the same idea as above. That way it's very explicit at what's about to happen and the user will decide 'oh I don't want to export a release build, let me see where the setting for debug is located' and common sense would kick in from there to search the current save window for the setting.