Steam is a gaming platformthat sells and manages games on Windows and Linux.Since FreeBSD has some pretty good Linux emulation,it is possible – with some footnotes – to runLinux Steam Games on FreeBSD. This was alreadypossible in 2016but the tooling keeps being updated,so let’s take a look at how things work.
I’m writing about things that other people have built.It’s their efforts in the Open Source world that enable my entertainment,so show some appreciation to the (otherwise largely anonymous) folkswho make this possible.
To exit the shell with the server running in the background, press CTRL + A and then D. When you log back into the server shell, type the following to get back to the server process: screen -r In conclusion, you should now have an OpenTTD dedicated server running in the background on your Vultr Ubuntu 20.04 VPS instance. 2021-04-18 Posted by LordAro. We present the first bugfix release of the 1.11 release series! Along with our usual bug fixes, we’ve broken our own rules and included a couple of features in this release - a vsync option which should hopefully fix screen-tearing seen by some people, and volume controls in the Options window.
Open TTD dedicated servers come with unlimited players, clients and companies. OpenTTD is a free to play game. This works with the mobile version of OpenTTD also.
- Improve dedicated server performance. Saving rejects to file findversion.sh.rej patching file projects/openttdvs100.vcxproj patching file projects/openttdvs100.
- .openttd/scripts/ondedicated.scr, it will be run whenever a dedicated server is started, and do the following: It will Print 'Starting Server' in the console window It will begin logging the non-debuging output from the console window to openttd.log.
Edit: some comments from shkhln in the FreeBSD discord serverhave prompted me to update this. Errors remain my own.
nVidia? Nah
While most of the time nVidia graphics cards give excellentresults on FreeBSD – with the proprietary drivers – I have notbeen able to get mine to do anything useful. I’m told thatit’s supposed to work and that most success reports come in that way,but personally don’t get any further thansome vague X errors and a hang, on the workstation thatruns my KDE Plasma desktop the rest of the week (with a GT 730).
Installing Steam Bits
Getting started with Steam on FreeBSD is relatively straightforward(unless you get stuck with something like nVidia-driver-problems, above,or specific-game-problems, below):
- Install the helper package
This pulls in a whole bunch of Linux userland, and then spits outa bunch of instructions to follow, which are the following steps.
- Create a dedicated user I made one called steam. The instructionsspecifically call out a non-wheel user. I used adduser to do the work. (edit) It’s a good idea toput this user into the video and operator groups.
- Load kernel modules There are five modules to load; it is convenientto load them on system start, so we’ll add them to the system configuration.
(edit) Much easier is
# sysrc linux_enable=yes
- Mount filesystems The various Linux-compatibility filesystems needto be available. Here are four lines to add to
/etc/fstab
to make it work:This is automatically available after a system restart, or
mount -a
to pick up the changes. - Make shm writable This is one I have not managed to automate onreboot; it may require some scripting in
rc.local
. The shared-memorytmpfs needs to be writable for the dedicated user; I run thisafter boot:
First User Impression
After all that work as root, log in as the dedicated user,start X if that doesn’t happen automatically, open a terminaland run the script to fetch Steam preliminaries, and then runSteam itself:
Presumably you’ll need to go through the login and verification rigamarole;after that you get the same Steam overview window that you would geton a Linux system.
Note that steam
as run here is a Ruby script: if any of thepre-requisites are missing, it will complain in an informative way.
Some Games
Only games that run natively on Linux will run on FreeBSD this way; not all of them will,either. Games that use Wine or other technologies are a different story, oneI have not tried at all.
Openttd Server Hosting
I tested four games out of my library, two of which are the things I play right now (on a spare Linux machine). Since my workstation and its nVidia card doesn’t like Steam,I ended up using my Slimbook for this testing. That severely limitswhat is possible: the iGPU in the i5 10th generation chip – Comet Lake-U GT2 UHD Graphics –is not meant for heavy pixel-pushing. I’ll mention some guessed-at framerates.Again, these framerates apply only to this one machine.
- Don’t Starve Works out-of-the-box. 5-10 fps on full-screen, not playable for fun.
- OpenTTD Works out-of-the-box. Playable in fullscreen.
- Tooth and Tail Needs a workaround. Playable in fullscreen.
- Unrailed Broken. On startup, message about version GLIBC 2.25 missing.
OpenTTD is an Open Source transport-tycoongame. It’s available from FreeBSD ports as well, so there’s no need togo through Steam for this, but I just wanted to double-check.
There is a compatibility list with tested games and workarounds.
Openttd Online
Workarounds can be applied via the Launch Options in a game:right-click on a game from the games list (left-hand panel in Steam) and pick properties, or, on the game page itself,click on the gear-icon that is off to the right of the green play button.
Openttd Mods Dedicated Server
The screenshot shows what to do: choose properties, then on the general tab ofthe properties dialog, find the launch options textbox. It looks a lot like a shell-commandinput box. Fill in something there: the compatibility list suggestsvarious kinds of workarounds that can be tried.
Takeaway
Openttd Dedicated Server
It works pretty well! And, like there is an explosion of gaming-on-Linuxcontent, there’s a similar explosion of gaming-on-FreeBSD enthusiasm.If I can get my workstation to run games at all – swapping around video cardsif need be – then that’s one fewer machine I need to keep around for fun.