jeanlain
05-12-2010, 03:13 PM
Ok the Steam OS X client is out. I see that problems in the UI have made it through the beta tests. I suppose that many bugs are in the queue, but I'm going to list them here anyway.
I also suppose that for the sake of cross platform development, you guys at Valve are not using the standard OS X developer tools and framework (e.g. Cocoa, Core Animation) for the Steam client, so I won't bother you with requests about mutlitouch support, smooth scrolling and the like (though these would be cool). I won't ask that things behave and look differently on the Mac, except when they relate to OS X paradigms and widgets. I will just focus on oddities that I think should be fixed irrespective of the development environment (note, I have not written a single line of code, except Excel macros and DOS programs in PASCAL. :D)
So here are the problems:
Traffic light (close, maximize, minimize) buttons are inconsistent. Almost all windows that cannot be resized have an (ineffective) maximize button and some that can be resized lack this button (e.g. the browser used to add non-steam games). You should enable/disable the button when appropriate.
Minimization into the dock should not be permitted for some windows, especially those that have settings and text fields. The yellow button should be disabled when it is inappropriate.
Some parents windows should not be closable or even activated when "child" windows are still open. For instance, closing the settings windows when the sound input window is open doesn't make sense, and acutally causes a bug.
Frontmost windows may sometimes appearing as inactive. This can happen when these windows (let's take the friend list as an example) have been activated not by clicking on them, but via a button (e.g. "view friends") or a keyboard shortcut. If another window is activated and then closed (this could be the "add a friend" dialogue), the main window will become active despite standing behind the friend list. Clearly, the friend list should have taken the focus. It wouldn't be so much of a problem is clicking on the friend list didn't activate whatever is in the main window, sending the friend list behind. This is really annoying as it can happen quite often with almost any window (the sever and setting windows, for instance). Tooltips that relate to the main Steam window will also pop-up through the friend list. This must be fixed.
The way to add non-steam games has several problems. The scroll wheel, trackpad doesn't work properly in the file browser. It shouldn't list invisible files but it should list devices (volumes) at the very root, above the startup volume. If possible, implement a standard OS X select/open dialogue or even better, drag and drop from the finder to the game library.
There is almost no keyboard shortcuts. Apple-W is the bare minimum (for closing windows).
Some windows lack a default button (activated when hitting enter) and an "escape" button, although it some cases, the attribution should be obvious (e.g., the sound input window). OTOH, the friend list can be closed by hitting escape, although it doesn't have an "cancel" or "close" button.
(not critical) The "Ok" button should be the rightmost.
Button width should adjust to the names. Too often are button names clipped "...", especially in other languages.
Likewise, the minimal width of a window should adjust to the title (e.g. the server info window). Sometimes, titles overlap with traffic buttons.
The "refreshing list" text in the Servers window overlaps with the button.
Drop down menus and tooltips behave a bit like actual windows. Activating a menu or an info box will alter the drop shadow of the parent window, which is visually annoying. Plus, this cause some weirdness in exposé. Tooltips also don't immediately pop-up at the expected position. For a fraction of a second, they pop-up at the position of the previous one.
GUI responsiveness is generally subpar. I haven't experienced any lag while dragging a window around since OS X 10.1 on my old G4 "sawtooth". Now the Steam main window (especially the game library in detail view) offers me that dreaded vision again. Yikes. This happens on both my Macs (2.66 GHz quad xeon and 2.4GHz Core2Duo). Upon further inspection with Quartz Debug, it appears that Steam behave differently from all other OS X apps I have, and redraws windows are at every position. So Steam can use a fairly high amount of CPU time just redrawing the main window. For other apps, quartz compositor (window server) takes care of the job, not the app itself. I suspect that Steam's drawing model bypasses Quartz Extreme when moving windows (but exposé appears to act normally and smoothly).
Similarly, redrawing isn't parsimonious. The smallest change in a window will involve the redrawing of its whole contents. This the case in my profile: the dimming "currently online" text will cause the whole window to redraw continuously. This alone can use up to 55% of a CPU core which in turns trigger my Macbook's fans. This is terribly wrong. Embedded videos (Flash) are problematic too, probably for the same reason. They can't play smoothly an use 100% of my CPU (e.g. the intro movie of the L4D website). On other browser, they play very well use use less than a quarter of the CPU time.
Scrolling and resizing aren't smooth when compared to web browsers. I recall that Chrome's scrolling was choppy too on the Mac, because they redrew every view twice. They fixed this and it is now smooth. I suspect it's even worse on Steam, because the windows frame, not just the web view, is constantly redrawn when scrolling.
Thanks for having a look into these issues and sorry for my English.
I also suppose that for the sake of cross platform development, you guys at Valve are not using the standard OS X developer tools and framework (e.g. Cocoa, Core Animation) for the Steam client, so I won't bother you with requests about mutlitouch support, smooth scrolling and the like (though these would be cool). I won't ask that things behave and look differently on the Mac, except when they relate to OS X paradigms and widgets. I will just focus on oddities that I think should be fixed irrespective of the development environment (note, I have not written a single line of code, except Excel macros and DOS programs in PASCAL. :D)
So here are the problems:
Traffic light (close, maximize, minimize) buttons are inconsistent. Almost all windows that cannot be resized have an (ineffective) maximize button and some that can be resized lack this button (e.g. the browser used to add non-steam games). You should enable/disable the button when appropriate.
Minimization into the dock should not be permitted for some windows, especially those that have settings and text fields. The yellow button should be disabled when it is inappropriate.
Some parents windows should not be closable or even activated when "child" windows are still open. For instance, closing the settings windows when the sound input window is open doesn't make sense, and acutally causes a bug.
Frontmost windows may sometimes appearing as inactive. This can happen when these windows (let's take the friend list as an example) have been activated not by clicking on them, but via a button (e.g. "view friends") or a keyboard shortcut. If another window is activated and then closed (this could be the "add a friend" dialogue), the main window will become active despite standing behind the friend list. Clearly, the friend list should have taken the focus. It wouldn't be so much of a problem is clicking on the friend list didn't activate whatever is in the main window, sending the friend list behind. This is really annoying as it can happen quite often with almost any window (the sever and setting windows, for instance). Tooltips that relate to the main Steam window will also pop-up through the friend list. This must be fixed.
The way to add non-steam games has several problems. The scroll wheel, trackpad doesn't work properly in the file browser. It shouldn't list invisible files but it should list devices (volumes) at the very root, above the startup volume. If possible, implement a standard OS X select/open dialogue or even better, drag and drop from the finder to the game library.
There is almost no keyboard shortcuts. Apple-W is the bare minimum (for closing windows).
Some windows lack a default button (activated when hitting enter) and an "escape" button, although it some cases, the attribution should be obvious (e.g., the sound input window). OTOH, the friend list can be closed by hitting escape, although it doesn't have an "cancel" or "close" button.
(not critical) The "Ok" button should be the rightmost.
Button width should adjust to the names. Too often are button names clipped "...", especially in other languages.
Likewise, the minimal width of a window should adjust to the title (e.g. the server info window). Sometimes, titles overlap with traffic buttons.
The "refreshing list" text in the Servers window overlaps with the button.
Drop down menus and tooltips behave a bit like actual windows. Activating a menu or an info box will alter the drop shadow of the parent window, which is visually annoying. Plus, this cause some weirdness in exposé. Tooltips also don't immediately pop-up at the expected position. For a fraction of a second, they pop-up at the position of the previous one.
GUI responsiveness is generally subpar. I haven't experienced any lag while dragging a window around since OS X 10.1 on my old G4 "sawtooth". Now the Steam main window (especially the game library in detail view) offers me that dreaded vision again. Yikes. This happens on both my Macs (2.66 GHz quad xeon and 2.4GHz Core2Duo). Upon further inspection with Quartz Debug, it appears that Steam behave differently from all other OS X apps I have, and redraws windows are at every position. So Steam can use a fairly high amount of CPU time just redrawing the main window. For other apps, quartz compositor (window server) takes care of the job, not the app itself. I suspect that Steam's drawing model bypasses Quartz Extreme when moving windows (but exposé appears to act normally and smoothly).
Similarly, redrawing isn't parsimonious. The smallest change in a window will involve the redrawing of its whole contents. This the case in my profile: the dimming "currently online" text will cause the whole window to redraw continuously. This alone can use up to 55% of a CPU core which in turns trigger my Macbook's fans. This is terribly wrong. Embedded videos (Flash) are problematic too, probably for the same reason. They can't play smoothly an use 100% of my CPU (e.g. the intro movie of the L4D website). On other browser, they play very well use use less than a quarter of the CPU time.
Scrolling and resizing aren't smooth when compared to web browsers. I recall that Chrome's scrolling was choppy too on the Mac, because they redrew every view twice. They fixed this and it is now smooth. I suspect it's even worse on Steam, because the windows frame, not just the web view, is constantly redrawn when scrolling.
Thanks for having a look into these issues and sorry for my English.