Skip to content
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

Big Sur compatible new macOS app icon proposal #1616

Closed
setanarut opened this issue Oct 5, 2020 · 32 comments · Fixed by godotengine/godot#52043
Closed

Big Sur compatible new macOS app icon proposal #1616

setanarut opened this issue Oct 5, 2020 · 32 comments · Fixed by godotengine/godot#52043

Comments

@setanarut
Copy link

setanarut commented Oct 5, 2020

Describe the project you are working on:
Big Sur compatible new macOS app icon,

Describe the feature / enhancement and how it helps to overcome the problem or limitation:
Big Sur compatible new macOS app icon

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

I uploaded this to https://macosicons.com/, if you search for "godot" you will see.

@Calinou
Copy link
Member

Calinou commented Oct 5, 2020

Does Big Sur require new icons (like Android adaptive icons), or is this just a renewed design that better fits new Apple visual guidelines? If so, could you link to such guidelines?

As far as I know, we'd prefer keeping the same icon on all platforms for consistency's sake. Therefore, if we change the icon on one platform, we would change it on all platforms.

Edit: Since a lot of other applications are tweaking their icon designs to better fit macOS Big Sur, it makes sense for Godot to do it as well.

@setanarut
Copy link
Author

setanarut commented Oct 5, 2020

Does Big Sur require new icons (like Android adaptive icons), or is this just a renewed design that better fits new Apple visual guidelines? If so, could you link to such guidelines?

We'd prefer keeping the same icon on all platforms for consistency's sake. Therefore, if we change the icon on one platform, we would change it on all platforms.

It's just cosmetic compatibility for new Big Sur icons, I don't think it has to be the same across all platforms. all icons are box-shaped. for more info https://developer.apple.com/design/human-interface-guidelines/macos/overview/whats-new-in-macos/

@PabloNeirotti
Copy link

I know this isn't the official stance based on what @Calinou wrote, but I'd like to respectfully disagree.

The Godot icon sticks out like an eyesore in an otherwise neatly array of icons in the macOS dock or launchpad. It will become more evident as more apps get updated and Godot stays behind.

I think the icon should follow the OS guidelines as much as possible so it fits at home. I'd say the same about the UI but that's a lot more work.

Keeping consistency can be done from the projects side, or the users side. In the case of the icon, I think the user experience should be prioritized over the project identity enforcement. I do not think it's detrimental to Godot's identity to adapt its icon to the host OS, nor it would be confusing for users in any way if this was the case, for whoever actually develops on two different OSs at the same time.

I can whip out a Godot icon that looks like it was made by Apple itself in a few minutes if that's the issue.

Not sure if the decision is made by a Mac user, but I hope we are taken into account.

Thank you!

@setanarut setanarut reopened this Nov 26, 2020
@Calinou Calinou removed the archived label Nov 26, 2020
@Calinou
Copy link
Member

Calinou commented Nov 26, 2020

@PabloNeirotti Since so many applications seem to be adopting Big Sur-friendly icons these days, I think it makes sense to change Godot's icon on macOS now.

Personally, I prefer the second icon suggestion (the one with the light outline).

@PabloNeirotti
Copy link

PabloNeirotti commented Nov 26, 2020 via email

@bruvzg
Copy link
Member

bruvzg commented Nov 26, 2020

Note: changing .icns in the .app bundle will change icon in the Finder, but not the dock icon while Godot is running, for this you'll need to change main/app_icon.png and rebuild the engine.

Edit: relevant code.
Icon header generation:
https://github.com/godotengine/godot/blob/2ca1c17a5cfd681a4fdb72c3c9fccb77792ae0b0/main/SCsub#L30-L35

Setting editor icon (and default app icon):
https://github.com/godotengine/godot/blob/2ca1c17a5cfd681a4fdb72c3c9fccb77792ae0b0/main/main.cpp#L53
https://github.com/godotengine/godot/blob/2ca1c17a5cfd681a4fdb72c3c9fccb77792ae0b0/main/main.cpp#L1597-L1600
https://github.com/godotengine/godot/blob/2ca1c17a5cfd681a4fdb72c3c9fccb77792ae0b0/main/main.cpp#L2312-L2315

@setanarut
Copy link
Author

Personally, I prefer the second icon suggestion (the one with the light outline).

me too

@PabloNeirotti
Copy link

I like this one, not sure if it's the same you guys are talking about:

Screen Shot 2020-11-26 at 6 03 13 PM

The one with lines does not really follow the Big Sur style, primarily due to that outline on the box. Is it the outline on the logo that you like?

@Calinou
Copy link
Member

Calinou commented Nov 26, 2020

The one with lines does not really follow the Big Sur style, primarily due to that outline on the box. Is it the outline on the logo that you like?

Yes, I think the outline helps it stand out a bit more. On the first one, the background's color is a bit too close to the icon color.

@PabloNeirotti
Copy link

@Calinou Oh I agree with that. I can make some variations as well so I'm not just an armchair designer lol. Be back in a bit.

@setanarut
Copy link
Author

I can update new ones for godot if you want.

@setanarut
Copy link
Author

lines can be used.
Ekran Resmi 2020-11-27 00 11 52

@PabloNeirotti
Copy link

@hazarek I mean yes, although the function is to resemble a device in that case. In the case of containing an object (i.e a logo) the container serves as a backdrop and is typically flat or a gradient.

That's why stuff like Dictionary and Contacts have an emboss effect (they are books!), however those that contain objects (i.e: Pages, Numbers, Keynote, Mail, Music, Messages) have a flat-like backdrop instead.

@setanarut
Copy link
Author

better contrast
godotalt

@PabloNeirotti
Copy link

Alright, I had a go at it.

I don't know whether the icon having an outline is important for the identity or not, although it does help bring together the idea of "the jaw being separated from the rest of the head".

Godot Icon Test

@Calinou
Copy link
Member

Calinou commented Nov 26, 2020

I don't know whether the icon having an outline is important for the identity or not, although it does help bring together the idea of "the jaw being separated from the rest of the head".

I think the outline is nice to have, but it's not essential per se.

@setanarut
Copy link
Author

setanarut commented Nov 26, 2020

It should look good on a dark and bright background. Consider this too

@PabloNeirotti
Copy link

@hazarek Indeed. The backdrop is similar to the one Mail has, except that I think it's slightly more "Godot blue". The gradient automatically makes it pop in either dark or white backgrounds.

Screen Shot 2020-11-26 at 6 32 12 PM

@bruvzg
Copy link
Member

bruvzg commented Nov 27, 2020

Light blue logo is blending with blue background a bit too much, especially at smaller icon sizes, consider using light background too.

Few of my variants (along with badges for #541, and only using colors form official website design from website_design.svg): Godot.svg.zip

GodotIcons

Or maybe the same but without white outline on the logo (like #1616 (comment) but with gray background)?

@setanarut
Copy link
Author

white background looks bad on macos darkmode, but dark background always looks good

@setanarut
Copy link
Author

@setanarut
Copy link
Author

Ekran Resmi 2020-11-27 17 54 08

aa

@bryanrieger
Copy link

The Godot icon sticks out like an eyesore in an otherwise neatly array of icons in the macOS dock or launchpad. It will become more evident as more apps get updated and Godot stays behind.

I think the icon should follow the OS guidelines as much as possible so it fits at home. I'd say the same about the UI but that's a lot more work.

Keeping consistency can be done from the projects side, or the users side. In the case of the icon, I think the user experience should be prioritized over the project identity enforcement. I do not think it's detrimental to Godot's identity to adapt its icon to the host OS, nor it would be confusing for users in any way if this was the case, for whoever actually develops on two different OSs at the same time.

I can whip out a Godot icon that looks like it was made by Apple itself in a few minutes if that's the issue.

Not sure if the decision is made by a Mac user, but I hope we are taken into account.

While waiting for a new Big Sur Godot icon, is it possible to change icon of the Godot app itself on macOS (to be more consistent with other apps) in the meantime? I've tried the usual ways; copy/paste in the Get Info window, replace the Godot.icns file in Godot.app/Contents/Resources/Godot.icns, but everytime I launch Godot the default app icon is still used.

Many macOS users will regularly change icons to suit their preferences, but currently this is not possible in the usual ways with Godot.

@Calinou
Copy link
Member

Calinou commented May 10, 2021

but everytime I launch Godot the default app icon is still used.

If macOS works like Linux and Windows on this aspect, the app icon displayed in the Dock is not the same as the app icon displayed in its title bar. The app icon in the title bar is set by Godot itself and is hardcoded in the binary.

Also, you may want to rename the Godot application bundle after changing its icon to make sure the OS icon cache isn't interfering with what you see.

If all else fails, you can replace the Godot ICNS file in the Git repository, compile it from source and create an .app bundle by using the files contained in misc/dist/osx_tools.app/.

@bruvzg
Copy link
Member

bruvzg commented May 10, 2021

If macOS works like Linux and Windows on this aspect, the app icon displayed in the Dock is not the same as the app icon displayed in its title bar. The app icon in the title bar is set by Godot itself and is hardcoded in the binary.

It is the case, Godot is setting Dock icon form the embedded PNG on start.

@Calinou
Copy link
Member

Calinou commented May 10, 2021

@hazarek The icon with the dark gray background looks pretty good! Do you have an ICNS file for it (and ideally also a SVG file or another source format)?

@bryanrieger
Copy link

If macOS works like Linux and Windows on this aspect, the app icon displayed in the Dock is not the same as the app icon displayed in its title bar. The app icon in the title bar is set by Godot itself and is hardcoded in the binary.

It is the case, Godot is setting Dock icon form the embedded PNG on start.

Is there any possibility of not having Godot set the dock icon from the embedded PNG on start, to allow macOS users to change the icon themselves without having to compile Godot from source?

@Calinou

This comment has been minimized.

@bruvzg
Copy link
Member

bruvzg commented May 10, 2021

Is there any possibility of not having Godot set the dock icon from the embedded PNG on start, to allow macOS users to change the icon themselves without having to compile Godot from source?

It's definitely required to set it on Linux, and maybe on Windows (need testing, it's probably not), but it is not on macOS. Setting icon can be disabled with a few extra defines, with the following patch Godot will always use ICNS from the bundle (or icon set be user via Get Info):

diff --git a/main/main.cpp b/main/main.cpp
index 083dc029de..b392295f19 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -1364,7 +1364,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
 #endif
 		}
 
-#ifdef TOOLS_ENABLED
+#if defined(TOOLS_ENABLED) && !defined(OSX_ENABLED)
 		Ref<Image> icon = memnew(Image(app_icon_png));
 		OS::get_singleton()->set_icon(icon);
 #endif
@@ -1989,10 +1989,12 @@ bool Main::start() {
 #endif
 	}
 
+#if !defined(OSX_ENABLED)
 	if (!hasicon) {
 		Ref<Image> icon = memnew(Image(app_icon_png));
 		OS::get_singleton()->set_icon(icon);
 	}
+#endif
 
 	OS::get_singleton()->set_main_loop(main_loop);

@setanarut
Copy link
Author

setanarut commented May 11, 2021

@Calinou

@hazarek The icon with the dark gray background looks pretty good! Do you have an ICNS file for it (and ideally also a SVG file or another source format)?

i don't have source format for grey version
gray background ICNS - https://disk.yandex.com.tr/d/uLw9AdWLJ2sXDA
PDF files for blue background - https://disk.yandex.com.tr/d/3F0t7EbRNOXvtw?w=1

@bruvzg
Copy link
Member

bruvzg commented May 11, 2021

In case anyone needs it, here are some of my icon variants (source Inkscape SVG + PNGs + ICNSs + conversion scripts), including a few with the similar raised gray background: Godot32.zip

Godot32

Personally I prefer dark blue background over the gray one.

@bruvzg
Copy link
Member

bruvzg commented May 13, 2021

with the following patch Godot will always use ICNS from the bundle (or icon set be user via Get Info):

Proper changes to use bundle/use set icons instead of default (checks if running from a bundle and bundle icon exists).

4.x - godotengine/godot#48685
3.x - godotengine/godot#48686

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants