Concept: FOSS LAN Arcade

Good Morning from my Robotics Lab! This is Shadow_8472 and today with a continuation of my project involving the open source game Space Nerds in Space. Let’s get started!

Previously

Two weeks ago, I found Bodhi Linux, a low-weight Linux distribution based off Ubuntu. I used it to compile and run [poorly] a game called Space Nerds in Space (SNIS) on an aged system from a church office.

My Own Space Nerds Distro

I had it all figured out until I had a brilliant idea just minutes before I was sitting down to pen last week’s post. I’d carefully researched and ordered a set of thumb drives to host enough Bodhi installations for a full SNIS bridge on a keyring. I’d have spent a paragraph comparing and contrasting the merits of uniquely colored sticks vs. sticks with both A and C connectors vs. low profile sticks, and a sentence or two about not getting so low a capacity that the case and connector are the major contributing factors to the price (low profile/64 GB, by the way). My project was done except for one small idea: use Ventoy.

Sooner or later, I will update my SNIS bridge, and I’d just as soon maintain a master copy and propagate changes over to the other chips –slim operating system and all– as a bootable .iso disk image. SNIS does not need persistence, so it should be more than happy running out of a live image.

The catch point from last week was in remastering Bodhi. Its official tool doesn’t work in the current version, and so was omitted. I was learning Linux Live Kit and working with its dependencies, but I ran out of time. The afternoon after posting, I coaxed Linux Live Kit into producing an unoptimized image, but I ran out of space on the stick I was working with.

I want to squeeze as much performance out of as little computer for this project as possible. From tests last time, my weak link was memory on the graphics card. Well, how nice would it be if this hypothetical Linux distro didn’t waste system resources on such things as a full desktop environment? I’m comfortable enough on the command line. Assuming I can bully the game into running from the command line, it shouldn’t be difficult to boot straight into the game. If I’m clever, I can have the live distro self-assign a static IP based on a text file sitting beside its .ISO so a router isn’t even strictly needed to play.

Debian/Cage

But I’m dreaming months in advance, and I know it. I made an attempt to slim down Bodhi before switching to Debian 11, the latest version of Debian without a desktop environment (installing over the same small 8GB USB stick from last time). Upon request of various error messages while recompiling SNIS, I had to add packages for git, make, and wget, tools that commonly come with more fleshed out Linux installations.

In the spirit of forward compatibility, I explored Wayland compositors and found one called Cage. Cage will display a single window in full screen and close when no longer needed. It’s perfect for my application… It isn’t in the repository for Debian 11. Debian 12: yes. I went through the effort to try compiling it, made some decent progress while learning about other compilation tools (through downloading/compiling them, naturally), but slammed into a wall of dependencies trying to arrange for a library dependency of something. I got farther with Debian 12, but SNIS wasn’t happy running in Wayland. Furthermore, testing with SuperTuxKart told me I was having issues with keyboard/mouse inputs making it through to programs running in Cage. I eventually scrapped Debian for the short term and went back to Bodhi.

Why just SNIS?

I’ve spent a lot of effort focused on SNIS, but I’ll expand my potential audience if I include a number of open source games. SuperTuxKart (STK) is also ton of fun and has a lower burrier to entry. While it would be nice to compile the latest version of everything each maintenance cycle, some version of STK is in most every major Linux repository.

I spent some time researching other FOSS multiplayer LAN games for Linux without persistence. I found that I had underestimated the trope of “aim gun, shoot enemies.” I’m not opposed to the first or second person shooter genre on principle, but I did narrow my search to exclude graphic violence and the couple horror offerings I also found. I also came across an instance of a game where the engine was open source, but the art, level layouts, characters, and other assets were of mixed licensing that don’t fit with my vision for this project.

Takeaway

I went in another full circle this week. I’ve had some great ideas, but if I expect to have something to show on this project before I lose motivation, I’ll have to arrange my inspirations on a roadmap. For now, I need to focus on learning at least one Linux remastering tool, and game selection/kiosk mode can wait for later.

Final Question

Digging through a freeware list, I found another couple games I’ve played and had a good time with and a few more I’d be willing to try out. What free and open source games would you play at a party?

Space Nerds In a Tiny Space

Good Morning from my Robotics Lab! This is Shadow_8472 and today I am working on one of my smaller dream projects: a bridge simulator. Let’s get started!

Space Nerds In Space (SNIS) is a LAN game for Linux available as source code hosted on GitHub [1,2]. In it, you and several friends take on the roles of a starship bridge crew manning your stations and going on sci-fi adventures in deep space.

LAN: Local Area Network

I have access to an old church office computer with Windows XP installed. I’m gonna try running it on there. The main site [1] recommends against trying anything less powerful than a Raspberry Pi 4B, but I want an idea of how low the game can go. I’ve set my expectation to “This computer has absolutely no business running this game.”

In old or low-end machines, the weight of an operating system often becomes a significant contribution to resource consumption. At the same time, both low-overhead distros I’ve worked with before (Tiny/Micro Core and Puppy) have specialized package managers, and I’m not up to a self-guided crash course on repositories this week.

My first thought was that I’d prefer access to AUR for an “one-click install,” like how I cheesed it into working on Manjaro. I located an 8GB thumb drive, but the old church computer didn’t appear to be a fan of booting Manjaro. Instead, I researched low-overhead distros which could cleanly install packages from apt. I came across DebianDog Linux which sounded perfect until I learned development had stopped and shelved the idea as a backup plan. Puppy –as I learned– already has the means to use .deb files, so I stashed that as another backup plan in my recent experiences with Puppy, it has to be told to connect each boot.

AUR: Arch User Repository

Bodhi Linux

Further research found me Bodhi Linux, an Ubuntu derivative with downloads as light as 747MB and RAM requirements well under a gigabyte. Its native apt support means access to a large selection of standard packages, which will come in handy when compiling software.

I found my way onto the Bodhi Linux Discord server, where I reported the Arch logo of all things showing up in the installer. After I provided a screenshot from a staged second installation, we figured it was a bug with the installer Bodhi borrows from Ubuntu.

My installation was a success. I found the Moksha desktop maintained in-house [4] to be surprisingly polished, but a bit too flashy for my needs. Were I moving into it as a daily driver, I’d be disabling the animated taskbar icons. The terminal visual bell would also have to go, as I about hear sirens whenever I trip it – and I trip it frequently with my liberal use of tab to complete. I did –however– get around to removing Chromium.

Installing Space Nerds

This was neither my first attempt compiling SNIS nor my first time getting a product out the end, but it was my first time successfully doing so manually. I installed git and cloned the SNIS repository. I passed up my previous attempt by using util/install_dependencies as opposed to finding/installing dependencies manually. My first attempt at opening the compiled program I was… met with a solid green window and the computer crashing hard. I never figured out why, but on attempts where that didn’t happen, I had to wait through a 5 minute, 30-40 second loading screen where I realized later how lucky my second attempt was to have not ended in a massive flicker between black and the desktop – and this second attempt ended in a display of erroneously rendered polygons after a few minutes of play.

I inquired as to SNIS’ minimum system requirements on GitHub [2] and smcameron, the game’s creator, kindly helped me get it “working.” You can read the full discussion here: https://github.com/smcameron/space-nerds-in-space/discussions/333, but to summarize: I provided a number of logs documenting various error states and we figured my graphics card was running out of memory, as I didn’t get a light show when using lower resolution planetary textures.

Takeaway

This computer has no business running SNIS, yet it runs – if only barely. My fun this week was in coaxing this game to running on such an outdated system.

Final Question

What is your go-to low-overhead Linux distribution?

I look forward hearing your answers in the comments below or on my Socials.

Works Cited

[1] S. Cameron, “SPACE NERDS IN SPACE,”github.io, [Online]. Available:https://smcameron.github.io/space-nerds-in-space/ [Accessed May 24, 2023].

[2] S. Cameron, “space-nerds-in-space,”github.com, May 21, 2023. [Online]. Available: https://github.com/smcameron/space-nerds-in-space [Accessed May 24, 2023].

[3] Bodhi Linux, “WELCOME,” bodhilinux.com, [Online]. Available: https://www.bodhilinux.com [Accessed May 24, 2023].

[4] J. Hoogland, “Introducing Moksha Desktop,” github.io, March 3, 2014. [Online]. Available: https://mokshadesktop.github.io/Hello-World/ [Accessed May 24, 2023].