Steam Machine · Guides
How to Play Epic, GOG, Battle.net, and Other Non-Steam Games on Steam Machine
Summary
Heroic, Lutris, and NonSteamLaunchers take different routes to non-Steam libraries on SteamOS. Choose by store and by how much setup control you want.
SteamOS runs Steam. Everything else needs a third-party tool, and there are three worth knowing about: Heroic, Lutris, and NonSteamLaunchers.
They are not competing versions of the same thing. They take genuinely different approaches, and the right one depends on which stores your library actually lives on.
Pick by store, not by tool
| Store | Heroic | Lutris | NonSteamLaunchers |
|---|---|---|---|
| Epic Games | Yes | Yes | Yes |
| GOG | Yes | Yes | Yes |
| Amazon Games | Yes | Yes | Yes |
| Battle.net | No | Yes | Yes |
| EA App | No | Yes | Yes |
| Ubisoft Connect | No | Yes | Yes |
| Rockstar, itch.io, others | No | Some | Yes |
| Emulators | No | Yes | No |
If everything you own is on Epic, GOG, or Amazon, use Heroic and stop reading. It is the simplest tool and it does that job better than the other two.
If you need Battle.net, EA, or Ubisoft Connect, the choice is between NonSteamLaunchers and Lutris.
How they actually differ
This is the part that explains everything else.
Heroic is a native Linux application that replaces the store client. Its official feature list covers Epic, GOG, and Amazon access, imports, Proton or Wine selection, and cloud-save synchronization where supported. It talks to Epic, GOG, and Amazon directly through their own APIs. There is no Windows launcher running anywhere, which is why it feels clean and why its store support is limited to the three it has implemented.
NonSteamLaunchers does the opposite. Its project README documents launcher installation, shortcut scanning, separate App IDs, and save-backup behavior. It automates installing the real Windows launchers, Battle.net.exe and the rest, under Proton, then adds them to your Steam library as shortcuts. You end up running the actual Windows software the same way you would on a PC.
Lutris manages Wine prefixes and runs community-maintained installer scripts. Lutris describes its launcher coverage as including Battle.net, Epic, GOG, EA, Ubisoft, and other stores. It covers the widest range of stores, plus emulators, and it asks the most of you in exchange.
Heroic sidesteps Windows entirely. NSL embraces it and automates the setup. Lutris hands you the tools and a script library.
Heroic Games Launcher
Install from Discover in Desktop Mode. Search Heroic, install, done.
Stores: Epic Games Store, GOG, Amazon Games, plus ZOOM Platform as an experimental Linux-only addition.
What makes it the default recommendation for those three stores:
- Built-in Wine and Proton management, so you are not hunting for compatibility layers
- Login through Epic's official OAuth flow, credentials go to Epic rather than to Heroic
- Per-game cloud saves where the underlying store supports them
- An Import feature that points at an existing install folder instead of forcing a multi-gigabyte re-download
- A three-dot menu Add to Steam option that creates the shortcut with the right Proton runtime already configured
That last one matters on a living room device. Set it up once in Desktop Mode, then launch everything from Gaming Mode with a controller afterward.
Heroic continues to publish releases, but version numbers move quickly. Check the current release list before following a version-specific troubleshooting step.
NonSteamLaunchers
The broadest automated option, and the one most people should use for Battle.net.
It installs launchers under a single shared Proton prefix by default and registers them in your Steam library. Supported launchers include Battle.net, Epic, GOG Galaxy, Ubisoft Connect, EA App, Amazon Games, itch.io, Rockstar Games Launcher, Humble Games Collection, IndieGala, Legacy Games, Glyph, VK Play, and HoYoPlay. It also handles cloud and streaming services including GeForce NOW, Xbox Game Pass, Amazon Luna, and Boosteroid.
Two installation paths exist. A desktop script you run once from Desktop Mode, and a Decky Loader plugin that lives in the Quick Access Menu. The Decky version is more convenient long-term, but it requires Decky Loader, which needs sudo. See the Desktop Mode guide if you have not set a password yet.
Two settings worth understanding before you install:
Separate App IDs puts each launcher in its own Proton prefix instead of sharing one. Sharing is tidier and uses less space. Separating means one broken launcher cannot affect the others. If you are installing several, separate them.
The background scanner detects games you install inside those launchers and automatically adds them to Steam as non-Steam entries with artwork. This is the feature that makes NSL feel finished rather than like a workaround.
It also backs up game saves automatically to a dedicated folder, which is worth knowing exists.
Lutris
The most capable and the most manual.
Direct library integration for Steam, Epic, GOG, and Humble Bundle. Beyond that, an installer script database covering EA, Battle.net, Ubisoft Connect, Amazon, itch.io, and a long tail of others. Community scripts handle the Wine prefix setup per title rather than per store, which is why coverage is broader and results vary more.
It is also an emulator frontend, managing Wine alongside MAME, Dolphin, RetroArch, and ScummVM. A single Lutris library can hold an Epic release, a Battle.net MMO, and a console ROM.
Choose Lutris when you want emulation and non-Steam stores in one place, when a specific game has a maintained Lutris install script that solves a problem the other tools do not, or when you want per-game control over the compatibility layer.
Skip it if you just want Battle.net working with minimal fuss. NSL gets you there faster.
The anti-cheat problem
None of these tools solve it. Valve's Proton guidance makes the same distinction: anti-cheat support depends on the game and vendor, not the launcher you use.
Games using kernel-level anti-cheat generally do not run under Wine or Proton at all. That is a decision made by the anti-cheat vendor, not a limitation any launcher can engineer around. Fortnite is the most-asked example and it does not work.
Check before you plan around a specific game. This is not a "try a different Proton build" situation.
Getting them into Gaming Mode
Whichever tool you use, the end state is the same: launchers and games appearing in your Steam library so a controller can reach them from the couch.
- Heroic: three-dot menu on any game, Add to Steam
- NSL: automatic, the scanner handles it
- Lutris: add Lutris itself as a non-Steam game via Steam's Add a Non-Steam Game dialog
Steam's own Add a Non-Steam Game dialog works as a manual fallback for anything.
Can you use more than one
Yes, and there is a reasonable case for it. Heroic for Epic, GOG, and Amazon because it handles those best, NSL for Battle.net and EA because Heroic cannot.
If you do run both, pin the same GE-Proton version in each. Otherwise a game behaving differently in one tool versus the other tells you nothing, because you are comparing two different compatibility layers rather than two different launchers.
Recommendation
Most Steam Machine owners want one of two setups.
Epic, GOG, and Amazon only: Heroic. Install from Discover, log in, add games to Steam, done.
Battle.net, EA, or Ubisoft in the mix: NonSteamLaunchers, with Separate App IDs enabled. Add Heroic alongside it if you also have an Epic or GOG library and want the cleaner experience for those.
Lutris is the right answer when you have a specific reason for it, usually emulation or a stubborn title with a good install script. It is a worse default than either of the above.
What is confirmed and what remains unknown
Heroic, Lutris, and NonSteamLaunchers document the store and launcher workflows described above. The table is a tool-selection guide, not a promise that every title or every launcher update will work on Steam Machine. Anti-cheat, account requirements, launcher updates, and per-game Proton behavior still need to be checked for the specific game you want to play.