OpenBSD gaming methods
OpenBSD is a Unix-like operating system known for its security focus. While not typically thought of as a desktop, over the years many ways to play games have been added to the system.
One way to roughly describe OpenBSD gaming is to call it a subset of Linux gaming. The notable differences are OpenBSD does not have any closed source drivers and there is no Steam, Wine, or later emulators for systems such as the PlayStation 2 and 3.
I focus on ways to play games instead of details such as working around bugs and hardware support. Besides making my life easier that information would not only be out-of-date quickly, but harmful advice later. The best source of information and the first place to look is always going to be the manuals and other documentation.
In true Unix fashion OpenBSD gives you enough rope to hang yourself with. No matter how secure it is there is no limit to the amount of self-inflicted damage you can cause by being reckless.
There are so ways to play games on OpenBSD I couldn’t possibly list them all. There are plenty more games, game engines, live CDs, and emulators still out there I don’t know about. Hopefully I will make you aware of some of those and gave you ideas about what to search for next.
Mr. Satterly
Updated July 27, 2022
Creative Commons BY-NC-SA 4.0
Base system
What I call the base system refers to everything from an installation of OpenBSD. Even if you didn’t select the games set during the installation there is still at least one game hidden away and others accessible through other programs.
BSD Games
BSD Games are a collection of terminal games and software toys that can be installed during an install or upgrade of OpenBSD. They existed before OpenBSD and now are significantly different than the original versions.
Only two programs need further explanations than what the game manuals give. pig converts text into Pig Latin while wargames is a simple launcher for other BSD Games. See intro 6.
Ports/Games
Ports is the software repository for OpenBSD. Packages are the binary distributions of ports. The ports FAQ and manual are both good places to start at. Ports has readmes, extra documentation, website URLs, and a software search.
When looking at games I think most start in Ports/Games. It’s the most obvious place they would be at. Games here span a wide range of genres with varying degrees of quality which is a nicer way of saying there are some gems among the garbage. But the point of this document is there are more games than what you can find in Ports/Games.
Packages are the binary distribution of ports, but not always an option. When using packages make sure to pay special attention to pkg-readmes. There are more instructions specific to getting a game to run on OpenBSD in them. If you aren’t completely confident about installing ports and packages or are unsure about what any of that means stop here and reread the ports documentation.
Interpreted languages
Shell scripting
Scripting languages are not always ideal programming languages for game development. This is especially true for shell scripting. Despite that a few were still made. All of the games I have seen so far are simple and run in a terminal. The languages to run the scripts can be found in either the base system or in Ports/Shells.
Network
Gemini
An old rule says you are allowed one exclamation per document. I’m going to declare you are allowed one word with a cyber– prefix per work. I’m going to use mine now.
The Gemini protocol occupies a space somewhere between Gopher and HTTP. The hypertext stars in the Gemini constellation are on the edge of cyberspace (may I be forgiven). Explore that space and you will find a few simple games.
- Gemini clients
- Amfora
- Bombadillo
- Castor
- Kristall
Gopher
Because Gopher is menu driven so are the games. They are similar to BSD Games or other simple terminal programs where instead of inputting commands and text you select a menu option by navigating gopher links.
- Gopher clients
- Castor
- cgo
- Clic
- Gopher+
- Lynx
- sacc
- VF-1
MUDs
Multi-user dungeons or MUDs are the precursor to massively multiplayer online games or MMOs. MUDs could be loosely described as text based MMOs or multiplayer interactive fiction (IF). OpenBSD ports includes MUD clients, but no servers.
- MUD clients
- gMUDix
- GNU Emacs
- MUDix
- Telnet clients
- TINTIN++
- TinyFugue
- Web browsers
Telnet
OpenBSD includes a telnet client which can be used to play games including MUDs. Likely MUD players will be better off using a dedicated client from ports.
- Telnet clients
- telnet
- Web browsers
WWW
The WWW section in ports makes you think of web browsers. On the surface that’s true, but underneath there are a few more ways to play. Don’t forget that web browsers can still access Gopher. And then there are those browser add-ons typically made in JavaScript. Well, JavaScript is a programming language so what would stop someone from making a game in it?
Browser games are any game that runs in a browser. Any full-featured browser should work. The more popular ones are Chromium and Firefox, though there are few more in ports. While there is a Java plugin called IcedTea-Web there are no plugins for Flash, Silverlight, or Unity. Other game-enabling technologies include everything from JavaScript to WebGL to plain HTML for choice-based fiction.
- Web browsers
- Chromium
- Edbrowse †
- Firefox
- Firefox ESR
- Links †
- Links+ †
- Lynx †
- w3m †
Game engines
Game engines need games, game data, or other files to run. Ports sometimes includes games for them, but not always. Some of the programs are game engine recreations, forks, or source ports.
Name | Year | Port |
Flare | 2010 | Flare |
id Tech 1 (Doom engine) | 1993 | Chocolate Doom
GZDoom PrBoom PrBoom+ |
INSTEAD | 2009 | INSTEAD |
Minetest | 2010 | Minetest |
RPG Maker 2000 | 2000 | EasyRPG |
RPG Maker 2003 | 2002 | EasyRPG |
Ren'Py | 2004 | Ren'Py |
SCI | ScummVM | |
SCUMM | 1987 | ScummVM |
Solarus | 2011 | Solarus |
I’m using the term game engine here liberally. Much of the software below includes source ports and game and game engine recreations. A second list is needed for software that support only a small amount of games. Sometimes that number is just one.
Interactive fiction
Interactive fiction might as well be its own universe. They are some of the oldest games out there and development continues today. I would guess there are probably over 10,000 free IF games. The ways to play IF includes interpreters, game engines, and virtual machines so I lumped everything together.
Name | Year | Port |
ADRIFT | 1998 | Gargoyle
ScummVM |
AdvSys | 1986 | ScummVM |
AGT | 1987 | Gargoyle
ScummVM |
ALAN | 1985 | Gargoyle
ScummVM |
Archetype | ScummVM | |
Glulx | 1999 | Gargoyle
ScummVM |
HUGO | 1995 | Gargoyle
ScummVM Zoom |
JACL | 1996 | ScummVM |
Level 9 A-Code | 1979 | Gargoyle
ScummVM |
Magnetic Scrolls | 1984 | dMagnetic
Gargoyle ScummVM |
Quest | ScummVM | |
TADS | 1988 | Gargoyle
Zoom |
Z-code (Z-machine) | 1979 | Frotz
Gargoyle ScummVM Zoom |
Some dates are from Wikipedia and Interactive Fiction Wiki. |
Ren'Py
Games made with Ren'Py are often distributed as binaries for Microsoft Windows, though sometimes the source and game files are put in a compressed file. I was able to get both Windows and Linux versions of games to work when all the files are exposed. Unfortunately, as time passes the games made for older versions of Ren'Py can stop working.
While every method has games covering a wide genre each generally has a type of game they are known for. Ren'Py games typically use anime graphics with players navigating through the game using choices of dialog. From what I have seen there are quite a few that weigh in heavily with themes of homosexuality and sex.
Emulation
Only emulated systems that have at least one free game and one emulator that works without non-free firmware are listed here. Emulators that require installing an operating system on an emulated disk are not listed.
Arcade emulation
Arcade emulation means MAME (or AdvanceMAME) which is an acronym for Multiple Arcade Machine Emulator because it is the only arcade emulator in ports. MAME also emulates pinball and video poker systems, though getting games for it is difficult. Publishers rarely offered limited amounts of ROMs for sale in the past.
Arcade games were designed to suck down quarters as much as possible. I found playing with infinite credits is close to cheating. It shows just how short some games are.
With computer or game console emulation there a few controllers and even fewer button layouts. With arcade games every system can be a completely new layout.
Computer emulation
This section looks a little thin because computers usually require firmware to run. Most emulators don’t distribute or emulate that firmware. Each system listed here has games that don’t require installation.
Computer | Years | Emulator |
Atari ST series | 1985–1993 | Hatari |
Commodore Amiga | 1977–1982 | FS-UAE
UAE |
Commodore PET series | 1985–1996 | Frodo
Vice |
MSX series | 1983–1993 | openMSX |
ZX Spectrum | 1982–1992 | fuse |
Game console emulation
There is so much to cover about every console. Each one of these systems could fill a book by themselves. One problem is I simply don’t have enough experience with every single console to write about them all.
Another reason is other websites such as Wikipedia and Emulation General Wiki already do a good enough job detailing the history and emulation of hundreds of consoles. Wikimedia alone has many photos of each system and their many controllers.
What is needed is only information specific to emulating the countless consoles on OpenBSD. You can easily look up consoles and emulators. Websites like the Emulation General Wiki go into great detail about emulation, but leave out anything OpenBSD specific. This table is a quick reference to exactly which emulators run on OpenBSD and which ones don’t require non-free firmware.
Console | Years | Emulator |
Amstrad GX4000 | 1990, 1991 | MAME |
Atari 2600 | 1977–1992 | MAME
Stella |
Atari Jaguar | 1993–1996 | Virtual Jaguar |
Audiosonic 1292 Advanced Programmable Video System | 1978–1983 | MAME |
NEC TurboGrafx-16 | 1987–1994 | higan
MAME Mednafen |
Nintendo 3DS | 2011–2020 | Citra |
Nintendo 64 | 1996–2002 | Mupen64Plus |
Nintendo DS | 2004–2014 | DeSmuME |
Nintendo Entertainment System | 1983–2003 | FCEUX
MAME Mednafen Nestopia RetroArch |
Nintendo Game & Watch | 1980–1991 | RetroArch
MAME |
Nintendo Game Boy | 1989–2003 | Gambatte
higan Mednafen mGBA RetroArch SameBoy VBA-M |
Nintendo Game Boy Color | 1998–2003 | Gambatte
higan Mednafen mGBA RetroArch SameBoy VBA-M |
Nintendo Game Boy Advance | 2001–2010 | Mednafen
mGBA RetroArch VBA-M |
Nintendo GameCube | 2001–2007 | Dolphin |
Nintendo Virtual Boy | 1995, 1996 | Mednafen
MAME |
Nintendo Wii | 2006–2017 | Dolphin |
Sega Game Gear | 1990–2000 | higan
Mednafen RetroArch |
Sega Genesis | 1988–1999 | DGen
higan MAME Mednafen RetroArch |
Sega Master System | 1985–1996 | higan
Mednafen RetroArch |
Sega SG-1000 | 1983–1986 | MAME
Mednafen RetroArch |
SNK Neo Geo Pocket | 1998, 1999 | Mednafen |
SNK Neo Geo Pocket Color | 1999, 2000 | Mednafen |
Sony PlayStation | 1994–2006 | RetroArch |
Sony PlayStation Portable | 2004–2014 | PPSSPP |
Super Nintendo Entertainment System | 1990–2003 | higan
Mednafen Snes9x |
I want to make a special note here about RetroArch here. RetroArch is a frontend and the libretro cores are the backends.
Console | Port |
Nintendo Entertainment System | libretro-nestopia |
Nintendo Famicom | libretro-nestopia |
Nintendo Game & Watch | gw-libretro |
Nintendo Game Boy Advance | libretro-mgba |
Nintendo Game Boy | libretro-mgba
libretro-sameboy |
Nintendo Game Boy Color | libretro-mgba
libretro-sameboy |
Sega Genesis | libretro-genesis-plus-gx |
Sega Master System | libretro-genesis-plus-gx |
Sega Mega Drive | libretro-genesis-plus-gx |
Sega SG-1000 | libretro-genesis-plus-gx |
Sega SG-1000 II | libretro-genesis-plus-gx |
Sony PlayStation | libretro-pcsx-rearmed |
Operating system emulation
The emulated operating systems listed here are live versions that are run on an emulator. That makes them similar to a game console emulator requiring a ROM, except it needs an extra step of accessing the games through menus. Operating systems requiring an installation are excluded.
DOSBox is a special case because it falls somewhere in between. Some problems with including it are you need to know how DOS works to install, configure, and make games work. That includes knowing about and finding DOS programs that aren’t distributed with the games. Anything that requires advanced knowledge of other operating systems is outside the scope of this document.
These live disks have a start menu or other top bar. Use that to navigate to the games. The games are in fairly obvious places. None of them games or operating systems require installation.
The table is incomplete and the emulators may be too slow to run the games at full speed.
Name | Years | Arch | Port |
Fedora Linux | 2003– | x86-64 | QEMU |
ReactOS | 1998– | x86-64 | QEMU |
TempleOS | 2005–2017 | x86-64 | QEMU |
Other
Chromium
Google created an easter egg game called Dinosaur Game in Chrome that is also available in Chromium. You can access the game by going to chrome://dino . There are several versions of the game online elsewhere for those using a different browser.
ddb
ddb is the kernel debugger included in OpenBSD. The only time users will be forced to interact with it is when the system crashes. ddb includes a version of hangman similar to the one from BSD Games. Unless you want to debug the OpenBSD kernel it is better to play hangman from BSD Games.
GNU Emacs
GNU Emacs is absolutely full of features so it shouldn’t surprise anyone that it includes several games and software toys called amusements. You can download more games as add-ons which are often clones of popular games. The Emacs Wiki documents built-in and 3rd-party games which are similar to BSD Games.
gnuplot
The title suggests what gnuplot does. The typical use would be running gnuplot with a file that gets turned into an image of whatever you want plotted. At first glance it isn’t obvious it is even interactive in a way that it could play games. Yet here we are.
In the source code there are a couple games. They can be found in the source tree under demo/games/. Don’t expect much from the clones of Nibbles and Tetris.
LibreOffice
As an office suite LibreOffice can create several types of documents one of which is a slideshow. Any program that allows making choices interactively can at least have choice-based fiction games. Forgotten Island makes use of that slideshow feature, but it is more of a proof of concept than an actual game.
Mozilla Firefox
The Mozilla Firefox add-ons website includes extensions, themes, language packs, and so on. While typical extensions might block content, convert websites to dark mode, or stop some browser fingerprinting there are some unexpected games mixed in. Finding games through the add-ons website is difficult because the games and entertainment section includes extensions other than games. Try searching for the term game and see other extensions by the same developer.
Mozilla Thunderbird
Mozilla Thunderbird is an email client with add-ons similar to Firefox. If you click on add-ons from the hamburger menu you can find a Snake clone. There was a version of Pong, but it only worked with old versions of Thunderbird.
Vim
Vim, like many other text editors is extensible. Vim’s scripting language is called Vimscript and it has been used to create a few games. Most of them are clones of simple games. You can get the third-party scripts from Vim’s website.