{"id":1243,"date":"2023-06-05T12:00:00","date_gmt":"2023-06-05T19:00:00","guid":{"rendered":"https:\/\/letsbuildroboticswithshadow8472.com\/?p=1243"},"modified":"2023-06-05T11:24:58","modified_gmt":"2023-06-05T18:24:58","slug":"concept-foss-lan-arcade","status":"publish","type":"post","link":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2023\/06\/05\/concept-foss-lan-arcade\/","title":{"rendered":"Concept: FOSS LAN Arcade"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">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\u2019s get started!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Previously<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">My Own Space Nerds Distro<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I had it all figured out until I had a brilliant idea just minutes before I was sitting down to pen last week\u2019s post. I\u2019d carefully researched and ordered a set of thumb drives to host enough Bodhi installations for a full SNIS bridge on a keyring. I\u2019d 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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sooner or later, I will update my SNIS bridge, and I\u2019d just as soon maintain a master copy and propagate changes over to the other chips \u2013slim operating system and all\u2013 as a bootable .iso disk image. SNIS does not need persistence, so it should be more than happy running out of a live image.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The catch point from last week was in remastering Bodhi. Its official tool doesn\u2019t 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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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\u2019t waste system resources on such things as a full desktop environment? I\u2019m comfortable enough on the command line. Assuming I can bully the game into running from the command line, it shouldn\u2019t be difficult to boot straight into the game. If I\u2019m 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\u2019t even strictly needed to play.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Debian\/Cage<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">But I\u2019m 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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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\u2019s perfect for my application\u2026 It isn\u2019t 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\u2019t 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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why just SNIS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I\u2019ve spent a lot of effort focused on SNIS, but I\u2019ll 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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I spent some time researching other FOSS multiplayer LAN games for Linux without persistence. I found that I had underestimated the trope of \u201caim gun, shoot enemies.\u201d I\u2019m 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\u2019t fit with my vision for this project.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Takeaway<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I went in another full circle this week. I\u2019ve had some great ideas, but if I expect to have something to show on this project before I lose motivation, I\u2019ll 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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Final Question<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Digging through a freeware list, I found another couple games I\u2019ve played and had a good time with and a few more I\u2019d be willing to try out. What free and open source games would you play at a party?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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\u2019s 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 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2023\/06\/05\/concept-foss-lan-arcade\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Concept: FOSS LAN Arcade&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[2],"tags":[236,241],"class_list":["post-1243","post","type-post","status-publish","format-standard","hentry","category-linux","tag-bodhi-linux","tag-wayland-cage"],"_links":{"self":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1243","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/comments?post=1243"}],"version-history":[{"count":1,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1243\/revisions"}],"predecessor-version":[{"id":1244,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1243\/revisions\/1244"}],"wp:attachment":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/media?parent=1243"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/categories?post=1243"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/tags?post=1243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}