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.

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.

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.

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.

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.

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.

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.

Game engine support in 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.

Interactive fiction support in ports
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 emulation without non-free firmware
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.

Game console emulation without 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.

libretro cores for RetroArch
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.

Live image OS emulation support in ports
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.

Home