Godot-proposals: Use different app icons for alpha/beta/rc builds (and possibly Mono builds)

Created on 1 Mar 2020  路  9Comments  路  Source: godotengine/godot-proposals

Describe the project you are working on:

Any project not using the latest stable build

Describe the problem or limitation you are having in your project:

When testing alphas, betas, rcs, etc. and having them pinned in the taskbar it's hard to know which is which since they share the same icon
image

Describe the feature / enhancement and how it helps to overcome the problem or limitation:

Having noticeably different icons for different builds makes it easier to use them in tandem, either when testing alpha/beta/nightly versions
image

This is what mozilla does with Firefox
image

Describe how your proposal will work, with code, pseudocode, mockups, and/or diagrams:

godot-icons svg

This is by no means a design proposal, but I think it is important to make them easily distinguishable by shape and color, so they can be identified at a glance and at any size (also for accessibility).

  • Anything built from the master branch gets the "master" edition of the icon. This would probably include versions you build yourself, Hugo's nightly builds, etc.
  • Officially distributed, alpha, beta, rc and stable versions will use their respective icons

If this enhancement will not be used often, can it be worked around with a few lines of script?:

  • If building from source it's just a matter of replacing the icon before building
  • For downloaded binaries I think there are tools that can replace the icon, but it'd be very inconvenient to do that every time.

Is there a reason why this should be core and not an add-on in the asset library?:

Can't be done through the asset library

core

Most helpful comment

This is by no means a design proposal

But I absolutely adore your designs, they are amazing! Not that I'm opposed to changes.

The main thing I would tweak is that the "RC" text should have a smaller "bubble" around it.

All 9 comments

The idea is nice. There might be some issue with master and other icons being too different from the current Godot brand/icon. I've used master over the past 3 years exclusively and if I were to stream game development with Godot, people wouldn't really dig into the Godot brand anymore, but on the other hand if we want to encourage people using development builds through curiosity for contributing purposes, that's also a solution.

I think we can keep the familiarity with current Godot brand by making either top or bottom part of the logo keep the familiar blue shade in all versions. (I must admit I like the OP's designs a lot) WDYT?

I like the idea, though:

  • I would not use different icons for the alpha/beta/rc version. One icon for them is enough.
  • We should not modify the design too much, the difference must be more subtle.

The main problem is likely implementation-wise, we probably have to add compilation flags to choose the good icon to use. Not sure it is an easy task.

Why not simply interpret the version string with Python, then have all of the icons in a folder in the repository and the script picks the right one and swaps it out as part of the compilation process, just as an early trigger for scons.

I really like the designs, a good first go. But maintaining a similar color on the lower job is probably a good idea.

I do also feel a slightly different icon for alpha, beta, and RC is a good idea, especially if this can be made easy with a script. Because I have had to test between betas and rcs to find out where a change occurred that broke functionality.

Yeah the mockup was just me having fun with the idea of "building the robot" but it is by no means a design proprosal. I agree that it shouldn't deviate that much from the original logo.
I still think the difference should be obvious enough that you don't need to squint to see it and that's why I cited the FF ones. Beta has a very obvious tag and Nightly has a completely different palette.
The FF ones are not very accessible to colorblind people though
image
If you actually change the values(i.e brightness/darkness of the color) rather than just shifting the hues, then even if the shape is the same you can get them to be easily distinguishable without reliying on color information
image

My biggest concern is what @groud mention about implementation details. I didn't include any steps as to how to actually get the feature working since I don't know how the dev team automates builds.

If someone wants a quick and dirty way for their buidls this works:
scons_icons.sh

#!/bin/sh

echo -e "Modifying icons..\n==========\n\n"
cp icon.svg icon.svg.bak
sed -e 's/fill:#478cbf/fill:#bf45f5f/g' -e 's/fill:#414042/fill:#ff00ff/g' -e 's/fill:#ffffff/fill:#414042/g'  -e 's/fill:#ff00ff/fill:#ffffff/g' icon.svg.bak > icon.svg
rm icon.svg.bak
inkscape -z icon.svg -e icon.png -w 256 -h 256
inkscape -z icon.svg -e main/app_icon.png -w 128 -h 128
shift
echo -e "\nRunning scons..\n==========\n\n"
scons "$@"
echo -e "\nRestoring icons..\n==========\n\n"
git checkout icon.svg
git checkout icon.png
git checkout main/app_icon.png
echo -e "\nDone"

You can also have all the icon changes in a commit and cherry-pick it or have the icons sets in a separate folder and set it with a script

A set of cppdefines is probably the best option since you can do anything you want that might be conditional to the build being rc, stable, etc such as setting a different window title or a different default theme.

This is by no means a design proposal

But I absolutely adore your designs, they are amazing! Not that I'm opposed to changes.

The main thing I would tweak is that the "RC" text should have a smaller "bubble" around it.

We could go the GNOME route and add a construction pattern at the bottom. I think it fits quite well:
godot_dev

In addition to dev version badge I would also add some badge (or color difference) for the Mono flavored editor (That's what I always do with my local copies).

Screenshot 2020-09-22 at 19 37 42

Edit: macOS Big Sur style variants.
Screenshot 2020-11-26 at 22 46 20
SVGs, PNGs and ICNSs: GodotIcons.zip

It would be nice if we could customize the icon outselves via SCons build option at least, like scons custom_app_icon=path/to/icon (or through an environment variable like BUILD_ICON_PATH just like you can customize BUILD_NAME currently). This could also benefit the actual game projects which need to override the Godot icon anyway (in case people are already compiling the engine, removes the need to use external programs like rcedit etc.)

Was this page helpful?
0 / 5 - 0 ratings