Open Game Launcher, a project born out of frustration with DRM

Published on: 2/20/2025

For the past few months, since 2024-12-08, I’ve been working on a project to simplify the process of locally syncing the game saves of any games. Recently I also started buying all my games on GOG instead of steam. Mainly because I’ve been screwed by buying a game with Denuvo (unknowingly) loading it on my Steam Deck for a long trip without internet, only for me to be greeted with a prompt telling me to log into a network to validate my license.

Pirates are getting a better service than a paying customer.

So since I don’t want to pirate my games, I decided to buy them on GOG (to avoid this DRM headache). However, the GOG experience on Linux is far from perfect. You don’t have any real supported client, the closest one we have is the community-made Heroic Games Launcher, which doesn’t work well with a controller.

Since we don’t have a native client, cloud saves are not really present. Again, Heroic Games Launcher does support GOG cloud saves, but it’s really flaky in my personal experience.

Open Game Service

The main reason I started this project was due to the fact that GOG does not have a Linux client for the Galaxy 2.0 app. Because of this, I can’t easily play my GOG games between my main computer and my Steam Deck. This is a BIG issue for me since I frequently swap between both machines.

As a simple solution, I started off with a simple Golang program that would store:

  • a list of my installed games
  • the save paths for said games
  • the list of versions for all the files in said save paths

The program would also connect via SSH to another one of my machines, and store the saves along with their versions there.

I called this program: Open Game Service. While, at the time of writing, it is not yet open sourced, I have plans to open-source all my programs related to this project.

Introducing Open Game Launcher

After about a week or two of using Open Game Service via the CLI, I quickly grew frustrated with the process of setting up new games manually. As a solution, I started working on a desktop app that would scan for installed games, and easily allow me to add them to the Open Game Service database.

This is what I now call the Open Game Launcher (which is also not yet open-source 😋).

Here are some screenshots: A screenshot of the quick launch page A screenshot of the game library page, featuring some GOG games A screenshot of the game overview, with an uninstalled game A screenshot of the account management page

So far here are some features:

  • It can detect games installed through Bottles, and sync their saves with custom remotes
  • You can log into your GOG account, list all your owned games (installing games is WIP)
  • You can view your Open Game Service remotes, but you can’t edit them (yet!)
  • You can open games
  • Saves are synchronized before launching a game and after closing it
  • You can edit some Bottles settings
  • Basically full game pad navigation

I also made an icon for it, which was my first time creating an icon. Icon representing a game console with a singular red "A" button and a directional-pad I’m pretty proud of how it turned out 😀

If you’ve made it this far, thanks for checking out my blog post. Hopefully someone will read this. In the meantime, I will try to keep posting about my progress !

-Tacocake

Tacocake's Blog

Tacocake's avatar. Which is a stylized version of 'Purah' from the game The Legend of Zelda: Tears of the Kingdom. The Artwork is done by aurahack

Image credit: aurahack

Socials

Feel free to connect with me on social media, just remember to be kind 😀

About me

Welcome to my blog! I'm a software developer professionally.
I'm autistic and have a passion for technology. This blog is where I share my thoughts, experiences, and projects.

I'm currently working a project to help me manage my game saves locally with a focus on self-hosting.

Read about it in my first blog post!