Saturday, November 2, 2019

Steam Library Update: A Quick Review

The big Steam Library update is out. I had tried it during the open beta phase, and while I was somewhat impressed by the new look, there were some things I had hoped they would improve. Maybe the performance is a bit better, but unfortunately, everything else appears to be the same.

A comparison of the old (top) and new (bottom) library designs.

At the end of the day, the library is just a fancy game launcher, whose primary purpose for those who don't use Steam as a social networking site is simply to provide a "play" button for each game, so I'm not mad enough to write a huge essay about it. I'll just break it down into lists of "pros" and "cons" and call it a day.

Pros


Aesthetics


Overall, it's more modern-looking and — subjectively, of course — prettier. At least, some aspects of it are prettier. Maybe this is too subjective to list as a definite "pro".

Dynamic Collections


The one functional upgrade that actually got me excited was the addition of dynamic collections, in addition to normal collections (previously known as categories). Whereas regular collections are static, and are defined by adding games manually, dynamic collections are based on a selection of filters, or on user-generated store tags, and thus will grow automatically as new games are added to the library. This is really nice if you want a collection for all your single-player games, for example, but don't want to keep updating it.

The filters currently available for dynamic collections.

I should note that the list of pre-defined filters available for dynamic collections is somewhat lacking (by which I mean it's only a subset of the pre-defined filters available in a store search). Oddly, I can't even make a dynamic collection for games supporting Remote Play Together, a new feature which one would assume Valve should want to promote in this way. Granted, that feature is still in beta, so perhaps I shouldn't hope for a specific Remote Play Together filter in the library yet (although there is a Remote Play Together filter in the store search). However, it should be noted that the games supporting Remote Play Together are, in theory, those with any kind of local multiplayer, and there are no built-in library filters for local multiplayer, local co-op, or shared/split screen either.

Update (November 21, 2019): Remote Play Together is officially released as of yesterday, and — as if to respond to my inane nitpicking — a "Remote Play Together" option has been added to the list of built-in filters available for dynamic collections. No other new filters have been added, though, and I still wish there were at least as many as are available in a Steam store search. I assume these library filters are the same as the store filters, under the hood.

I had hoped that the "store tags" option would make up for any shortcomings in the list of pre-defined dynamic collection filters, but a quick test indicates that this is apparently not the case. As of the time of this post, a store search for the "Local Co-Op" tag returns far fewer results than a store search using the built-in "Local Co-Op" filter. Even when the latter search is narrowed by adding the "Games" filter (thereby excluding DLC, etc.), it still returns many more results than the "Local Co-Op" tag search. It seems that store tags related to features are not applied to all products which contain those features according to the built-in filters. For this reason, I don't trust a dynamic collection defined with the "Local Co-Op" tag to contain all of my local co-op games. But I can't really call this a downside of the library update, because the old library didn't have dynamic collections at all, and the fact that the Steam store provides two conflicting ways of searching for the same thing is a weird problem which predates this update.

Update (November 21, 2019): I'm not sure when this changed — perhaps it was when Remote Play Together came out of beta yesterday — but the store's built-in "Local Co-op" filter has been renamed to "Shared/Split Screen Co-op" and thus the above example of the difference between tags and built-in filters makes a bit less sense. For what it's worth, the new "Shared/Split Screen Co-op" filter is the same as the old "Local Co-op" filter, judging by the URLs, but the name no longer matches that of the "Local Co-Op" tag, so it's harder to show that Steam is doing something nonsensical here. So I'll revise my example with filters which have not been unexpectedly renamed: Compare the search results of the "Co-op" tag to the search results of the built-in "Co-op" filter; the latter yields more results. The same is true when comparing the "Online Co-Op" tag to the built-in "Online Co-op" filter; the latter yields more results. I still take this as evidence that tags are unreliable. But again, I've gone off on a tangent regarding things which aren't strictly related to the library update, which didn't introduce this problem but merely drew my attention to it. So, moving on...

Drag-and-Drop Collection Editing


I do like the fact that I can drag and drop games into collections. Games can also be added to collections by right-clicking on them and selecting a collection from a list, which is approximately how games were added to categories before, so the new feature doesn't come with any significant loss in functionality.

My only complaint about collection editing is that adding a game to multiple collections at once is slightly more arduous than before. In the old Steam library, the list of categories was actually a checklist from which multiple categories could be selected at once. Adding a game to multiple collections simultaneously doesn't seem possible with the new Steam library. Whether you drag-and-drop or right-click, games must be added to collections one-at-a-time. However, I think it's rare that anyone would want to add a single game to so many collections that this would become too much of a hassle. What's more important is the ability to add multiple games to a single category in bulk, and this can still be done just as easily as before.

Cons


Proton Ambiguity (See Update Below)


On Linux, the library no longer indicates whether a game will run natively on Linux, or with a specific Proton version selected by Valve testing or by the user, or with the default Proton version selected for all other games. This sounds like a weird complaint, but not being able to see whether a game will be executed with Proton can be a bit of a problem.

During the recent Halloween sale, I bought a game called Oniken; the game's store page does not indicate that it natively supports Linux, but the overall rating on its ProtonDB page indicates that it works perfectly, out of the box, with Proton. So naturally I tried playing it on Linux, where I have Steam Play enabled for all games. It didn't work. A closer look at the ProtonDB page revealed that, although the game has no native Linux support, it apparently does have some kind of built-in Wine wrapper which, of course, doesn't work. I had assumed the game was running with Proton but, unbeknownst to me, it was doing something else by default instead. When I tried forcing the game to run with Proton, it did indeed work perfectly. Situations like this were a lot less confusing back when the Steam library displayed a Proton version, if applicable, next to the "Play" button of each game.

As before the big update, the built-in filter for games which run on Linux is useless when Steam Play is enabled for all titles (which is the only correct way to use Steam on Linux given the success rate of Proton in getting Windows games to work); with this Steam Play option enabled, the filter includes all games, so it doesn't actually do anything. Given that the library no longer indicates how each game will run, it would be nice if there were separate filters (or the ability to define separate dynamic collections) for native Linux games and Proton-enabled games, at least. Unfortunately, I can't find any such option.

Given how incredibly great Steam has been for playing games on Linux, this relatively minor downgrade is a disappointment, as it gives the impression (though perhaps I'm being paranoid) that Valve is losing interest in maintaining Steam as a Linux gaming platform.

Update (November 9, 2019): A few days ago, I did some digging and found a related issue report on the "Steam for Linux" GitHub page. I had no expectation that it would be fixed any time soon, but I was glad to know I wasn't the only one who noticed this glaring problem. Today, however, a new comment on the issue report claimed that the missing feature had been restored. A screenshot on a later comment shows that, sure enough, a Proton version number can be seen after clicking a game's "Show more details" button. It seems this fix is in beta, as I had to opt in to beta updates to see it, but I assume it will be rolled out to a stable release soon enough.

Grid View Dimensions


An example of the box art problem.
The new grid view uses box-art-style (portrait-oriented) image dimensions. Many older games don't have suitable images, so the banner-style (landscape-oriented) images are used and the empty space is filled with an ugly blur effect. There's no option to go back to the old grid view despite literally all games having images with the right dimensions for it.

As before the update, users can manually select custom images for games. Finding such images isn't hard; there's a site called SteamGridDB dedicated in part to providing custom box art of the proper dimensions. The use of custom box art images, where developers have not provided official images in the new format, is one way to get a uniform-looking library. However, I have nearly 800 games on Steam, and the size of my library is largely due to the fact that so many of my games were bought for pennies because they are old and/or obscure, and these are exactly the kinds of games which are more likely to be missing the new box-art style images. The use of custom images is a good solution for users with small libraries, but I have too many games which are lacking proper box-art images, and I just can't be bothered to spend time fixing it. I'd much rather be given the option to use the old grid view.

Awkward Columns


When a game is selected and Steam displays game details, the wider left-side column is reserved for friend activity, developer updates, and community content; meanwhile, the narrower right-side column has information like achievements, Steam Workshop, screenshots, DLC, trading cards, etc. If the auto-loading of community junk is disabled in the settings (as I think it should be) and there are recent developer updates or friend activity, it leaves a big empty space pushing all of the other information to the side. Some of my games have two or more screen lengths worth of content in the narrow column, and nothing in the wide column when I have auto-loading community stuff disabled. It makes sense for most content to be put into the narrow column when the wide column was designed for infinitely scrolling auto-loading content, but I think infinitely scrolling auto-loading content is annoying, so of course I'm going to disable it. Once the wide column's (annoying) main purpose is disabled, it negates a lot of the effort that went into making this design aesthetically pleasing.

Manual Links Removed (Yes, I'm Nitpicking)


The library no longer contains direct links to game manuals, forcing users to go to a game's store page or open its properties window.

Performance


Unsurprisingly, performance is poorer. With the prettier interface comes greater resource usage.

And Of Course, Bugs


There are still some bugs, indicating that the update should have stayed in beta for longer. For example, when I switch back to the Library tab from the Store or Community tabs, some parts of the library don't appear until I move the mouse over them. I've seen this on Windows 7, at least. Maybe it's just me, but I doubt it.

Sunday, August 25, 2019

Adventures in Linux Gaming

Last month I wrote about Playnite and GOG Galaxy 2.0. What I forgot to mention is that, for me personally, the major downside of each is the lack of Linux support.

I've been using Windows 7 for a long time. I didn't like the look of Windows 8 when it came out, and never saw the point in switching. Having used Windows 10 at work, I definitely have no interest in using it on my home PC, regardless of all the spying it supposedly does. I just don't enjoy using it. I suppose I don't particularly enjoy using Windows 7 either; I've had my share of problems with it. It just happens to be the best version of Windows which is still officially supported. Unfortunately, with that support ending at the start of next year, I would be forced to "upgrade" to a worse version of Windows if I want to continue to get security updates.

Do I really need security updates? I don't know. Is Windows 10 really worse or am I just biased? I guess it's a little of both. Ultimately, though, it probably doesn't matter. I've been somewhat unhappy with Windows in general, and... well, Linux is free.

Switching to Linux, and Why You Should, Maybe


Switching to Linux is seen by some as a daunting task, and perhaps there's good reason for those with no experience with Linux to be just a bit intimidated. To those terrified Linux beginners, I would recommend a user-friendly distribution like Linux Mint. That's what I'm using, despite several years of experience with Linux as a software engineer. It's just incredibly convenient. The Cinnamon desktop environment is fairly Windows-like, and Linux Mint comes with nearly all the features you need in order to avoid ever touching the command line if you don't want to. The installer is also very easy to use. Some casual PC users might not know what all of the options mean, but for those users, I think the defaults are probably fine.

Of course, no matter how automated the installer and how fully-featured the desktop environment, every Linux user will inevitably run into some kind of problem. The very same is true on Windows; the difference is that, when you search the internet for a solution to a problem on Windows, you'll almost certainly find a solution posted by someone who uses the same version of Windows. There are many Linux distributions, though; if you're not using one of the popular ones, you might find solutions which aren't quite what you need, or you might not even find any reliable documentation of the exact problem you're experiencing.

When I turn to the internet for help with installing something or fixing some error on Linux, the solutions I find are usually tailored to Ubuntu, which is fine because Linux Mint is based on Ubuntu, but it's not always the case. Sometimes the answers I find are all about Debian or Fedora. Sometimes it doesn't matter. Other times it does. I'm not saying that troubleshooting on Linux is a nightmare. These days, it really isn't. However, the fact that there isn't just one Linux comes with some inherent problems, such as this one, and troubleshooting does require a bit more patience.

But the fact that there are so many distributions means that, if you hit a roadblock and absolutely nothing works, you could always just try a different distribution.

How I Ended Up with Linux Mint


When I first decided to install Linux on my home computer, I tried Ubuntu. The installation process was mostly easy. I had some difficulty setting up dual-boot with Windows 7, but it wasn't Ubuntu's fault. It was because, while attempting to install Ubuntu from a USB stick, and I had inadvertently booted to my USB stick in UEFI mode while my Windows installation was using legacy BIOS. If you don't know what that means, don't feel bad; neither did I.

The short version of this story is that, when I booted my USB stick in legacy BIOS mode, the installation and dual-boot set-up went smoothly. However, I found Ubuntu's default desktop environment difficult to customize and annoying to use in general. Even after a bit of research, I couldn't figure out if my problems were the result of bugs or just obtuse design. Ultimately, for this reason and others, I decided that Ubuntu just wasn't for me.

That's when I tried installing Debian. The installation process seemed to work perfectly. Then I tried to boot to Debian, and nothing happened. I got a black screen. I did some research but there was really no way for me to try any of the solutions proposed to others who had similar problems, because I didn't even have a working terminal. I couldn't enter any commands. I assume that it was a video driver issue, and I could have attempted to fix it, but I decided that it wasn't worth my time. I had heard good things about Linux Mint, and I hadn't tried it yet, so I dropped Debian like a hot turd and started downloading Linux Mint.

That turned out to be the right decision; Linux Mint was easy to install, it booted up just fine, and to this day I've had no significant problems with it... except when trying to run games that were never meant to run on Linux.

Gaming On Linux


It always takes me a while to get to the point.

Linux Mint is great as a general-use desktop operating system. It comes with Firefox, LibreOffice, a media player, etc. But how is it for playing video games? Well, I'd say it's just as good for games as any other Linux distribution, and gaming on Linux today is better than ever, thanks in part to Steam.

Steam Play and Proton


A Linux version of the Steam client has been available since 2013, allowing Steam users to play any games which happened to have official Linux versions. It was only about a year ago, however, that Steam rolled out an update to the cross-platform Steam Play feature, allowing Windows games to be installed using the Linux client and providing a Wine-based compatibility tool called Proton which allows many of those games to run on Linux with very little effort from the user.

Installing Steam on Linux Mint doesn't require any command line usage, nor does it even require a web browser. You just open the Software Manager, search for Steam, select the first result, and click the install button. Meanwhile, enabling Steam Play for all games is just a matter of checking a box in the Steam settings menu. If I remember correctly, this option is disabled by default, and initially Steam Play is enabled only for officially supported games, which is no surprise; it's sensible for anything that isn't guaranteed to work to be disabled by default. But the option isn't hard to find, and often no effort is required to get games to work even if they're not officially supported.

ProtonDB tracks how well Steam games work with Proton by aggregating user-submitted reports. Games without native Linux support are rated on a scale of Borked (meaning it won't run at all) to Platinum (meaning it runs perfectly out-of-the-box), with three ratings (Bronze, Silver, and Gold) in between. I'll let the statistics on ProtonDB speak for themselves, but they appear to indicate that the majority of games are playable.

My own personal experience with running Steam games on Linux has been better than expected. Of course, I've been using ProtonDB as a resource since the beginning, and I haven't bothered to install games which are definitively rated Borked. In general, I've gravitated more toward the games with higher ratings. Therefore, I can't claim that the games I've tried playing on Linux via Proton, of which there are about a dozen, are a random sample. However, even when I've tried to play games rated Bronze or Silver, I've been mostly successful, as I've found solutions in ProtonDB's comments to some of the minor problems I've encountered. And the only game rated Borked which I've really gotten the urge to play since installing Linux Mint is L.A. Noire, and for such games, I still have Windows 7 installed on my other hard drive.

I won't describe my experience with every game in detail, but the first Windows-only game I played on Linux Mint was Max Payne, and... frankly, it just worked. It worked perfectly, actually. The only difficulty I had was not with the game itself but rather with the unofficial widescreen patch, and it was only a momentary setback. The comments on ProtonDB quickly set me straight; I added WINEDLLOVERRIDES="d3d8=n,b" %command% to the game's launch options in Steam and even the widescreen patch worked perfectly.

Similarly, Max Payne 2 works perfectly in Linux, and getting the unofficial widescreen patch to work simply requires adding WINEDLLOVERRIDES="d3d9=n,b" %command% to the game's launch options. Playing Max Payne 3 was a bit more difficult; initially, it wouldn't launch. Following the advice of comments on ProtonDB, I added PROTON_USE_WINED3D11=1 %command% to the game's launch options, and it worked, but with some bugs. The minor issues with Max Payne 3 which remain can probably be fixed, perhaps by trying one of the other Proton versions offered by Steam or by further modifying the runtime configuration, but I had only installed it for testing purposes anyway. I was really more interested in playing the first two games in the series, so I didn't spend much time troubleshooting the third.

Non-Steam Games and Wine


Despite needing the occasional web search to find the correct configuration with which to run a certain game, Steam Play with Proton is actually so convenient it's easier than ever for me to ignore the games I bought from other online stores such as GOG. While there are games on GOG with official Linux support, the GOG Galaxy client does not have a Linux version (despite a lot of GOG users wanting one). Downloading games directly from the GOG web site isn't hard, but clients such as Steam and Galaxy do offer a lot of convenience.

Furthermore, although I could probably use Wine or other tools to play many of the Windows-only games from my GOG account on Linux, it would require more effort than running Windows games via Steam, which very often just works automatically. I did install Wine with the intention of playing non-Steam Windows games, but I just haven't used it yet, because Proton — when it works, which it usually does — is just so effortless. If I'm trying to decide what to play, and I've narrowed down my choices to one GOG game and one Steam game, I'm likely to pick whichever is easiest to run on Linux, and that's going to be the Steam game nine times out of ten.

That might change a bit when I get around to trying Lutris, a game client not associated with any particular store, which also claims to reduce installation of many Windows games on Linux to a zero-effort, one click process. It looks like a promising solution for playing some of my GOG games on Linux. For what it's worth, though, installing Lutris is one extra step. I'm going to have to be a jerk and say that Steam still makes it easier by having Proton integration built in to its own client. So many of my games were already working on Linux as soon as I installed Steam that I haven't taken the time to use much of anything else.

So I don't have much to say about running Windows games with Wine, via Lutris or otherwise. I plan on experimenting with it eventually, and once I've done so, I'll probably write a sequel to this post. Right now, though, I'm looking at a huge Steam library and a high success rate with using Proton with very little tweaking, so I probably won't be straying away from Steam very often, except for the sake of experimentation. When I just want to play a game, Proton is often the best way to make it happen.

The Classics


There is one category of games for which I've already strayed outside the Steam bubble: Old-school shooters. I've got to have them.

The Steam versions of The Ultimate DOOM, DOOM II: Hell on Earth, Final DOOM, Heretic, HeXen: Beyond Heretic, and HeXen: Deathkings of the Dark Citadel all run in Proton. They were all, in fact, officially tested by Valve with specific versions of Proton, so that they show up in my Steam library with labels like "Proton [version number] selected by Valve testing" and will run with the indicated Proton version instead of the default I selected in the global Steam settings.

I find this rather amusing because the Steam versions of these games run through DOSBox which, if I'm not mistaken, has a Linux version. However, I'm not suprised that the game's publisher, id Software, hasn't made the effort to repackage these old games with the Linux version of DOSBox for an official Linux release on Steam, especially given that most users who are computer-savvy enough to use Linux will just take the game files downloaded via Steam and run them in a source port instead of DOSBox anyway.

That's what I did with all of these games, immediately after installing them. There's a Linux version of GZDoom, which isn't a suitable source port for anyone who wants the games to run exactly as they did in the '90s, but it's good enough for me. Like any sane person, I did disable major gameplay options which were not in the original games (such as vertical freelook in the DOOM games, jumping in DOOM and Heretic, and ridiculous stuff like crouching), but the graphical upgrades don't bother me.

Getting GZDoom to launch with the correct options for each game was a bit of a hassle, but no more than it was on Windows. The only real problem is that GZDoom, on my system, encounters some kind of error when I close it, which might have something to do with the fact that it doesn't seem to save changes to the gzdoom.ini file unless I enter the writeini console command while running GZDoom. Knowing the workaround, I'm not really bothered by it.

Satisfied with the DOOM and Heretic/HeXen games, I moved on to Wolfenstein 3D and its expansion Spear of Destiny, and installed the source port ECWolf. To my surprise, it seems to work perfectly despite being, in my estimation, less widely used than GZDoom. So then I moved on to the Marathon trilogy, available as freeware since 2005, and attempted to install the source port, Aleph One. That, unfortunately, could have gone more smoothly.

Not Everything is User-Friendly


The official Aleph One web site has some pretty basic instructions for installing the Linux version: Unpack the .tar.bz2 file and, in the unpacked directory, run ./configure && make && make install. Unpacking the file was easy, but I started having problems as soon as I ran the configure command. I won't bother going into all of the messy details, but I went through several iterations of trying the installation, which would fail due to missing dependencies, and then installing those dependencies.

Synaptic Package Manager, included in Linux Mint, makes finding and installing missing packages about as easy as it can be; doing it on the command line using apt or apt-get isn't very hard either. But I had never needed to hunt down dependencies like this. When installing software through Linux Mint's Software Manager, or even when installing a program using apt install, all dependencies are installed automatically (which I now regard as a miracle). Installing software manually, however, isn't quite so easy. Perhaps I was to blame for not knowing what all of the dependencies were beforehand, but it was getting frustrating.

When I finally got Aleph One installed, I was able to launch Marathon, but it printed some errors to the screen and there was no HUD. Searching the internet for a solution, it turned out I was still missing some "optional" dependencies, and installing those made things worse; my next attempt at installing Aleph One failed outright, seemingly due to a dependency which I had already installed.

That's when a comment on the Aleph One GitHub repository, posted only eight minutes before I saw it, clued me in to the fact that I had gone down the wrong rabbit hole. The easier and more reliable way to install Aleph One is to clone the Git repo, go into the root level folder, and run ./autogen.sh followed by make and make install. I had to install git (which I've used extensively but not at home) and I was still missing a couple of dependencies required by the autogen.sh script, but it told me exactly what the dependencies were, so installing them was just a matter of running the correct sudo apt install command.

So I've got Marathon and its sequels working on Linux now, but installing Aleph One took more than an hour after all was said and done. I've learned a lot, though, and ultimately the solution to every problem was revealed with a simple internet search. This story could scare people away from trying to play games on Linux, but it's important to keep in mind that I had this much trouble only because I was trying to play a 25-year-old game. Doing that on Windows isn't always easy either.

I still haven't installed the classic Quake games, and I think those are next. I can only hope installing their source ports will be a bit easier.

Conclusion


I guess the moral of this story is that installing and running games on Linux can take a bit of patience, but I only came close to running out of patience when I tried to do things that only an old-school game enthusiast determined to use Linux at all costs would ever try to do. With Steam, many of the games that work on Linux will "just work" and, for non-Steam games, I'm told that Wine isn't very hard to use either. However, I do know just enough about Wine to know that it requires some effort. The average consumer expects things to work with a single mouse click. They want one-click install and one-click launch of every game.

For games with native Linux support, you can have that. For the rest, Steam comes pretty close to providing that level of convenience. Until other stores like GOG implement some kind of compatibility layer like Proton into their own clients, Steam will dominate Linux gaming for the same reason that Windows dominates gaming in general: It's just easier.

Sunday, July 28, 2019

GOG Galaxy 2.0 and Playnite 5.3

Note: Some of the information in this post is outdated now. Deal with it, nerds.

Last Friday, I finally got my invitation to the GOG Galaxy 2.0 closed beta. This major update to digital PC game distributor GOG's optional desktop client allows users to import information about games purchased from or registered to other services, thus providing a unified front end for divided game collections. The point, presumably, is to address or to mitigate some game consumers' reluctance to stray outside of the Steam bubble due to their anxiety about not having all of their games in one place. As I noted in a previous post, this is a pretty smart move for GOG, because most potential GOG customers are probably using Steam already, and might not be willing to start using a second store unless doing so is made convenient.

It should be noted that, while GOG Galaxy 2.0 will allow you to import your Steam game library and launch those games from within Galaxy, the games are still launched through Steam, so having the Steam client installed is still required to play Steam games. The same goes for other services as well. The new Galaxy launcher isn't going to let you avoid installing other launchers. However, it will help you organize your game collection and see all of your games in one place without opening all of your launchers at once. Much of the functionality added in this Galaxy update will seem familiar to users of Playnite, another desktop application which aims to be an all-in-one game launcher but which isn't associated with a particular store.

On that note, Playnite 5.0, a substantial update, just recently came out of beta. I believe this was an open beta, but I never got around to trying it during the beta phase. The official release of Playnite 5.0 was announced on Twitter last Friday, the same day I got my GOG Galaxy 2.0 invite.
Since then, several minor versions have been released; the latest version of Playnite is now 5.3 as of today. Apparently some nasty bugs were fixed — some users reported that their game collection databases didn't survive the upgrade to 5.0, an issue which should now be resolved according to the change logs — so I guess I should be glad that I waited.

I've been waiting for weeks to try GOG Galaxy 2.0, and I've been looking forward to the big Playnite update as well, and I had planned to give my first impressions on each in separate posts. However, having installed both on the same day, I might as well do a single combined post with some comparison. This isn't really a "Galaxy versus Playnite" post — trying to pick a "winner" here wouldn't really be fair because Galaxy 2.0 is still in beta and because Playnite is an open-source application without the backing of a well-known game developer — but I'm interested to see how the two of them differ.

GOG Galaxy 2.0


I already had GOG Galaxy installed on my computer, with a few games downloaded. The GOG Galaxy 2.0 installer, as expected, seems to have replaced the old Galaxy with the new one. I'm not sure if there's any easy way to roll back to the previous version, but nothing appears to have broken. Upon starting up the new version (which is apparently 2.0.4 as of today), I'm still logged in and my entire collection of GOG games is visible; the few games I had installed are still showing up as installed, and I was able to launch one of them.

More importantly, to my delight, it didn't automatically attempt to detect and import games from Steam, etc., that I've installed on my computer. Maybe some people would like everything to be automatic like this, but it would have really annoyed me; I'd much rather choose whether to import games from other services, and when to do so.

However, when I was ready to import some non-GOG games into Galaxy, I found that simply scanning for installed games, or manually importing them, apparently cannot be done. The fact that Galaxy didn't try to look for installed non-GOG games on my computer makes perfect sense because importing games requires connecting accounts. The inability to manually add games by their .exe files is listed as a known issue in GOG's support center, so I assume this is meant to change at some point in the future — as it should, because Playnite and Steam both allow manually adding arbitrary games — but, as of now, it seems the only way to add non-GOG games to Galaxy 2.0 is to use the platform integrations in the settings menu.

Two official integrations are listed:
  • GOG.com (connected by default of course)
  • Xbox Live
 Meanwhile, five are listed under "popular" community integrations:
  • Epic Games Store
  • Origin
  • PlayStation Network
  • Steam
  • Uplay
A third section exists to add manual integrations, but I'm not sure how to do this yet. The section contains only a "learn more" link which leads to the Galaxy integrations Python API, and that page includes instructions for deploying integrations into the Galaxy client, but I can find no directory of community plugins aside from the five "popular" ones listed above. Perhaps no others exist yet.

In any case, I love the fact that the API is in Python, because Python is a wonderful language, and if I weren't already using Python every day at work then I might be tempted to try creating my own Galaxy plugins. Of all the languages I've used, Python is by far the most accessible, so it's a good choice for community-made extensions to the Galaxy client.

As for using the integrations which are currently available, it doesn't seem too difficult. Each one listed in the settings menu has a big purple "connect" button which automatically downloads the integration and displays a window indicating which features are included in the integration. These features, one or more of which are implemented by each integration, are as follows:
  • Games
    • Library
    • Installing & Launching
    • Achievements
    • Game time
  • Friends
    • Friends list
    • Chat
    • Friend recommendations
The Steam integration currently implements all of these features except for friends list and chat. In comparison, the Origin integration implements the same set of features as the Steam integration, while the Uplay integration is missing achievements and the Epic Games Store integration is missing achievements and game time. All of this could change in the future, given that Galaxy 2.0 is still in beta, but I don't really care; none of the features missing from any of these integrations are actually features that matter to me. (Friends list integration might be nice, but nearly all of my friends only use Steam anyway, so I'll just go directly to Steam if I want to talk to them.)

From that informational window, clicking "connect" again brings up a log-in page for the platform in question. Apparently log-in credentials for other services are never saved in GOG Galaxy 2.0, so it probably works similarly to Playnite in which each platform's log-in window is basically a browser window and the application only stores some kind of log-in session cookie.

The GOG Galaxy 2.0 privacy notice also seems to indicate that the data enabling each account integration connection is deleted once the integration is disconnected, which seems to imply that there is no permanent account linkage. I assume this means, for example, that GOG will not permanently link my Uplay account to my GOG account if I use the Uplay integration, and will not prevent me from connecting to another Uplay account in the future if I happen to have two Uplay accounts. If this is the case, it would differ from GOG Connect in which Steam account linkage is permanent and irreversible, but the reason for GOG Connect working this way is obvious.

In any case, given that I've already used GOG Connect and my Steam account is therefore permanently linked to my GOG account already, I saw no danger in using GOG Galaxy 2.0's Steam integration.

Upon entering my Steam account credentials (and the Steam Guard authentication code), Galaxy automatically began importing my entire Steam library, which took several minutes because I have several hundred games on Steam. It did not give me the option, as Playnite would, to import only installed games. I suppose that's fine, though. Importing my entire Steam library just happens to be what I wanted to do anyway.

The end result was quite nice, visually. GOG Galaxy 2.0 has two modes for displaying games: a list view and a grid view. The latter is the default, and is more interesting anyway, so it's what I spent most of my time using. All of my Steam games were seamlessly added to the same grid as my GOG games, with all games from both services displaying cover art of the same size and shape. At first glance, this looks a bit nicer than Playnite 4.74, which would download each game's cover art from one of a few sources (depending on availability and user settings) but would not ensure uniform aspect ratio of cover art; this can result in a messy-looking library. If I remember correctly, the last version of Launchbox that I used had the same problem.

However, while GOG Galaxy does its best to display box art of uniform dimensions, sometimes the result is far from perfect. All of the images are guaranteed to line up perfectly, but that's because some of the images are cropped to achieve the desired dimensions. In some cases, wide images are cropped to narrow box art shape, resulting in only part of a title being shown. This can be demonstrated, quite annoyingly, by the Alien Breed trilogy imported from my Steam library (which are also being shown in the wrong order, presumably due to the alphanumeric ordering of special characters such as spaces and colons):

Alien Breed trilogy imported from Steam as shown in GOG Galaxy 2.0.

The lack of suitable cover art for some games isn't GOG's fault, but the cropping is an issue nonetheless. Compare this to the way Playnite 4.74 would display these games. It seems to use the same images as Galaxy, but it shows the entirety of the wide image instead of cropping it. Whether the cropping seen in Galaxy is better or worse is a matter of opinion, I suppose.

Alien Breed trilogy imported from Steam as shown in Playnite 4.74.

Note that Playnite also displays the games the correct order because Playnite allows each game to be given an invisible sorting title (which, for the first game in the trilogy, I changed from Alien Breed: Impact to Alien Breed 1: Impact). This would be a good addition for Galaxy.

Another problem affecting both applications — but seemingly affecting Galaxy more, perhaps due to a narrower search for images — is the occasional missing box art for some of the more obscure games. For these games, Galaxy just displays the title in a box-art-shaped gray area. Fortunately, images can be added or changed manually, so the missing or otherwise incorrect box art can be fixed with a bit of effort.

As expected, games which I own on both Steam and GOG (of which there are quite a few thanks to GOG Connect) now appear twice in my Galaxy library. (This is the same behavior seen in Playnite after importing games from both Steam and GOG.) It's not a big deal, but I would have liked these entries to be combined, so that I see only one of each box art but still retain the option to launch each game on either platform. To be honest, I'm not sure if I trust any application to pull this off automatically, given the occasional minor spelling differences between platforms for the same titles (e.g., Brutal Legend from GOG versus BrĂ¼tal Legend from Steam), but even in these edge cases, Galaxy does seem to find the right box art for both copies. Anyway, although seeing two of the same box art for games owned on two platforms can be slightly annoying, it's no obstacle to usability. Hovering the mouse over any box art displays the logo of the source platform as well as the game's title.

Overall, I was pleased with the way things were going, so I decided to dive in completely and connect my Uplay, Origin, and Epic Games Store accounts to Galaxy as well. All games on these accounts were automatically imported to Galaxy as the accounts were connected. In the case of Uplay, in particular, this shows one distinct advantage of Galaxy 2.0 over Playnite; the latter, as of now, can only import Uplay games that are already installed on the computer.

Galaxy was able to find suitable box art for all of my Uplay, Origin, and Epic titles, which don't include nearly as many obscure games as my Steam library. So, aside from some box art issues with a number of Steam games for which Galaxy was apparently able to find only wide images which were then badly cropped, my combined GOG/Steam/Uplay/Origin/Epic game collection in Galaxy 2.0 looks pretty nice.

Each game's metadata can be modified, and this includes several text fields (title, genres, developers, publishers, release date, and tags), three types of images (box art tile, background image, and a small icon for list view), and some other special fields (a rating out of five stars and a checkbox for visibility which allows games to be hidden).

Playnite 5.3


I suppose I should start with a general description of Playnite for those who have never used it. In short, Playnite can import games from various PC game platforms in the same way that GOG Galaxy 2.0 does. It comes with a number of importer extensions which are similar to Galaxy's integrations. The list of importers does not seem to have changed between 4.74 and 5.3:
  • Battle.net
  • Bethesda
  • Epic Store
  • GOG
  • itch.io
  • Origin
  • Steam
  • Twitch
  • Uplay
The importers for Bethesda and Uplay are the least useful, as they can only import games which are currently installed. The others can import games which aren't installed yet. The importers for Battle.net, Epic, itch.io, Origin, and Twitch accomplish this by authenticating with the user's accounts on those platforms. The importers for Steam and GOG are the most feature-rich, and can import games with or without user authentication; in the latter case, the importer requires only a username, but the user's online profile on the applicable platform needs to be made public.

In addition to importing games from each of these platforms, Playnite allows users to add games manually with a fairly high level of customization. Playnite can also launch games using emulators, although I haven't used this feature myself.

The metadata tracked for each game by Playnite includes a large number of general text fields (name, sorting name, platform, genre, developer, publisher, category, tag, release date, series, age rating, region, source, version, user score, critic score, community score, and description), a handful of advanced fields (last played, time played, play count, completion status, "hidden" and "favorite" checkboxes, etc.), three types of images (cover image, background image, and icon), and some other cool options. Playnite can attempt to populate most of these fields automatically by downloading metadata from various sources; doing this automatically after importing games is optional.

Unlike GOG Galaxy 2.0, no log-in is required by Playnite itself, which is not associated with any online store. In fact, there is no such thing as a Playnite account. All of the game data imported by Playnite is stored locally by default. The database location can be changed to a flash drive to make it portable, and apparently it can even be set up to sync with a cloud service like Google Drive (although I've never tried it), but otherwise all of your data will just stay on your computer.

My own Playnite database was only stored locally, so I was concerned about reports of databases being broken by the upgrade from 4.74 to 5.0, but my database seemed intact after I updated Playnite from 4.74 to 5.3 via the "Check for Updates" option in the menu. Either the bug was fixed somewhere between 5.0 or 5.3, or it wouldn't have affected me anyway.

The visual differences between Playnite 4.74 and Playnite 5.3, which are naturally the first differences I saw, are not quite as dramatic as I had expected. I was intially somewhat disoriented by the filter options being moved from a left-hand sidebar to a right-hand sidebar, but it can be switched back to the left-hand side in the layout settings which also control the positions of a couple of other panels. The overall design of Playnite didn't change so much that I didn't know how to use it; all of the familiar things are still where they were, but there are some new additions, like an "explorer" panel which makes filtering by platform slightly easier.

I did notice immediately after the update that the "grid" view, which displays games as a grid of cover art images, was now behaving more like GOG Galaxy 2.0 than like Playnite 4.74, i.e., images were being cropped to fit the cover art dimensions:

Alien Breed trilogy imported from Steam as shown in Playnite 5.3 with "uniform to fill" cover art rendering.

However, the cover art rendering can be changed in the settings. The target aspect ratio can be modified, as can spacing and border settings, and there are four stretch modes:
  • None (which does no resizing or stretching, so images are shown at their original sizes and aspect ratios regardless of whether they fit in the available grid space, thus sometimes resulting in grid spaces showing only the center of a game's cover art and other times resulting in images filling only part of the available grid spaces; not recommended but, hey, it's an option)
  • Fill (which disregards images' original sizes and aspect ratios, and just stretches them to fill the target size and aspect ratio of the grid)
  • Uniform (which resizes images to fit inside the grid spaces while maintaining their aspect ratios; this was the behavior of Playnite 4.74)
  • Uniform to Fill (which resizes images to fill the grid spaces while maintaining their aspect ratios, and then crops them as needed to meet the target aspect ratio; this is the default behavior of Playnite 5.3)
I think these are probably all of the image fitting options anyone could want, which is great. Personally, I can't tolerate stretching or cropping, so I've gone back to the "Uniform" setting used by Playnite 4.74:

Alien Breed trilogy imported from Steam as shown in Playnite 5.3 with "uniform" cover art rendering.

This may result in a messier looking grid view, but it avoids messing up the individual images. I suppose there's no setting in which the automatically downloaded Alien Breed 3 image is truly suitable cover art, and it's a shame that this image was chosen by both Playnite and GOG Galaxy 2.0, but in either case, I can just manually replace the image if it bothers me enough.

I suppose the bottom line is that Playnite 5.3 offers more visual customization options than Playnite 4.74. However, being pretty isn't really enough; Playnite needs to be functional as well. It already worked rather well in version 4.74, but it had its bugs, quirks, and shortcomings. I'm sure Playnite 5.3 still has plenty of bugs and quirks, even if I haven't seen them, but at least one notable functional shortcoming has been resolved: filters are improved.

Whereas most filters in Playnite 4.74 were simple text searches — which meant, for example, that one could not filter to games with the genre "Adventure" without also finding games with the genre "Action/Adventure" — the filters in Playnite 5.3 provide drop-down menus for each category, while also retaining the text search option. The ability to select "Action" without also selecting "Action/Adventure" might seem like a very minor thing, and I suppose it is, but being able to select from a drop-down menu instead of typing a genre name is also just convenient in general.

Conclusion


As noted above, I'm not really looking for a winner here. They both work. They're both good. They both have shortcomings as well. At this time, GOG Galaxy 2.0 does not seem to have integrations for all of the same platforms from which Playnite can import games; if there are Galaxy integrations for Battle.net, Bethesda, itch.io, and Twitch, I don't know where to find them (although, to be fair, they'll likely be added later). Meanwhile, Playnite does not have importers for Xbox or Playstation accounts (although, to be fair, the value in console game importers for a PC game launcher is rather limited unless emulation is involved).

Selection of plugins aside, the main reason to use Playnite over GOG Galaxy 2.0 is that Playnite still has more options. More of the game metadata is editable, there are more filtering and sorting options, there are more visual customization options, games can be added manually (including those not connected to any online service, e.g., games installed from discs), and games can be launched using emulators. Launch options and other actions for games can be fully customized as well, and I've used this feature to add menu items for opening specific games' manuals and README files, among other things.

Meanwhile, there are already some compelling reasons to use GOG Galaxy 2.0, even if you're not interested in the Xbox or PlayStation integrations. Being able to import achievements from various platforms will be a big deal for a lot of players (though not for me personally), and the idea of integrated friends lists and chat across platforms (though not currently implemented for any of the integrations I tried) is honestly pretty cool. If all of your friends are on Steam then maybe Playnite's dedicated button to open just the Steam friends list is good enough for you, as it is for me, but that doesn't mean GOG shouldn't aim higher.

I can't reiterate enough that GOG Galaxy 2.0 is still in closed beta, and we should expect to see more improvements by the time it officially launches. The fact that it already has some neat features that are absent from Playnite is impressive. However, the fact remains that Playnite has a considerable head start when it comes to actual game collection management options, and Galaxy has a lot of catching up to do before Playnite is made obsolete. It's possible that some of Playnite's features will never be adopted by Galaxy, and vice versa, so we might never reach a point where one is strictly better than the other. We'll just have to wait and see.

Wednesday, June 26, 2019

Steam Sale Chaos

Steam's annual summer sale has started. As usual, the summer sale comes with a gimmicky community event: The Steam Grand Prix. In a break from recent (several years') tradition, however, the event does not consist of collecting Steam trading cards to level up a summer sale badge. In some ways, it's a throwback to the Steam sale events that we used to see before the introduction of Steam trading cards. It's just a thousand times more convoluted and broken.

The mechanics of the event are difficult to explain, but I'll try my best.
  • You selects one of five teams to participate in a race.
  • You have a "Boost Meter" whose capacity increases by 100 for each day of participation and each dollar spent during the sale.
  • You complete "quests" in order to earn a number of points which is limited by your Boost Meter capacity.
    • Some quests are special actions in select games, worth 10 to 100 points each.
    • You can also just play, for at least 30 minutes, any game in which you have ever unlocked achievements, in order to earn an amount of points which scales to the quantity and rarity of the unlocked achievements.
  • You spend your points, as well as the corresponding amount of Boost Meter capacity, to gain distance for your team in the ongoing race and to earn a number of Grand Prix tokens equal to the number of points spent.
  • You spend your Grand Prix tokens at the "Pit Stop" store, where you can level up your summer sale badge for 100 tokens per level, buy a $5 coupon for 15,000 tokens, or buy other digital junk (like profile backgrounds for 1,000 tokens each and emoticons for 100 tokens each).
  • A very small number of random users from high-ranking teams are selected each day to win games from their Steam wishlists.
Needless to say, people are confused by all of this. My explanation is verbose, but the explanation on the official event page is longer and less clear, and there's really no possible explanation which doesn't make it sound completely absurd. You essentially need to go through three kinds of fake currency (Boost Meter capacity, points, and Grand Prix tokens) in order to get your prize from the Pit Stop store.

Perhaps Valve is just trying really hard to obfuscate the very direct relationship between money spent on Steam and Grand Prix tokens earned. Beyond what's given for free just for participating in the sale, it essentially takes a $1 store purchase to get 100 more tokens. The $1 actually translates directly to 100 Boost Meter capacity, but the Boost Meter capacity is exactly the number of points you can earn, and that number is then traded for Grand Prix tokens at a one-to-one exchange rate. Several layers of nonsense exist seemingly just to dress up the fact that each Grand Prix token is a virtual penny. Now, of course, the money in question is spent on games, which you were presumably going to buy anyway, so the tokens are free — but if, for some reason, you just really wanted to accumulate 15,000 extra tokens, you'd have to spend $150 to get them.

The absurdly complicated method of disassociating money and tokens was the first thing about the event that struck me as odd. The second was how points are earned. In all of my recently played games on the first day of the event, the unlocked achievements were worth thousands of points. One game, in which I had unlocked all but a few achievements, was worth tens of thousands of points. But earning tens of thousands of points is meaningless, if your Boost Meter capacity is only 100. Boost Meter capacity, clearly, is the real bottleneck, whereas points — the currency rewarded for playing games, i.e., actually having fun during the event — are so easy to earn but so quickly capped by the Boost Meter capacity that they might as well not exist.

If you try to claim tens of thousands of points from a quest and your Boost Meter capacity is 100, you keep 100 points and the rest are thrown away. I guess this is supposed to be a psychological trick to make you feel like you're wasting something if you don't upgrade your Boost Meter by buying some games from the store. However, I don't think any sane person would actually buy games just to get more points. The end result is just that participating in the event feels unsatisfying. I think the average Steam user (with normal shopping habits and normal achievement completion) would, like me, find that completing a single quest is enough to exceed the Boost Meter capacity. Earning points this way is so much easier than doing the other quests, assuming you've actually played more than a few games, that the other quests are practically meaningless. Completing quests is the only part of the event which actually resembles fun, and the majority of the quests being pointless makes the event less fun, as does the perceived wastefulness of throwing away those imaginary points that exceed one's imaginary capacity.

But so far, honestly, none of this is really a big deal. Steam is a store; of course its interaction with its users revolves around spending money. So the event isn't fun. Who cares? It's a game store; if you want to have fun, then buy fun games from it. However, we can't really blame the Steam community for attempting to participate in something that's plastered all over the top of the main store page. When there's an event happening on Steam, even if it's silly, people are going to try it out, just to see what's going on. But it seems everyone who tried to participate just ended up confused and annoyed. The event itself is confusing, the official explanation of the event is badly written, and one bit of terminology, in particular, has caused a lot of unnecessary confusion.

Those who had more than 100 Boost Meter capacity on the first day of the event, as a result of having spent money on Steam, were surprised to see their Boost Meter capacity drop back to 100 on the second day of the event. Increasing the "capacity" of something sounds permanent; in this case, it's not. When you "boost" your team in exchange for Grand Prix tokens, you spend the points you earned as well as the corresponding amount of Boost Meter capacity. Any unspent Boost Meter capacity presumably rolls over to the next day, but if you fill your Boost Meter with points and then spend those points, you lose all of your Boost Meter capacity and will star the next day with 100 again.

The other major problem with the event is that, even when we understand the rules, it appears to be completely broken. Boost Meter capacity, or so the rules claim, is increased not only by money spent during the event but also by money spent before the event:

"The size of your Boost Meter is determined by Steam purchases you’ve made on your account prior to and during the Steam Grand Prix Summer Sale. We’ve also converted unspent 2019 Lunar New Year tokens into Boost Meter capacity."
Source: https://store.steampowered.com/grandprix

Sounds great, right? You're a loyal customer, and you've spent lots of money on Steam before, so you should get something even if you're not buying things right now. The problem is that many people started with a low Boost Meter capacity despite having a large number of games on Steam. Others report users with very few Steam purchases starting with huge amounts of Boost Meter capacity. The sum of anecdotal evidence posted online, for what that's worth, seems to throw into question any coherent method of computing what a user's starting Boost Meter capacity ought to be.

(It's worth noting that the 2019 Lunar New Year event had similar issues. The tokens given to users at the start of that event were also supposedly scaled to prior purchases on Steam, but based on users' self-reported numbers of tokens received and games owned, it almost seemed as if tokens were given out at random.)

My own personal experience with the Grand Prix event is just confusing. I started with a Boost Meter capacity of 100, despite having over 730 games on Steam. I wasn't surprised, at first; I just figured my Steam store purchases weren't recent enough. Many of my recently added games came from third-party bundle sites, so many those don't count. All of my recent Steam store purchases were made with store credit loaded from Steam gift cards, so maybe those don't count either, for some reason. Maybe adding keys from third-party bundle sites, and gaining store credit by selling Steam trading cards on the Steam market, actually subtracts form a user's starting Boost Meter capacity. How should I know how these things are computed? I just assumed that my 100 was correct.

But then I scrolled to the bottom of the Pit Stop store page (under "Frequently Asked Questions"), and found this:

"Your account received 2,000 Boost Meter capacity based on your previous spend on Steam."
Source: https://store.steampowered.com/pitstop (while logged in)

Atrocious grammar aside, it says I received 2,000 Boost Meter capacity, but I never did. I'm not sure where they even got the number 2,000 when I consider my recent purchases, no subset of which add up to exactly $20 — but, regardless, it's wrong. I started the even with only 100, so now Steam is lying to me. Others online have also reported starting with 100 despite their Pit Stop store FAQs promising much more.

As a result of everything described above, people are mad about this event. People on the Steam Community forums are mad. People on Reddit are mad. People on 4chan are mad. Nobody is mad about which team is winning the race, or about the individual odds of winning free games; everyone is mad about the completely broken Boost Meter mechanics. The amount of frustration this has caused is actually somewhat amusing, considering that this Grand Prix event is just a stupid gimmick to promote the Steam sale. Keep in mind that Valve could have just done a regular sale — you know, discounts on games, and stuff. They don't owe us Boost Meter capacity and Grand Prix tokens. However,
  1. When you present something as a game, people expect it to be fair, and tend to get mad when it's not.
  2. When you say you're going to give something to somebody, they tend to get mad when you don't.
By orchestrating a completely optional community event, consisting of users collecting free digital stuff (which is still free even if the amount of it scales with the money you happened to spend on other goods), Valve has made the community feel worse than they would feel if there were no event at all.

Post-Sale Update



After I originally posted about this event, Valve made a number of changes as described in three news posts. These changes included some attempts at clarifying the rules, a new feature allowing participants of one team to "steal" another team's boosts, a "Switch Teams" option, and other unspecified adjustments to address team imbalance. Starting on the fourth day of the event, they also stopped forcing users to throw away over-capacity points gained from achievements. I don't think it really mattered to anyone who had achievements unlocked in a sufficient number of games -- but, as explained above, it was an annoying psychological trick that didn't really make the event more enjoyable, so I can understand why this was changed.

On the third day of the event, they also gave 1,000 extra Boost Meter capacity to anyone who participated in day one and to anyone who participated in day two (i.e., 2,000 to anyone who participated in both of the first two days), presumably to apologize for the sloppy and confusing event kick-off. However, in my opinion, it still remained confusing to the end.

They also considered "fixing" the Grand Prix Badge which was apparently awarding more experience points than intended. I didn't realize it when I wrote the original post above, but this event made it easier than usual for Steam users to level up their Steam profiles. Indeed, even before I had spent any money on games, I was able to level up far more than during a typical sale event, and the levels I gained were nothing compared to those who spent a lot of money during this sale (either incidentally or, perhaps, for the purpose of leveling up). Personally, I don't really care about my Steam profile level, but some people apparently do, and some felt that the ease with which users could level up during this event was causing Steam levels to be devalued. Ultimately, however, Valve backtracked on their decision to fix the amount of experience points awarded by the badge, which shouldn't be a surprise because Valve would seek to please those who spend the most money.

They did remove the ability to upgrade the badge infinitely, capping the badge level at 2,000, but those who had already gotten the badge past level 2,000 were able to keep it.

I suppose the take-away here is that Valve did try to fix the event, and in doing so, made some effort to please everyone. However, I think most users still came away from this event with the opinion that it was a poorly planned and poorly explained mess. First impressions are everything, I guess.