<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
    <channel>
        <title>Linux Guild's site</title>
        <link>http://www.byond.com/members/LinuxGuild</link>
        <description></description>
        <lastBuildDate>Sat, 11 Feb 2012 04:07:59 +0000</lastBuildDate>
        <language>en-us</language>
    
                <item>
            <title>Loss of Data</title>
            <link>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=198355</link>
            <guid>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=198355</guid>
            <pubDate>Wed, 25 Jan 2012 21:28:43 +0000</pubDate>
            
            <comments>http://www.byond.com/members/LinuxGuild?command=view_comments&amp;post=198355#comments</comments>
            
            <description>I'll look into talking to Tom to figure out if we can get all of our old information back.&lt;br&gt;
&lt;br&gt;
The guides needed to be updated anyway, but feel free to continue posting here!</description>
        </item>
                <item>
            <title>Writing code in DM on Linux</title>
            <link>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=109964</link>
            <guid>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=109964</guid>
            <pubDate>Thu, 24 Feb 2011 00:06:46 +0000</pubDate>
            
            <comments>http://www.byond.com/members/LinuxGuild?command=view_comments&amp;post=109964#comments</comments>
            
            <description>Since there is no DreamMaker IDE for Linux, you're going to have to come up with a different workflow for Linux. Here's a little information about mine, and you can decide whether you like some of it, maybe pick up a thing or two, or take whatever you want from it :)&lt;br&gt;
&lt;br&gt;
I use vim as an editor for DM files, and I've given them C highlighting to get the important keywords a decent color. I'd like to try my hand at a .vim highlighting file some day, but the thought of doing that for DM just gives me all kinds of itches to run away screaming.&lt;br&gt;
&lt;br&gt;
Beyond syntax highlighting, I found a few issues at first:&lt;br&gt;
&lt;br&gt;
1) The DreamMaker command is long and ugly (Starts with a big letter, etc)&lt;br&gt;
2) Zipping stuff up requires you type zip library_name.zip *.dm *.dme - That can be shortened ^^&lt;br&gt;
3) If you have a repository with your game, and it uses libraries, then those libraries don't get downloaded automatically. DreamDownload doesn't download them automatically either.&lt;br&gt;
4) If you use a library someone else wrote, but they have bug(s) they haven't fixed, and you want to deploy your code so others can use it, then you'll need to tell them to fix the code!&lt;br&gt;
5) Jumping between files takes time&lt;br&gt;
&lt;br&gt;
For some of this, I wrote a simple Makefile. This is the 'basic' template version:&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;
TARGET=$(notdir $(basename $(CURDIR)))
all:
        DreamMaker $(TARGET).dme

clean:
        rm -rf $(TARGET).zip
        rm -rf $(TARGET).dmb
        rm -rf $(TARGET).rsc

zip:
        rm -rf $(TARGET).zip
        zip -R $(TARGET).zip *.dm *.dme
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
To compile: Type make (:make inside vim works as well; I've bound :make to F5).&lt;br&gt;
&lt;br&gt;
To zip the project up, type make zip&lt;br&gt;
&lt;br&gt;
To remove dmb, rsc and zip files, type make clean.&lt;br&gt;
&lt;br&gt;
The Makefile will assume that your .dme file is named exactly the same as the directory its in - If that isn't the case, the Makefile will screw things up.&lt;br&gt;
&lt;br&gt;
In order to get around the issue of library dependencies, my own game has a 'make depend', that looks like this:&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;
depend:
        DreamDownload byond://Alathon.services
        DreamDownload byond://Alathon.telnet_input
        DreamDownload byond://Alathon.callwrapper
        DreamDownload byond://AbyssDragon.Parser
        cp parser.patch ~/.byond/lib/abyssdragon/parser
        cd ~/.byond/lib/abyssdragon/parser &amp;&amp; patch -p1 -i parser.patch Parser.dm
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
It will download the libraries I need, and will patch AbyssDragon.Parser because theres a bug with numbers in there. The patch was created by running 'diff -Naur oldfile fixedfile &amp;gt;&amp;gt; parser.patch', and can be applied as you can see, with the patch command. Patches are handy stuff!&lt;br&gt;
&lt;br&gt;
I can also really suggest &lt;a href=&quot;https://github.com/joelthelion/autojump/wiki&quot;&gt;autojump&lt;/a&gt;. It makes moving around your hard-drive a *lot* faster, if you're not a cd or two away from where you want to be.&lt;br&gt;
&lt;br&gt;
As for actually working in vim, I use a VIM plugin called winmanager, you can find a patched up version of it &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1440&quot;&gt;here&lt;/a&gt;. Below is an example screenshot of me inside a project, with a few files open (They're listed in the 'File List' in the bottom left), and the file browser in general on the left side.&lt;br&gt;
&lt;br&gt;
I've mapped the file browser to an easy key (F2), so that I can open and close it at will - If I need more screen real-estate to work on some code, I hit F2 and it closes. I need to switch to a file? I hit F2 and it opens right back up the way it was. It also works with mouse interaction, so you can click on files to open them.&lt;br&gt;
&lt;br&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://img820.imageshack.us/i/201102241555461366x768s.png/&quot;&gt;Click to view VIM screenshot&lt;/a&gt;</description>
        </item>
                <item>
            <title>Linux: DD setup and hosting - beginner to advanced</title>
            <link>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=109958</link>
            <guid>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=109958</guid>
            <pubDate>Wed, 23 Feb 2011 21:50:21 +0000</pubDate>
            
            <comments>http://www.byond.com/members/LinuxGuild?command=view_comments&amp;post=109958#comments</comments>
            
            <description>This is my step-by-step protocol for setting up BYOND for Linux. It includes everything from installation up through some more-advanced implementations, such as how to set up an automatic game launcher or an auto-updater.&lt;br&gt;
&lt;br&gt;
note: terminal commands are shown in code quotes&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
----- Standard Use: Installing BYOND -----&lt;br&gt;
&lt;br&gt;
1) install your favorite flavor of Linux and update your system&lt;br&gt;
&lt;br&gt;
2) open your browser and visit &lt;a href=&quot;http://www.byond.com/download/&quot;&gt;http://www.byond.com/download/&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
3) right click the link for &quot;Linux&quot; and then click &quot;copy link location&quot;&lt;br&gt;
&lt;br&gt;
4) open a terminal window&lt;br&gt;
&lt;br&gt;
5) download the latest version of BYOND for Linux:&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
wget [middle click]
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
middle click pastes the copied link, so your command should look something like this:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
wget http:&lt;span class=&quot;dmcomment&quot;&gt;//www.byond.com/download/build/479/479.1086_byond_linux.zip&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
(but with the latest Linux version). Press enter to download the files.&lt;br&gt;
&lt;br&gt;
6) unzip the install files
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
unzip *_byond_linux.zip
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
7) install BYOND. Here you have two options. You can either &quot;source&quot; BYOND for local use (can only be used by a single user and has some other limitations) or you can install BYOND as root for use by all users. You need to have administrator privileges to install BYOND for all users.&lt;br&gt;
--- 7a) to install as root:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
cd byond&lt;br&gt;sudo make install&lt;br&gt;[enter your password]&lt;br&gt;cd ..&lt;br&gt;rm -rf *byond*
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
--- 7b) to install for local use:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
nano ~/.bashrc
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
add the line:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
source /home/user/byond/bin/byondsetup
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
(You can install BYOND elsewhere if you like; just make sure you source &quot;byondsetup&quot;, wherever it's located)&lt;br&gt;
Ctrl-O to save; Ctrl-X to exit&lt;br&gt;
&lt;br&gt;
Congratulations, you can now host games in Linux! Simply navigate to the location of your host files and use the command:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
DreamDaemon [yourgame].dmb [port] [options]
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
Options can include things like -invisible to host in invisible mode, -trusted to allow access outside of the game folder, etc.&lt;br&gt;
If you use the command
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
DreamDaemon
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
by itself, it will show you a list of valid options.&lt;br&gt;
&lt;br&gt;
As an example, your game hosting command might look something like this:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
DreamDaemon MyGame.dmb 1234 -invisible
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
now, for another basic Linux concept:&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
----- Standard Use: Running in Background -----&lt;br&gt;
&lt;br&gt;
If you host a game in the terminal and then close the terminal, logout, shutdown, or press Ctrl-C, it will kill your game. To prevent this from happening, you can run your game in the background by adding a '&amp;' to the end of your DreamDaemon command. e.g.:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
DreamDaemon mygame.dmb 1234 -invisible &amp;amp;&lt;br&gt;[press enter once again]
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
Now you can close the terminal or even logout completely, and your game will continue running. (Of course, if you reboot your computer, it will kill the game.)&lt;br&gt;
&lt;br&gt;
Now for the cool stuff...&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
----- Intermediate: Automatic Game Hosting -----&lt;br&gt;
&lt;br&gt;
This is a great feature if you want a game to run automatically after a server reboot, if you want your game to go back up after crashes even if you aren't around, or if you want to setup a simple auto-updater for your game (more on that later). Although it is possible to setup auto-hosting using other techniques, this is the method that I use.&lt;br&gt;
&lt;br&gt;
First, make a folder for scripts (in a place that's easy to find/manage). Let's use the home directory. In the terminal:&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
cd&lt;br&gt;mkdir cron&lt;br&gt;cd cron&lt;br&gt;nano
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
(I recommend nano because it's universal, though I prefer gedit.)&lt;br&gt;
&lt;br&gt;
Now, &quot;copy&quot; the following code and paste it into the nano text editor by middle clicking.&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
&lt;span class=&quot;dmpreprocessor&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmkeyword&quot;&gt;for&lt;/span&gt; t &lt;span class=&quot;dmkeyword&quot;&gt;in&lt;/span&gt; {1..12}&lt;br&gt;&lt;span class=&quot;dmkeyword&quot;&gt;do&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;if&lt;/span&gt; [ -z &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;$(ps -C DreamDaemon | grep DreamDaemon)&amp;quot;&lt;/span&gt; ]&lt;br&gt;    then&lt;br&gt;        /usr/local/bin/DreamDaemon /path/&lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt;/game.dmb port -options &amp;amp;&lt;br&gt;    fi&lt;br&gt;    sleep 5&lt;br&gt;done
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
So what does this script do? This script checks every 5 seconds (for a total of 55 seconds) to see whether DD is running. If it isn't, it executes DD to re-launch your game.&lt;br&gt;
&lt;br&gt;
some notes:&lt;br&gt;
1) I recommend using the full path for DD for reasons I'll show later. If you installed BYOND for local use, you will need to edit the path as applicable.&lt;br&gt;
2) /path/to/game.dmb is the location of your game's .dmb, e.g. /home/user/mygame/mygame.dmb&lt;br&gt;
3) port is a number, e.g. 1234&lt;br&gt;
4) for info on -options, use the DreamDaemon command in terminal&lt;br&gt;
5) use '&amp;' to run in background&lt;br&gt;
&lt;br&gt;
Once you've configured the file as needed, use Ctrl-O to save it (call it launch_mygame.sh), and Ctrl-X to exit nano.&lt;br&gt;
&lt;br&gt;
Now we need to configure crontab to run the script.&lt;br&gt;
&lt;br&gt;
note: You have the option of using your local user-specific crontab; however, if you do so, the script will only be executed while you are logged in (whether you are sitting in front of the machine or using SSH). If possible, I recommend using the &quot;root&quot; crontab; doing so will execute your script &lt;i&gt;any time the computer is running, even if no one is logged in&lt;/i&gt;.)&lt;br&gt;
&lt;br&gt;
to use the &quot;root&quot; crontab, type:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
sudo su&lt;br&gt;[enter your password &lt;span class=&quot;dmkeyword&quot;&gt;if&lt;/span&gt; necessary]
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
The next steps are the same regardless of whether you're using the &quot;root&quot; or &quot;user&quot; crontab:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
crontab -e
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
If you've never used crontab before, it will ask you to select an editor. Use nano unless you're familiar with one of the others. Scroll to the bottom of the script and add the line:&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
* * * * * /bin/bash /home/user/cron/launch_mygame.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
(obviously, you need to edit /home/user as applicable)&lt;br&gt;
Ctrl-O to save, and Ctrl-X to exit&lt;br&gt;
if logged in as root:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
exit
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
So what does this do? * * * * * means that, every minute, the job scheduler will run the command specified, i.e. running your launch_mygame.sh script using bash. Any output is sent to /dev/null and ignored&lt;br&gt;
&lt;br&gt;
Congratulations, you now have an auto-launching BYOND-game in Linux.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
----- Advanced: Multi-Auto-Hosting -----&lt;br&gt;
&lt;br&gt;
As you may have noticed in the previous section, launch_mygame.sh only checks to see &lt;b&gt;if&lt;/b&gt; DreamDaemon is running
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
&lt;span class=&quot;dmkeyword&quot;&gt;if&lt;/span&gt; [ -z &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;$(ps -C DreamDaemon | grep DreamDaemon)&amp;quot;&lt;/span&gt; ]
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
but this doesn't specify &lt;b&gt;what game&lt;/b&gt; DD is running.&lt;br&gt;
&lt;br&gt;
So here we'll set up a script to auto-run TWO different games.
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
cd ~/cron&lt;br&gt;nano launch_mygame.sh
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
now edit the file so it looks like this:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
&lt;span class=&quot;dmpreprocessor&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmkeyword&quot;&gt;for&lt;/span&gt; t &lt;span class=&quot;dmkeyword&quot;&gt;in&lt;/span&gt; {1..12}&lt;br&gt;&lt;span class=&quot;dmkeyword&quot;&gt;do&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;if&lt;/span&gt; [ -z &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;$(ps -C CustomDaemon1 | grep CustomDaemon1)&amp;quot;&lt;/span&gt; ]&lt;br&gt;    then&lt;br&gt;        /usr/local/bin/CustomDaemon1 /path/&lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt;/game1.dmb port -options &amp;amp;&lt;br&gt;    fi&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;if&lt;/span&gt; [ -z &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;$(ps -C CustomDaemon2 | grep CustomDaemon2)&amp;quot;&lt;/span&gt; ]&lt;br&gt;    then&lt;br&gt;        /usr/local/bin/CustomDaemon2 /path/&lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt;/game2.dmb port -options &amp;amp;&lt;br&gt;    fi&lt;br&gt;    sleep 5&lt;br&gt;done
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
You can choose any name you want in place of CustomDaemon.&lt;br&gt;
&lt;br&gt;
Our modified script now checks, for each game, whether its custom implementation of DD is running. Now we need to setup the custom daemons. If you've installed BYOND as root:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
sudo su&lt;br&gt;[enter password &lt;span class=&quot;dmkeyword&quot;&gt;if&lt;/span&gt; applicable]&lt;br&gt;cd /usr/local/bin&lt;br&gt;ln -s /usr/local/byond/DreamDaemon CustomDaemon1&lt;br&gt;ln -s /usr/local/byond/DreamDaemon CustomDaemon2&lt;br&gt;exit
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
If you're running BYOND for local use:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
cd ~/byond/bin&lt;br&gt;ln -s DreamDaemon CustomDaemon1&lt;br&gt;ln -s DreamDaemon CustomDaemon2
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
And... we're done! Now, using CustomDaemon1 or CustomDaemon2 in the terminal launches DD but reports (in top or ps -x) as if it were a program called CustomDaemon{1,2}. Thus our launch_mygame.sh script can check whether each program is running based on whether its dedicated daemon is running.&lt;br&gt;
&lt;br&gt;
note: If you installed as root, your symlinks will be retained even if you update your BYOND version using &quot;sudo make install&quot; (e.g. when a new linux version comes out). If you installed for local use, you can retain your symlinks by installing BYOND thus:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
unzip *_byond_linux.zip
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
and when prompted to replace a file, enter 'A' for all. In this way, the BYOND files will be updated but your symlinks won't be effected.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
----- Advanced: Auto-Updater -----&lt;br&gt;
&lt;br&gt;
So you already have a system in place to host your game whenever it's down. Now let's take it a step further, to have our game check whether an update is present, kill itself, and then relaunch using the updated host files.&lt;br&gt;
&lt;br&gt;
First, create a game subfolder called update.
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
cd ~/path/&lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt;/mygame&lt;br&gt;mkdir update
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
Now, edit your game (yes, you can do this through bash by parsing the job ID, but it's easiest this way) and add the following, either to your startup script or into your game's equivalent of crontab.
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
spawn() &lt;span class=&quot;dmkeyword&quot;&gt;for&lt;/span&gt;()&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;if&lt;/span&gt;(fexists(&lt;span class=&quot;dmstring&quot;&gt;&amp;quot;update/mygame.dmb&amp;quot;&lt;/span&gt;))&lt;br&gt;        world.Del()&lt;br&gt;    sleep(10)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
Thus, your game will check once per second to see whether an update is available (and shut itself down if there is an update available).&lt;br&gt;
&lt;br&gt;
note: Other implementations of this system are possible, such as FFO's automatic 10-minute shutdown timer when an update is detected. (See? There &lt;b&gt;is&lt;/b&gt; a reason to do this in-game instead of using bash...)&lt;br&gt;
&lt;br&gt;
Now we edit launch_mygame.sh to implement the update:
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
    ...&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;if&lt;/span&gt; [ -z &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;$(ps -C MyCustomDaemon | grep MyCustomDaemon)&amp;quot;&lt;/span&gt; ]&lt;br&gt;    then&lt;br&gt;        mv /path/&lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt;/mygame/update&lt;span class=&quot;dmcomment&quot;&gt;/* /path/to/mygame/&lt;br&gt;        /usr/local/bin/MyCustomDaemon /path/to/mygame/mygame.dmb port -options &amp;amp;&lt;br&gt;    fi&lt;br&gt;    ...&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
Thus, if there's anything in the update folder, it will be moved to the game's root folder and overwrite it. If there's nothing in the folder, the mv error is ignored (sent to /dev/null as you may recall), and the script launches the existing host files. This allows you to update your game by either depositing a .dmb in the appropriate folder (e.g. using scp, SSH Secure Shell, or equivalent) or by uploading it directly through your game.</description>
        </item>
                <item>
            <title>Recent Going-Ons</title>
            <link>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=109788</link>
            <guid>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=109788</guid>
            <pubDate>Sun, 20 Feb 2011 08:07:23 +0000</pubDate>
            
            <comments>http://www.byond.com/members/LinuxGuild?command=view_comments&amp;post=109788#comments</comments>
            
            <description>Recently, Tekken and I were sitting in Chatters discussing the pager and DS's performance on Wine, and how we wished that BYOND had some more proper support for Linux. We kept discussing when all of a sudden, before we even knew it, a new project had sprouted. We decided to create a new Pager for Linux and Mac.&lt;br&gt;
&lt;br&gt;
We sat there in Chatters, pondering and pondering on the technical feasibility of it, the work that would need to be done, demand for such a project, and whether or not it was even a good idea. Shortly after, we set about to design such a beast.&lt;br&gt;
&lt;br&gt;
During our discussion on the design, we settled on a few key points that had to apply to the new pager:&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;It had to have a minimalistic interface&lt;/li&gt;
&lt;li&gt;It had to have a tabbed interface for chat for the sake of readability&lt;/li&gt;
&lt;li&gt;It had to be amazing&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;br&gt;
We've yet to settle on an ultimate final design, but here's a mock-up of what you might see as pretty much the contents of the window when starting this pager:&lt;br&gt;
&lt;br&gt;
&lt;img src=&quot;http://files.byondhome.com/Audeuro/main.png&quot;&gt;&lt;br&gt;
&lt;br&gt;
We wanted a balance between a minimalistic and a functional interface and we had personally settled on the above look (it will look much better in reality). It's generally equivalent to a tabbed interface, without the tabs. The games and friends information are hidden by default and viewable by expanding the &quot;Games&quot; and &quot;Friends&quot; items. Opening one closes the other, but the state of the one that gets closed is preserved for when it is re-opened.&lt;br&gt;
&lt;br&gt;
Now you might be wandering why we decided to write a post about it when we don't even have anything to physically show yet, and the answer is simple. We would like your input. None of this design is quite set in stone yet, and it's sure to change from what we currently envision it as. We would like to hear from you, the Linux user, in the comments section of this post. What would you want to see in your pager?</description>
        </item>
                <item>
            <title>(Cheap?) Linux Games (Humble Bundle)</title>
            <link>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=106173</link>
            <guid>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=106173</guid>
            <pubDate>Sat, 25 Dec 2010 07:46:39 +0000</pubDate>
            
            <comments>http://www.byond.com/members/LinuxGuild?command=view_comments&amp;post=106173#comments</comments>
            
            <description>I forgot to post it on here until now, but here's an awesome way to get some Linux games.&lt;br&gt;
I loved Braid, best game I've played in a long time. All of the games in the humble bundle are for Linux, so I believe it's total of 11 games for your Linux desktops!&lt;br&gt;
&lt;br&gt;
Merry Christmas to all!&lt;br&gt;
&lt;a href=&quot;http://www.humblebundle.com/&quot;&gt;http://www.humblebundle.com/&lt;/a&gt;</description>
        </item>
                <item>
            <title>Linux game</title>
            <link>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=104834</link>
            <guid>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=104834</guid>
            <pubDate>Mon, 22 Nov 2010 14:39:09 +0000</pubDate>
            
            <comments>http://www.byond.com/members/LinuxGuild?command=view_comments&amp;post=104834#comments</comments>
            
            <description>The only game i have been able to find for linux is Urbanterror, google it, its actually pretty owange for a shooting game,. and if you cant find anything to play this one is the easiest to download. if you find any other games that run on linux please god tell me. preferabley mmorpg's</description>
        </item>
                <item>
            <title>Anyone want to take a crack at updating the tutorials?</title>
            <link>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=103430</link>
            <guid>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=103430</guid>
            <pubDate>Tue, 19 Oct 2010 06:16:53 +0000</pubDate>
            
            <comments>http://www.byond.com/members/LinuxGuild?command=view_comments&amp;post=103430#comments</comments>
            
            <description>Some of the tutorials on the site are pretty outdated.&lt;br&gt;
Could someone take a crack at some of the guides with detailed steps and screenshots?&lt;br&gt;
Thanks!</description>
        </item>
                <item>
            <title>Installing Native Dream Seeker (outdated)</title>
            <link>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=103415</link>
            <guid>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=103415</guid>
            <pubDate>Mon, 18 Oct 2010 20:06:52 +0000</pubDate>
            
            <comments>http://www.byond.com/members/LinuxGuild?command=view_comments&amp;post=103415#comments</comments>
            
            <description>Originally posted by Mikau.&lt;br&gt;
&lt;br&gt;
It's come to my attention that for some odd reason, people are still attempting to use my old instructions to get a working copy of DreamSeeker going, which they're very out of date. So here is some very simple instructions on how to get this working.&lt;br&gt;
&lt;br&gt;
I actually did this using PuTTY on my schools network, in which, I have no administrator access, so there's no reason you can't get it working yourself.&lt;br&gt;
&lt;br&gt;
This is going by the assumption that you're starting in the home directory(~), and have make already installed. If you don't, you'll want to google how to install make for your flavour of linux.&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
mkdir BYOND&lt;br&gt;cd BYOND&lt;br&gt;wget http:&lt;span class=&quot;dmcomment&quot;&gt;//www.byond.com/download/build/354/354_byond_linux.zip&lt;/span&gt;&lt;br&gt;unzip 354_byond_linux.zip&lt;br&gt;cd byond&lt;br&gt;make here&lt;br&gt;cd bin&lt;br&gt;byondsetup&lt;br&gt;wget http:&lt;span class=&quot;dmcomment&quot;&gt;//www.byond.com/download/build/gcc/libstdc++.so.5&lt;/span&gt;&lt;br&gt;export LD_LIBRARY_PATH=~/BYOND/byond/bin&lt;br&gt;DreamSeeker
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
Version 354 was the last known version of BYOND to actually include a Dream Seeker, which means that your Dream Seeker is going to be massively out-dated. You'll also be very unlikely to find any join-able game, since your Dream Seeker will be from before BYOND 4.0, so you'll need to find a server that's being hosted on a version before then. So if you really want to play something in the terminal, you're going to have to make it yourself. If you do, tell me. I want to play.</description>
        </item>
                <item>
            <title>Installing BYOND Server on Linux.</title>
            <link>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=103414</link>
            <guid>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=103414</guid>
            <pubDate>Mon, 18 Oct 2010 19:57:57 +0000</pubDate>
            
            <comments>http://www.byond.com/members/LinuxGuild?command=view_comments&amp;post=103414#comments</comments>
            
            <description>FIXME.</description>
        </item>
                <item>
            <title>Help  BYOND install Ubuntu 10.04</title>
            <link>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=103369</link>
            <guid>http://www.byond.com/members/LinuxGuild?command=view_post&amp;post=103369</guid>
            <pubDate>Sun, 17 Oct 2010 22:39:10 +0000</pubDate>
            
            <comments>http://www.byond.com/members/LinuxGuild?command=view_comments&amp;post=103369#comments</comments>
            
            <description>Ok i have just recently switched to Linux because i want to Migrate from being a windows user to a linux user because microsoft is ran by a retard and there software is buggy and it takes them forever to coem out with fixes so i thought why stay with soemthing buggy when you can get a stable i was originaly going go to with XP but do new newer hardware is not comapitble with XP i went with Ubuntu&lt;br&gt;
&lt;br&gt;
im a complete Linux noob so if i could get a step by step explantion of a w ay to install BYOND non wine related wine doesnt reconize my sound drivers so i have no sound in wine&lt;br&gt;
&lt;br&gt;
Thanks&lt;br&gt;</description>
        </item>
            
    </channel>
</rss>


