SPACE NERDS IN SPACE
An Open Source Multi-player Networked Starship Bridge Simulator for Linux
Instructions for making a bootable image for playing Space Nerds In Space
Instructions for creating a Live DVD image to run the game
- Summary
- Fresh Install Linux Mint 18
- Prerequisite package installations
- SNIS source code retrieval from Github
- SNIS build from source
- Desktop customizations & cleanup
- Test the game briefly
- Use Linux Live Kit to generate a new bootable disk image from self
- Burn/copy/cast/press freshly created image to bootable media
Warning: if this trashes your hard drive, you're on your own. This procedure worked for me, but you assume all risk and responsibility for the safety of your data. Partially based on instructions found at https://community.linuxmint.com/tutorial/view/1784 and https://wiki.debian.org/ReduceDebian
These instructions assume you have a Mint 18 linux distribution installed and running to create the bootable ISO image. You can use Virtualbox and install linux Mint 18 on the virtual machine to make the ISO, then when you're done, you can trash the virtual machine. Linux Mint 18 ISO can be found at the Linux Mint download page.
For convenience, consider creating a user "snis" with password "snis" and making it an auto-logon user during OS install.
- Boot into freshly installed Linux Mint desktop
-
#Optional trimming sudo apt-get remove mono-runtime-common gnome-orca cupsys* sudo apt-get remove thunderbird* sudo apt-get remove libreoffice* sudo apt-get remove mint-backgrounds-sarah mint-backgrounds-serena mint-backgrounds-sonya mint-backgrounds-sylvia sudo apt-get remove mint-x-icons
-
Now perform standard build of Space Nerds in Space
from main SNIS build instructions.
If the openscad package isn't around, you can get it from here:
http://www.openscad.org/downloads.html
Once SNIS build is complete, resume here:
After you exit from the game client in quickstart.sh, server may still be running.cd Games/space-nerds-in-space ./killem.sh
- Desktop customizations:
curl -LO https://apod.nasa.gov/apod/image/1406/hud2014_1280.jpg mv hud2014_1280.jpg ~/Pictures gsettings set org.cinnamon.desktop.background picture-uri "file:///$HOME/Pictures/hud2014_1280.jpg" cp /usr/share/pix/icons/hicolor/22x22/actions/browser-mode.png /usr/lib/linuxmint/mintMenu/mintMenu.png sed -i 's/^/SNIS Live (based on/' /etc/issue echo ')' >> /etc/issue cat <<__EOF__>~/Desktop/SNIS_Client.desktop [Desktop Entry] Version=1.0 Type=Application Terminal=false Exec=/home/snis/Games/space-nerds-in-space/bin/snis_client --fulscreen Path=/home/snis/Games/space-nerds-in-space/ Name=SNIS Client Comment=Space Nerds in Space Game client Icon=/usr/share/icons/gnome/32x32/categories/applications-games.png __EOF__ chmod ug+x ~/Desktop/SNIS_Client.desktop
Create webbrowser bookmark and set homepage to SNIS homepage. - Prerequisites for live image building:
apt-get install squashfs-tools genisoimage
- Now clean up the game environment before we prepare the disk image (and yes aptitude takes the weird tilde options for some reason):
aptitude purge ~c aptitude unmarkauto ~M apt-get clean; rm -rf /var/cache/debconf/*.dat-old; rm -rf /var/lib/aptitude/*.old; rm -rf /var/lib/dpkg/*-old; rm -rf /var/cache/apt/*.bin; updatedb history -c rm /root/.bash_history rm /root/.nano_history rm ~snis/.bash_history rm ~snis/.nano_history history -c
- Download the Linux Live Kit to /tmp and extract.
sudo mkdir /LINUXLIVEKIT sudo chown snis /LINUXLIVEKIT cd /LINUXLIVEKIT curl -LO https://github.com/Tomas-M/linux-live/tarball/master ls -lF gunzip *gz tar xvf *.tar cd linux-live*
-
Give your ISO a description (which will be embedded as the name of the CD or USB stick onto which the ISO is burnt) by editing the file named "config". Don't pick too long of a name though because if you do, it won't work.
sed -i 's/^LIVEKITNAME="linux"/LIVEKITNAME="SNISlinux"/' config sudo ./tools/isolinux.bin.update
- Now build filesystem and generate ISO image, which will take a while:
sudo ./build && sudo /tmp/gen_SNISlinux_iso.sh
ISO image will be made right in /tmp ; if you will be burning to DVD, this is what you need. There will also be a directory named something like SNISlinux-data-##### (where ##### is some integer) which is the package for bootable USB flash volume. Although the linux live website mentions a tar file, I did not find one, and this directory appears to be the goods.
- Virtualbox has some integration features to help you get files off of the guest virtual machine, or you can use an SFTP client to retrieve the files from the virtual machine to the host. But you can also expose a flashdrive to the virtual machine via the Devices menu in VirtualBox.
Burn/copy/write this image to your DVD. Etcher is a really nice Windows-based image writer.
Or:
USB Media build:
There was some trouble with the automounting of the USB flash drive (which was formatted with vfat) due to showexec mount option. Apparently the udisks2 automounter used by Linux Mint does not currently have a method for changing the mount options. The bootinst.sh file errored out with this option set. Therefore it is necessary to remount the flash media manually without this option.
# Just switch to root at this point. sudo su - MOUNTLINE=( $(mount | grep /media/ | sed 's#showexec,##') ) MOUNTOPT="rw,owner,umask=000,users,exec" udisksctl unmount --block-device ${MOUNTLINE[0]} mkdir /mnt/usbmedia mount -t ${MOUNTLINE[${#MOUNTLINE[@]}-2]} -o $MOUNTOPT ${MOUNTLINE[0]} /mnt/usbmedia
cd /tmp/SNISlinux-data* cp -r SNISlinux /mnt/usbmedia/ cd /mnt/usbmedia/SNISlinux/boot sh ./bootinst.sh cd /tmp sync umount /mnt/usbmedia
You can now safely remove the USB media, repeat just this last numbered step to get all the bootable USB media you need.
Then to run the game, boot up all your machines from the built DVD or USB media. Log in as user snis (if you did not opt for auto-login). /home/snis/Games/space-nerds-in-space/ is where the game executables can be launched from.
Repeat for several machines on your LAN, say, five of them or so.
On one machine that is connected to a projector, note the IP address: (run ifconfig from a command terminal window to figure this out.)
Then start the snis client:
bin/snis_client
From there, start the lobby server on localhost, start the gameserver, connect to lobby, and connect to the gameserver.
Note the shipname and password you use (make up what you want, but note that you must use a password).
On the remaining machines, start snis_client, replace the lobby host "localhost" with the ip address noted above, fill in only the shipname and password as above, and connect to the lobby, then to the gameserver. You can be choosy about the 'roles' for each station at this point, but you don't have to.
That's it.
btw, prior to making live dvd iso's and burning a bunch of dvds, we tried to run the game in linux installed to virtual machines on the windows boxes -- that didn't work out so well, performance was kind of crap for whatever reason. With the dvds, performance was fine at least for the few minutes the network was working. They were relatively low performance, inexpensive USB flash drives though.
One other side note: as of Mint 18.3, I found that the install of apparmor was actually blocking dhclient from running and getting an IP address. Somewhere on one of the stackexchange sites I found some instructions to overcome this with some edits in /etc/apparmor.d/.
The code is licensed under the GPL v. 2, or at your option, any later version. Audio files have various other licenses, typically some variant of a Creative Commons license.