Jump to content

Gaming: Difference between revisions

From Official NixOS Wiki
Arborodin (talk | contribs)
No edit summary
Arborodin (talk | contribs)
No edit summary
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:


== Game launchers ==
== Emulating and launchers ==
 
Games can be run by different applications. Some are able to include libraries from different platforms.
Games can be run by different applications. Some are able to include libraries from different platforms.
{| class="wikitable sortable"
{| class="wikitable sortable"
|+
|+
!Application
! scope="col" | Application
!Platform
! scope="col" | Platform
!Remarks
! scope="col" | Description
! scope="col" | nixpkgs
|-
|-
|[[Steam]]
| [[Steam]]
|Steam
| Steam
|Stable support for Windows games. Linux games often incompatible due to interoperating differences.
| Stable support for Windows games. Linux games often incompatible due to interoperating differences.
| <code>steam</code> <code>steam-run</code> <code>steam-runtime</code> <code>steam-original</code> <code>steam-unwrapped</code> <code>steam-small</code>
|-
|-
|[[Lutris]]
| [[Lutris]]
|Epic Games, EA App, Flatpak, GOG, Humble Bundle, Steam, Ubisoft Connect, Wine
| Epic Games, EA App, Flatpak, GOG, Humble Bundle, Steam, Ubisoft Connect, Wine
|
|
| <code>lutris</code> <code>lutris-free</code> <code>lutris-unwrapped</code>
|-
| [https://github.com/legendary-gl/legendary Legendary] & [https://github.com/RareDevs/Rare Rare]
| Epic Games
| Rare is a GUI for Legendary.
| <code>legendary-gl</code> <code>rare</code>
|-
| [[Heroic Games Launcher|Heroic]]
| Epic Games, GOG, Prime Gaming, Wine
| Supports gamepad navigation. Uses Legendary unlike Lutris.
| <code>heroic</code> <code>heroic-unwrapped</code>
|-
|-
|[[Heroic Games Launcher|Heroic]]
| Itch.io
|Epic Games, GOG, Prime Gaming, Wine
| Itch.io
|Supports gamepad navigation. Unlike Lutris, uses open-source Legendary for Epic Games.
|
| <code>itch</code>
|-
|-
|PPSSPP
| PPSSPP
|PSP emulation
| PSP emulation
|
|
| <code>ppsspp</code>
|-
|-
|[[Playstation2|PCSX2]]
| [[Playstation2|PCSX2]]
|PS2 emulation
| PS2 emulation
|
|
|
|-
|-
|RPCS3
| RPCS3
|PS3 emulation
| PS3 emulation
|Contains unfree blobs (PS3 firmware).
| Contains unfree blobs (PS3 firmware).
| <code>rpcs3</code>
|-
|-
|[[RetroArch]]
| [[RetroArch]]
|Retro games emulation
| Retro games emulation
|
|
|
|-
|-
|[[Wine]]
| [[Wine]] & [[Bottles]]
|Windows emulation
| Windows emulation and software management
|often easier to use Lutris install scripts for wine applications/games
|-
|Dosbox
|DOS emulation
|
|
| <code>wineWow64Packages</code> <code>winetricks</code> <code>bottles</code>
|-
|-
|nixpgs
| Dosbox
|Linux games
| DOS emulation
|
|
| <code>dosbox</code>
|-
|-
|}
|}


== List of NixOS supported games ==
== List of games in Nixpkgs ==
 
{| class="wikitable sortable"
{| class="wikitable sortable"
|+
|+
!Name
! scope="col" | Name
!Category
! scope="col" | Category
!nixpkg status
! scope="col" | Description
!Short Description
! scope="col" | nixpkgs
|-
| [https://play0ad.com/ 0 A.D.]
| Strategy, Historical
| Historical real-time strategy game.
| [https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/0ad/default.nix available]
|-
| [https://www.armagetronad.org/ Armagetron Advanced]
| Arcade, Racing
| A multiplayer Tron-like lightcycle racing game.
| [https://github.com/NixOS/nixpkgs/pull/263675 available]
|-
| [https://www.wesnoth.org/ Battle for Wesnoth]
| Strategy, Turn-based
| Turn-based strategy game with fantasy themes.
| [https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/wesnoth/default.nix available]
|-
| [https://cataclysmdda.org/ Cataclysm: Dark Days Ahead]
| Survival, Rogue-like
| Post-apocalyptic survival game.
| [https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/cataclysm-dda/default.nix available]
|-
| [https://chromium-bsu.sourceforge.io/ Chromium B.S.U.]
| Arcade, Space Shooter
| Fast paced, arcade-style, top-scrolling space shooter.
| available
|-
| [https://crawl.develz.org/ Dungeon Crawl]
| Rogue-like, Adventure, Turn-based
| Open-source, single-player, role-playing roguelike game.
| available
|-
| [https://www.bay12games.com/dwarves/ Dwarf Fortress]
| Simulation, Management, Rogue-like, Sandbox
| Single-player fantasy game with a randomly generated adventure world.
| available
|-
| [https://endless-sky.github.io/ Endless Sky]
| Space simulation, RPG
| Explore a universe with different factions and ships.
| [https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/endless-sky/default.nix available]
|-
| [https://freeciv.org/ FreeCiv]
| Strategy, Turn-based
| Civilization-building strategy game.
| [https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/freeciv/default.nix available]
|-
|-
|[https://www.thedarkmod.com/main/ The Dark Mod]
| [https://www.gnu.org/software/freedink/ FreeDink]
|Stealth, FPS
| Adventure, RPG
|[https://github.com/NixOS/nixpkgs/pull/356578 pending pull request]
| Free, portable and enhanced version of the Dink Smallwood game engine.
|Stealth game inspired by the Thief series.
| available
|-
|-
|[https://endless-sky.github.io/ Endless Sky]
| [https://freedoom.github.io/ FreeDoom]
|Space simulation, RPG
| FPS
|In nixpkgs
| Free alternative to the Doom series.
|Explore a universe with different factions and ships.
| '''''unavailable'''''
|-
|-
|[https://www.veloren.net/ Veloren]
| [https://github.com/ZDoom/gzdoom GZDoom]
|RPG, Sandbox
| FPS
|In nixpkgs
| A feature-centric port for all Doom engine games, based on ZDoom, adding an OpenGL renderer and powerful scripting capabilities.
|Multiplayer voxel RPG set in a procedurally generated world.
| [https://github.com/NixOS/nixpkgs/tree/nixos-24.05/pkgs/games/doom-ports/gzdoom available]
|-
|-
|[https://www.armagetronad.org/ Armagetron Advanced]
| [https://sourceforge.net/projects/lincity/ LinCity]
|Arcade, Racing
| Simulation, Management
|In nixpkgs
| City simulation game.
|A multiplayer Tron-like lightcycle racing game.
| available
|-
|-
|[https://play0ad.com/ 0 A.D.]
| [https://github.com/lincity-ng/lincity-ng LinCity-NG]
|Strategy, Historical
| Simulation, Management
|In nixpkgs
| City simulation game.
|Historical real-time strategy game.
| available
|-
|-
|[https://supertuxkart.net/de/Main_Page SuperTuxKart]
| [https://luanti.org Luanti]
|Arcade, Racing
| Sandbox
|In nixpkgs
| An open source voxel game engine.
|Kart racing game (like Super Mario Kart) featuring Tux and friends.
| available
|-
|-
|[https://www.openra.net/ OpenRA]
| [https://mindustrygame.github.io/ Mindustry]
|Strategy, RTS
| Strategy, Sandbox
|In nixpkgs
| Sandbox tower defense game.
|Open-source implementation of Command & Conquer.
| [https://github.com/NixOS/nixpkgs/tree/master/pkgs/games/mindustry available]
|-
|-
|[https://freeciv.org/ FreeCiv]
| [https://nethack.org/ NetHack]
|Strategy, Turn-based
| Rogue-like, RPG
|In Nixpkgs
| Rogue-like game.
|Civilization-building strategy game.
| available
|-
|-
|[https://www.gnu.org/software/freedink/ FreeDink]
| [https://openmw.org/ OpenMW]
|Adventure, RPG
| RPG, Open world, Action-adventure
|In Nixpkgs
| Unofficial open source engine reimplementation of the game Morrowind.
|Free, portable and enhanced version of the Dink Smallwood game engine
| available
|-
|-
|[https://www.openttd.org/ OpenTTD]
| [https://www.openra.net/ OpenRA]
|Simulation, Management
| Strategy, RTS
|In nixpkgs
| Open-source implementation of Command & Conquer.
|Business simulation game based on Transport Tycoon Deluxe.
| [https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/openra/default.nix available]
|-
|-
|[https://www.wesnoth.org/ Battle for Wesnoth]
| [https://www.openttd.org/ OpenTTD]
|Strategy, Turn-based
| Simulation, Management
|In nixpkgs
| Business simulation game based on Transport Tycoon Deluxe.
|Turn-based strategy game with fantasy themes.
| [https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/openttd/default.nix available]
|-
|-
|[https://freedoom.github.io/ FreeDoom]
| [https://shatteredpixel.com/ Shattered Pixel Dungeon]
|FPS
| Rogue-like, RPG
|'''''Not in nixpkgs'''''
| Rogue-like dungeon crawler with pixel graphics.
|Free alternative to the Doom series.
| [https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/shattered-pixel-dungeon/default.nix available]
|-
|-
|[https://xonotic.org/ Xonotic]
| [https://www.chiark.greenend.org.uk/~sgtatham/puzzles/ Simon Tatham's Portable Puzzle Collection]
|FPS, Arena shooter
| Puzzle
|In nixpkgs
| Simon Tatham's portable puzzle collection.
|Fast-paced multiplayer shooter.
| available
|-
|-
|[https://sourceforge.net/projects/lincity/ LinCity]
| [https://www.supertux.org/ Super Tux]
|Simulation, Management
| Platformer, Side-scroller
|In nixpkgs
| Classic 2D jump'n run side-scroller game.
|City simulation game
| available
|-
|-
|[https://github.com/lincity-ng/lincity-ng LinCity-NG]
| [https://supertuxkart.net/de/Main_Page SuperTuxKart]
|Simulation, Management
| Arcade, Racing
|In nixpkgs
| Kart racing game (like Super Mario Kart) featuring Tux and friends.
|City simulation game
| [https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/super-tux-kart/default.nix available]
|-
|-
|[https://mindustrygame.github.io/ Mindustry]
| [https://te4.org/ Tales of Maj'Eyal (ToME 4)]
|Strategy, Sandbox
| Rogue-like, RPG, Turn-based
|In nixpkgs
| Rogue-like focused on exploration of procedurally generated dungeons.
|Sandbox tower defense game.
| available
|-
|-
|[https://nethack.org/ NetHack]
| [https://www.thedarkmod.com/main/ The Dark Mod]
|Rogue-like, RPG
| Stealth, FPS
|In nixpkgs
| Stealth game inspired by the Thief series.
|Rogue-like game
| [https://github.com/NixOS/nixpkgs/pull/356578 pending pull request]
|-
|-
|[https://cataclysmdda.org/ Cataclysm: Dark Days Ahead]
| [https://powdertoy.co.uk/ The Powder Toy]
|Survival, Rogue-like
| Sandbox
|In nixpkgs
| Classic 'falling sand' physics sandbox game.Classic 2D jump'n run sidescroller game.
|Post-apocalyptic survival game.
| available
|-
|-
|[https://shatteredpixel.com/ Shattered Pixel Dungeon]
| [https://www.veloren.net/ Veloren]
|Rogue-like, RPG
| RPG, Sandbox
|In nixpkgs
| Multiplayer voxel RPG set in a procedurally generated world.
|Rogue-like dungeon crawler with pixel graphics.
| [https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/ve/veloren/package.nix available]
|-
|-
|[https://www.chiark.greenend.org.uk/~sgtatham/puzzles/ Simon Tatham's Portable Puzzle Collection]
| [https://xonotic.org/ Xonotic]
|Puzzle
| FPS, Arena shooter
|In nixpkgs
| Fast-paced multiplayer shooter.
|Simon Tatham's portable puzzle collection
| [https://github.com/NixOS/nixpkgs/tree/master/pkgs/games/xonotic available]
|-
|-
|[https://luanti.org Luanti]
|Sandbox
|In nixpkgs
|An open source voxel game engine.
|}
|}


== Example of games installation ==
== Installing games ==
 
=== Workarounds ===
 
Games that aren't yet available in nixpkgs can be played by other means, including but not limited to:
 
* <code>steam-run</code> as described in [[Steam]] or by installing it then running <code>steam-run $GAME</code> or <code>steam-run ./$GAME</code>.
* <code>programs.nix-ld = { enable = true; libraries = pkgs.steam-run.fhsenv.args.multiPkgs pkgs; };</code> to run nearly any binary by including all of the libraries used by Steam. [https://old.reddit.com/r/NixOS/comments/1d1nd9l/walking_through_why_precompiled_hello_world/ (Source)]
* <code>appimage-run</code> as described in [[Appimage]].
* [[Distrobox]] to virtualize an OS that has a package for your game.
 
=== Renowned Explorers: International Society ===
=== Renowned Explorers: International Society ===
Tested with version <code>renowned_explorers_international_society_522_26056.sh</code> from gog.com. It can be played with <code>steam-run</code>, but it needs some libraries that are not normally included in Steam's FHS environment. One way to solve this is to add an overlay:
Tested with version <code>renowned_explorers_international_society_522_26056.sh</code> from gog.com. It can be played with <code>steam-run</code>, but it needs some libraries that are not normally included in Steam's FHS environment. One way to solve this is to add an overlay:
<syntaxHighlight lang=nix>
<syntaxHighlight lang=nix>
Line 189: Line 260:


== See also ==
== See also ==
* [https://github.com/NixOS/nixpkgs/tree/master/pkgs/games List of existing games in nixpkgs]
 
* [https://osgameclones.com/ Open Source Game Clones]
* [https://github.com/NixOS/nixpkgs/tree/master/pkgs/games Games in Nixpkgs]
* [https://github.com/bobeff/open-source-games open-source-games list on Github by bobeff]
* [https://github.com/fufexan/nix-gaming Gaming on Nix (by fufexan)]
* [https://trilarion.github.io/opensourcegames/games/top.html 100 highest rated (by stars on Github) playable open source games]
* [https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=game Search in nixpkgs by "game" keyword]
* [[wikipedia:List_of_open-source_video_games|List of open-source video games (en.wikipedia)]]  
* [https://www.reddit.com/r/linux_gaming/wiki/freegames/ Linux Gaming Reddit wiki]
* [https://github.com/topics/open-source-game Topic "open-source-game" on github]  
* [[wikipedia:List_of_open-source_video_games|List of open-source video games (en.wikipedia)]]
* [https://trilarion.github.io/opensourcegames/games/top.html List of top rated open-source games]
* [https://github.com/bobeff/open-source-games List of open-source games (by bobeff)]
* [https://libregamewiki.org/List_of_games List of libre games]
* [https://lgames.sourceforge.io/about.php LGames website]
* [[wikipedia:Porting|Porting (en.wikipedia)]]
* [https://osgameclones.com/ Open-Source Game Clones website]
* [[GameMode|NixOS Wiki GameMode page]]
* [[Chess|NixOS Wiki Chess page]]
* [[Chess|NixOS Wiki Chess page]]



Latest revision as of 08:50, 27 August 2026

Emulating and launchers

Games can be run by different applications. Some are able to include libraries from different platforms.

Application Platform Description nixpkgs
Steam Steam Stable support for Windows games. Linux games often incompatible due to interoperating differences. steam steam-run steam-runtime steam-original steam-unwrapped steam-small
Lutris Epic Games, EA App, Flatpak, GOG, Humble Bundle, Steam, Ubisoft Connect, Wine lutris lutris-free lutris-unwrapped
Legendary & Rare Epic Games Rare is a GUI for Legendary. legendary-gl rare
Heroic Epic Games, GOG, Prime Gaming, Wine Supports gamepad navigation. Uses Legendary unlike Lutris. heroic heroic-unwrapped
Itch.io Itch.io itch
PPSSPP PSP emulation ppsspp
PCSX2 PS2 emulation
RPCS3 PS3 emulation Contains unfree blobs (PS3 firmware). rpcs3
RetroArch Retro games emulation
Wine & Bottles Windows emulation and software management wineWow64Packages winetricks bottles
Dosbox DOS emulation dosbox

List of games in Nixpkgs

Name Category Description nixpkgs
0 A.D. Strategy, Historical Historical real-time strategy game. available
Armagetron Advanced Arcade, Racing A multiplayer Tron-like lightcycle racing game. available
Battle for Wesnoth Strategy, Turn-based Turn-based strategy game with fantasy themes. available
Cataclysm: Dark Days Ahead Survival, Rogue-like Post-apocalyptic survival game. available
Chromium B.S.U. Arcade, Space Shooter Fast paced, arcade-style, top-scrolling space shooter. available
Dungeon Crawl Rogue-like, Adventure, Turn-based Open-source, single-player, role-playing roguelike game. available
Dwarf Fortress Simulation, Management, Rogue-like, Sandbox Single-player fantasy game with a randomly generated adventure world. available
Endless Sky Space simulation, RPG Explore a universe with different factions and ships. available
FreeCiv Strategy, Turn-based Civilization-building strategy game. available
FreeDink Adventure, RPG Free, portable and enhanced version of the Dink Smallwood game engine. available
FreeDoom FPS Free alternative to the Doom series. unavailable
GZDoom FPS A feature-centric port for all Doom engine games, based on ZDoom, adding an OpenGL renderer and powerful scripting capabilities. available
LinCity Simulation, Management City simulation game. available
LinCity-NG Simulation, Management City simulation game. available
Luanti Sandbox An open source voxel game engine. available
Mindustry Strategy, Sandbox Sandbox tower defense game. available
NetHack Rogue-like, RPG Rogue-like game. available
OpenMW RPG, Open world, Action-adventure Unofficial open source engine reimplementation of the game Morrowind. available
OpenRA Strategy, RTS Open-source implementation of Command & Conquer. available
OpenTTD Simulation, Management Business simulation game based on Transport Tycoon Deluxe. available
Shattered Pixel Dungeon Rogue-like, RPG Rogue-like dungeon crawler with pixel graphics. available
Simon Tatham's Portable Puzzle Collection Puzzle Simon Tatham's portable puzzle collection. available
Super Tux Platformer, Side-scroller Classic 2D jump'n run side-scroller game. available
SuperTuxKart Arcade, Racing Kart racing game (like Super Mario Kart) featuring Tux and friends. available
Tales of Maj'Eyal (ToME 4) Rogue-like, RPG, Turn-based Rogue-like focused on exploration of procedurally generated dungeons. available
The Dark Mod Stealth, FPS Stealth game inspired by the Thief series. pending pull request
The Powder Toy Sandbox Classic 'falling sand' physics sandbox game.Classic 2D jump'n run sidescroller game. available
Veloren RPG, Sandbox Multiplayer voxel RPG set in a procedurally generated world. available
Xonotic FPS, Arena shooter Fast-paced multiplayer shooter. available

Installing games

Workarounds

Games that aren't yet available in nixpkgs can be played by other means, including but not limited to:

  • steam-run as described in Steam or by installing it then running steam-run $GAME or steam-run ./$GAME.
  • programs.nix-ld = { enable = true; libraries = pkgs.steam-run.fhsenv.args.multiPkgs pkgs; }; to run nearly any binary by including all of the libraries used by Steam. (Source)
  • appimage-run as described in Appimage.
  • Distrobox to virtualize an OS that has a package for your game.

Renowned Explorers: International Society

Tested with version renowned_explorers_international_society_522_26056.sh from gog.com. It can be played with steam-run, but it needs some libraries that are not normally included in Steam's FHS environment. One way to solve this is to add an overlay:

  nixpkgs.overlays = [
    (self: super: {
      steam-run = (super.steam.override {
        extraLibraries = pkgs: with pkgs;
          [
            libxkbcommon
            mesa
            wayland
            (sndio.overrideAttrs (old: {
              postFixup = old.postFixup + ''
                ln -s $out/lib/libsndio.so $out/lib/libsndio.so.6.1
              '';
            }))
          ];
      }).run;
    })
  ];

Adding libxkbcommon, mesa, and wayland is straightforward. The game expects the shared library sdnio.so.6.1 to exist, so we need to create a symbolic link after the installation of sndio.

See also