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.