Every article tag can be clicked to get a list of all articles in that category. Every article tag also has an RSS feed! You can customize an RSS feed too!
We do often include affiliate links to earn us some pennies. See more here.

Interested in a little background on the Heroic Games Launcher, how it came to be and what challenges it comes with? Here's an interview with some of the developers responsible.

What is the Heroic Games Launcher? It's a free and open source games launcher / manager for Epic Games, GOG and Amazon Prime Games that's available for Linux (and Steam Deck), macOS and Windows.

Note: this was originally posted on Reddit, with the user sending it over to GamingOnLinux for republishing. We did previously have our own direct interview back in early 2023 but this touches on a fair bit more. We're just providing a space here for more people to see it and learn more.

Here's the interview:

Introduction and Background


Can you tell us a bit about yourselves and what inspired you to start working on Heroic Launcher? Was it everyone's love of gaming or programming that made you all take the leap?

Mathis: "I believe it was a good mix of both. For me, I wanted to play the games I own on the Epic Games Store. Their launcher is... not the best, it's even worse on Linux (at least it was at the time). A friend pointed me towards Legendary, a command-line cross-platform replacement for the launcher. Heroic then emerged from that as the logical next step (a graphical user interface). After about a year of waiting for it to mature, I moved my games over from Legendary to Heroic, found something I could improve, submitted that change, and the rest is history."

Paweł: "Definitely both, but with more emphasis on programming. I was getting started with Linux and open source in general. Even though I started contributing with translations, I wanted to eventually contribute with code. I believe my first code change was about the new UI for login. After some smaller changes, I eventually picked up a highly requested feature - GOG support."

Ariel: "I was more into the programming side. I don’t play much and I wasn’t even an Epic Games user, but I wanted to contribute to a project that would help users and learn new skills at the same time. It felt like a good fit for me. I started with just some really small things like fixing a shortcut bug or basic stuff, but eventually, things started to make sense. After some time, it feels really nice to know that you are doing something that is helping a lot of people."

Etaash: "I was tired of using Lutris at the time. It had a lot of bugs (most of them fixed now), and it is written in Python, so that turned me away from contributing to fix those issues (Python is unreadable for me, who primarily programs in C/C++). I looked for alternatives and eventually found Heroic, which suited my needs since all I needed was to launch Epic games. Heroic was a bit more stable, but it also wasn’t stable enough, so I decided to dig into the code a bit. Since it was TypeScript, I was able to follow it. If I remember correctly, most of the issues were caused by how Heroic interacted with Wine. Fixing those issues allowed games to launch more consistently out of the box. Since then, I have kept my focus on that one area: maximizing game compatibility."

Flavio: "I was kind of bored on a pretty cold and snowy black winter day in Sweden during the holidays. Didn’t have plans and was off from work for two weeks, so I decided to learn something new. I was already using Legendary on Linux to play a few games. I started using it to play Control when it was released, and it was Epic exclusive. It was a pain at the time since gaming on Linux was not exactly easy 4 years ago; things have improved a lot since then. So, since I wanted to learn something new, I started researching how to build a GUI for Legendary just for fun. In two days, I was able to come up with a simple GUI that already dealt with login, listing games, selecting different wine versions and prefixes, etc. The basis of what became Heroic today."

What was the initial goal you had in mind when you first started developing Heroic Launcher?

"Heroic started as Flavio’s side project. He was using Legendary for accessing Epic and decided to make a GUI application for it. It was also a way to gain more experience with Electron and web technologies. This is what the project was mostly about: just a simple way to browse and launch games. If you want some more history lessons, make sure to check out old releases."

How has the project evolved since its inception?

Flavio: "The first year was kind of slow, and I honestly thought of giving up several times. There was a lot of criticism from the community since it was using Electron and it was for Epic games, and people love to hate Epic and Electron. I worked basically alone the first year, with just a few contributions here and there.

The second year was when things started to grow far beyond my control and got a lot of traction and media coverage. Releasing it for macOS and Windows was also a big leap, and nowadays we have around 10% of users on macOS and 25% on Windows, for people that hate how bad Epic Games launcher is there. Adding other stores was always a goal, but finding the time to dedicate to it was pretty harsh. But luckily, we had Paweł joining and working with other members of the community to crack GOG and then Amazon.

After adding GOG, the community and even the sceptical people started embracing Heroic more and more."

Were there any significant challenges you faced during the initial development process? Before your first release?

Flavio: "Before the first release, I cannot think of big challenges. Most of the work was being done by Legendary and Wine on the backend. Heroic was basically just sending the commands to it; it was pretty simple at first. I think the hardest part was dealing with the community that had a few folks that were basically just trying to criticize the project on every change, even though it was free, open-source, and not using their time and effort."

What keeps you motivated to continue developing and improving Heroic Launcher? It's been some time now since its inception, and I know motivation can ebb with time. What keeps all of you having the fire to keep this improving?

Mathis: "The fact that there is still so much to improve is my primary source of motivation. I know that for everything I implement, someone out there will be happy that it was done (even if that someone is just myself; we all personally use Heroic as well, after all)."

Ariel: "I have a looooong TODO list of things I want to try. Some items are to fix something I encounter and bugs me, other things are just ideas I have, and Heroic is a great app for me to experiment and learn. Also, the feeling of fixing something that was bothering other people and knowing I helped feels good."

Flavio: "The biggest motivation is to keep bringing fun to this huge community that embraced our project and are always eager to have new features and things that will make play more fun than frustration, especially on Linux and macOS where we need to deal with compatibility layers like Wine, Proton, GPTK, etc. Especially when you are new to those and have no idea how it works. Heroic tries to make everything as click-and-play as possible.

Also, Heroic made me connect with so many nice people from the FOSS community, and even to get my current job, and I think other contributors also found nice jobs because of it. This is something that makes me very happy as well."

Paweł: "Game stores other than Steam usually treat Linux as second-class citizens if they even support it as a platform. What keeps me going is the fact that we get to make a difference on what game stores become approachable to less tech-savvy users."

I see at least one dev here is an outspoken Linux-user (seeing someone on Mastodon is rare enough to make me take notice!) Was there an element of that love of FOSS which led you to look into the Steam Deck itself (being the 'one' Linux handheld which has become mainstream)?

Ariel: "I’ve been a Windows-less user for many many years now, and I remember like 15-20 years ago how I struggled with gaming on Linux. In the last few years, things are SO much better, and when the Steam Deck was announced, it was a no-brainer for me. The only problem was that it’s not available in my country, so I had to get some family members to travel and get one for me. I don’t use it that much now, but I use it also as a way to tell people “see? You don’t need Windows for this”."

Flavio: "Yeah, like Ariel, I am also a primary Linux user since around 2007 when I got my first PC. Always tried to play games on Linux somehow, and it was always a pain. When Steam launched a Linux version, I think around 2012, it was a huge thing for me, and I was basically just buying games with the Linux version at the time. With the launch of Proton around 2018-2019, I guess the game changed totally, and since I play mostly single-player games, I can play 99% of my library on Linux and on the Steam Deck."

Is everyone a Steam Deck user?

Ariel: "I am. I don’t use it much lately, but I sometimes go back for a while."

Flavio: "Yes, actually my first Steam Deck I was able to buy only with donations from Heroic Patreon and Ko-fi. I finished a lot of games on it, especially Metroidvanias, which is my passion."

Etaash: "Unfortunately, I don’t have a Steam Deck."

Paweł: "Yes, I am. The Deck is a great travel companion."


Pictured - Heroic Games Launcher on Linux

Development and Features


What were some of the more unique features you were excited to add to Heroic Launcher?

Mathis: "Well, anything store-specific definitely was unique, but it wouldn't necessarily get me excited (Epic has added... 5? different features into their API exclusively used by Fortnite, each one becoming more cryptic). I've recently added a new system information gathering tool into Heroic to help with support requests; getting into the weeds of PCI databases and WMI classes was fun (and we now detect GPUs more accurately than NVIDIA & AMD's own tools!)."

Paweł: "I’m very, very proud of what we’ve done with GOG support. Most solutions that are really similar to Heroic rely on offline installers for game downloads. While this isn’t a big deal for the most part, the system is slow to provide updates and requires manual input to apply them. Heroic is closer to what GOG Galaxy is; it’s able to download an update instantly after it’s been released. We can also access password-protected Beta releases of games. This is especially useful for game developers who want to test things before making them public."

Ariel: "I was really into accessibility at some point. I think Heroic is really user-friendly, and we were lacking some things. Also, the feature to control the interface with a gamepad is something I’m really happy with how it worked (and we wanted that before the Steam Deck release). It still has some problems and rough edges, but the experience is good enough, I think. I’m also really happy with the “known fixes” feature to automatically apply fixes we know for specific games (kinda like proton-fixes, so not that unique, but specific to Heroic). It helped a lot to make more games work out of the box."

Flavio: "When I think of new features, I think of things that add more value to the end users and myself since I also use Heroic a lot. So things that I am always excited about are to add either more stores to it or to improve the compatibility layer to be able to play games easily without having to tinker a lot with settings, etc."​

Can you share an interesting story from the development phase? With each dev in a different country, I can imagine your time-zones are a battle in and of itself!

Mathis: "Communication is inherently asynchronous, that's true. I hope I've not woken the others up in the middle of the night too many times while bugging them to help me with something. I can't point to one interesting story in particular, but I believe the whole journey was (and still is!) interesting. Being able to hack on software in a small team while never having seen one another in person is a cool feeling."

Ariel: "I think we actually only met once in a call in the last 3/4 years? And we were not even all there, but it’s weird, you kinda end up knowing the rest a bit even if you don’t really share much time. I don’t think the time zones were ever a problem, to be honest. We are all really good at doing things async, and we know that whenever you ask something, there’s a good chance nobody is there and you’ll have to wait (I’m in South America, so if I do something at 12-1am my time, the rest of the team is most likely sleeping in Europe)."

Flavio: "I think that for most FOSS projects, async communication is the default rule, and dealing with time zones is fine. There were some times where I was not available, and we had some major bugs to fix, and the other devs were waiting for me to make the release. But besides that, things work pretty well for us. We have pretty good communication, and we know each other very well as well."

​How do you decide which new features or improvements to prioritize?

Mathis: "Other than "thing is on fire and needs fixing right now" type of issues, it is mostly just gut feeling. Of course, I can only work on things I know need working on (so either it's something I personally want to do or it's suggested by someone in the community)."

Ariel: "I try to think, “of all these ideas I have, what will benefit the project the most? And what can I realistically achieve in X time?” Because sometimes I have a crazy idea, but then I realize it’s not really that important, or it will take me weeks, and maybe a simpler thing that I can do in a few hours or days is better. I like to ship things, so I like to do small things that add value. I also think each of us has a different set of skills and preferences for what to work on."

Flavio: "A lot of stuff comes from the community. Some others we realize when we are using the app as well. For me, those are the two main factors when thinking about new features or bug fixing."

Have there been any user-suggested features that you found particularly intriguing or surprising? Has any 'one' feature of Heroic been implemented because of such a suggestion? Be it Discord, Reddit, or similar?

Mathis: "Anything Windows-exclusive is most likely coming from a user suggestion. For example, the Fortnite-only features of the Epic API I've mentioned above: I have no interest in the game, but enough people were asking for them & they weren't too hard to implement. Whipped up a Pull Request (for the non-nerds out here: a list of changes to Heroic), people reported it was working, and in it went."

Ariel: "There’s a lot of ideas that come from users’ suggestions. Sometimes the suggestion may not fully fit into Heroic’s scope, but that may trigger other ideas too. I can’t remember one specifically, but one I want to implement that was suggested long ago (and I never find the time to do it) is to have the option to remap the gamepad buttons to other actions."

Flavio: "I can think of several that came from user suggestions. One thing was the ability to control Heroic with a joystick. It was a feature that people asked since the beginning, and then Ariel implemented it later on. The Windows and macOS versions also were suggested by users. GOG integration was asked like day one as well."

What was the most challenging feature to implement and how did you overcome it?

Ariel: "I think the most challenging stuff I find are bugs that are really hard to solve… like… race conditions (we have a lot of things happening at the same time) or things the users don’t really see (like performance problems, dev-experience changes, and refactors, etc.). A lot of features sometimes look really challenging or complicated, but I usually end up feeling it was just my lack of knowledge of the topic. In the end, some things I struggled with ended up looking really simple."

Flavio: "I think making Proton work properly took time. At first, we did not have proper access to the docs, so we were just guessing and testing a lot. Today, Heroic has a pretty solid implementation, but it took a lot of time to reach that level of stability."​

Personally, my favorite store-front is GOG. I love what they stand for and what they do for the gaming community. Have you had direct contact with GOG? Any insights? Have they given you any feedback? Even a throwaway comment?

Flavio: "The guys from GOG are great, and they contacted me directly once to talk about Heroic, and they totally support the project and what we are doing, especially on Linux. I would say we have a really good relationship with them."

Paweł: "Adding to what Flavio said, we currently have the affiliate deal with GOG, so any purchases made using our link support the project financially."

Community and Feedback


How has the community feedback shaped the development of Heroic Launcher? You guys have an ARDENT fan-base, and there's no better sign of a good product than a community who rally around what you built. Are your respective communities involved in some way in what comes with each release?

Ariel: "I think the best thing we get from the community for Heroic is a way to understand what’s important. Because we can have ideas and think of a random feature, but you never know if people will actually care about it… but having Discord and GitHub (those are the 2 places I check regularly) lets you see what’s going on, what’s bothering most people (latest example would be the GTAV problems, and that led us into doing more research around that problem). We can’t do everything that looks important, but it certainly helps a lot."

Flavio: "Just when I created the first POC of Heroic, I published about it on Reddit, and the comments were mostly favorable, but there were a lot of people that criticized at first because of being for Epic and using Electron like I said above. But nowadays, we have an amazing community. People don’t complain about that anymore. We have several friends in other communities as well, like Bottles, Vanilla OS, Lutris, Gaming on Linux, etc. People help each other, others refer to the project everywhere. There are tons of videos about it on Youtube and tutorials on several websites for gaming or not."

How do you stay connected with the users and incorporate their feedback into the project?

Flavio: "I think having an active Discord and GitHub is good for those. We use a bit of Mastodon and X as well, but I think most of the ideas come from the first two."

How important is the community to the success and growth of Heroic Launcher?

Paweł: "It’s safe to say Heroic wouldn’t exist, or at least it wouldn’t be in its current form, without community feedback. It is invaluable to the growth of the project."

​Discord and Reddit...are there any other places you have a community? Anywhere else people can follow along with Heroic?

Ariel: "I would consider GitHub also part of the community. A lot of suggestions/requests go directly there. I personally only read Discord and GitHub issues."

Future Plans


What exciting new features or updates can users look forward to in the near future? I know a new release is coming up; have you anything you can share on that here with me?

Ariel: "It’s hard to tell what’s going to happen in the near future because we don’t have a predefined roadmap. Also, there’s always new contributors that show up and add something we were not expecting (for example, the feature to add categories and assign games was a contribution and nobody on the core team was working on that). Personally, my main goals are: redesign, improving UX, and improving DX."

Are there any long-term goals or visions you have for Heroic Launcher?

Flavio: "I think adding more stores, making playing games even easier to play without much tinkering. These are the main Heroic goals and mission."

How do you see Heroic Launcher evolving in the next few years?

Flavio: "Be an alternative for EA and Ubisoft launchers on Linux and macOS would be pretty nice. But even if we have all the money and time, maybe not all of those are possible because of technical restrictions."

How do you envision the future of game launchers in general? Handhelds in general?

Flavio: "I feel that people don't like to have too many launchers, so in the future I think companies like EA and others might kill their launcher and only publish on Steam, Epic, and GOG."

I know EA is in your plans for the future, any inkling on how close you might be to making that happen?

Paweł: "The project is being developed together with the team behind Battlefront II manager - Kyber. There are still a lot of features and challenges we need to tackle before we make it public. Give us a few more months; you won’t be disappointed."

As a fan of AMA's with developers, can people look forward to something similar to that with Heroic at any stage? With any release? If you'd give us even a 'maybe' I know people would love to see that. Or I would anyway.

​​Flavio: "I honestly think it would be fun to do something like this."

Technical Aspects


Can you describe the tech stack behind Heroic Launcher?

Mathis: "Heroic is, in its core, a website with superpowers. We're using Electron, which gives us access to the frankly huge Web ecosystem, a fine (to not start another language war) language to work in (TypeScript), and low-level control where we need it. Store backends are usually implemented with another binary coming with Heroic (Legendary for Epic Games, gogdl and Comet for GOG, Nile for Amazon) to make it easy for other game launchers to build upon our work."​

What was the most technically challenging part of developing Heroic Launcher?

Mathis: "Definitely publishing to all 3 major operating systems at once. Finding out that your cool new feature isn't working right because macOS uses an ancient version of some command-line utility is not for the faint of heart. Other than that, the (unsurprising) amount of variance between users always has to be dealt with. "Where do people mount their drives?" "What shell are they using?" and even "What language are they speaking?" all seem like obvious questions now, but they're sure to come back to bite you when you least expect it."

Flavio: "Making everything works as seamlessly as possible is the biggest challenge, in my opinion. Even though the heavy lifting is made on the wine/proton side, it still requires us to understand and test a lot of stuff. A few releases ago we added the automatic fixes with winetricks, and then we now have this repository on GitHub where we can use it to automate those. This is the biggest challenge: to make that one-click play work just fine on all Linux distros and macOS."​

How do you handle compatibility issues across different operating systems? (which OS was the hardest?!)

Mathis: "We do have automated tests in place, but nothing beats the old "boot up Heroic on OS, test it". Because of that, as a Linux user, I'd say Linux is the easiest, followed by Windows (at least you can test in a VM), with macOS being the hardest (the only viable solution to testing on there being "Buy a Macbook"). Outside of Heroic itself, we heavily rely on Wine and its derivatives to run Windows programs. Its support is, of course, always improving, and I hope it'll take another big leap once UMU is supported."

Ariel: "I feel Linux is the easiest to work with, but I’m probably too biased. Windows would be second; at least when there’s a problem, you can find something on the internet. On Mac, it’s harder; the system is more closed."

Flavio: "I disagree with Ariel and Mathis. Windows is the easiest platform to deal with, simply because all games are native to it. So we don’t need to deal with a lot of settings and variables and commands like we do for Linux and Mac. Linux is second because the Wine and Proton are pretty mature there. macOS is improving now with Apple's Gaming Porting Toolkit, but it's still at least 2 years away from what Linux has achieved for gaming."

Are there any third-party tools or libraries that have been particularly helpful?

Ariel: "Weblate to solve the management of translation is great. Legendary/gogdl/nile are, of course, crucial."

Flavio: "I would say all those binaries like Legendary, GOGDL, and Nile, but also Proton, Wine-GE, Wine-Crossover, and GPTK from GCENX, UMU. I mean, even Electron is really important to make it so easy to distribute the package to all the platforms we support."

How do you ensure the security and privacy of users' data within Heroic Launcher?

Paweł: "No data is being shared anywhere by Heroic. The application only manages what is required for it to work, everything operates locally on the user's machine."

Personal Insights


What’s everyone's favourite game to play using Heroic Launcher?

Paweł: "I absolutely love the world of Horizon Zero Dawn. Currently, I aim to unlock all of its achievements. Even though there is a whole New Game+ ahead of me, I can’t wait to get my hands on the sequel."

Ariel: "I don’t have a favorite game (I raaarelly would play a game twice), and I don’t play online games."

Flavio: "I finished several games using Heroic already in these almost 4 years of development. My favourites were Blasphemous 2, Cyberpunk 2077, The Witcher 3, and A Plague Tale: Innocence."

How do you balance development work with your personal life? A lot of devs who build for gaming can find it hard to find the love or time for gaming sometimes. Do you guys struggle here?

Ariel: "I’m single and live alone, so I have a lot of time after work. But I don’t play games that much. I have weeks where I’d play some hours, but then that goes away, and I don’t touch a game for weeks or even months. But on the other hand, coding is my favorite hobby, and it requires less commitment (you can code a feature in a few hours, but some games require 50/60 hours once you start them), so I find it way easier to find time to code."

Flavio: "I had some struggles and still have because I always needed to reconcile Heroic, a full-time job, and family, since I am married and have two kids. Good thing I don’t need to sleep much 😂"

Are there any developers or projects in particular that inspire you?

Flavio: "Well, Heroic was inspired a lot by the Lutris project. I used Lutris for several years, and I still admire the project a lot. But the Wine Project, Linux itself, Steam. All those things, open source or not, had inspired me somehow as a gamer, developer, and Heroic dev."

What advice would you give to aspiring developers who want to create their own software?

Ariel: "Just… start something, the simplest prototype you can build. And if you don’t know where to start to create something new, start by contributing to something you use; you’ll learn a lot, and eventually, you’ll understand."

Flavio: "Yeah, starting the first thing might be harder, but once you start it and publish it somewhere, you feel nice, and then you want to improve or even start something new. Before Heroic, I published a couple of Android Apps, tried to build a Bitcoin Exchange on my own as well. All of those gave me experience, and I learned a lot from architecture until publishing, through the dev ops, sustainability, scalability, etc."

What do you do to unwind and recharge after a long day of coding?

Ariel: "I watch some series or play sudoku or go play soccer. But since it’s my hobby, sometimes coding for Heroic feels like a way to recharge after my full-time work too."

Flavio: "Watch some TV shows and horror movies with my wife, play with my kids, or get the Steam Deck and play something there as well."

Finally? Any closing words? Anything you'd like to say to the community-at-large?

Flavio: "A big thanks to everyone that supports us, all developers that contributed to the project, our friends on Discord, other friends' projects like Weblate, Bottles, Lutris, Gaming on Linux, The Linux Experiment, Vanilla OS, Garuda OS, SignPath, and many others. Everyone is part of the Heroic journey and is important in many different ways."


Thanks again to the user who submitted it and thank you to the Heroic Games Launcher developers.

Article taken from GamingOnLinux.com.
22 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. You can also follow my personal adventures on Bluesky.
See more from me
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
4 comments

Yueh Sep 10
HGL became so good. I can't have anything else to manage my games.
Pyrate Sep 10
Steam + Heroic, and Linux becomes a gaming powerhouse (sorry Lutris).
dpanter Sep 16
Heroic is an important part of Linux gaming and we all appreciate the hard work of everyone involved.
Hats off, gentlebeings.
Honest question: why does it takes a long time to release fixes when heroic gets broken?

Before this last version, GOG games were not installable on Linux since March of this year: https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/issues/3636
No hot-fix was released, solution was to wait until August (!) for a whole new Heroic release.

Now it's Amazon, empty libraries for everyone: https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/issues/4005
This one is a Nile issue, fixed last week in Nile's repo, but still no Heroic release to *actually* fix it... probably postponed to a whole new Heroic release again, so around Christmas or something?
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register