I was going to write one up, so sorry about that. Got Linux? I'm doing a write-up for Linux. Here we go.
Important links:
General SSH Server guidelinesCompilingStart by installing sshd, so give your computer a sudo apt-get install openssh-server, or maybe a yum install openssh-server if you're a yum kind of person. This'll let you (and other players) connect to your computer through ssh.
If you want to compile the latest experimentals and keep those up to date, you're gonna want to apt-get install github too. Sudo apt-get install git, and while you're at it, libncurses5-dev, libncursesw5-dev, and g++.
Got your own router? We're gonna have to do some configurations. Try connecting to it at 192.168.2.1 or 192.168.0.1 or 192.168.1.1 or somesuch. You'll want to find the area that says something about port forwarding or port range forwarding or access controls. Also, you're going to need to find out the local IP assigned to the computer you'll be hosting from. Your router might tell you, otherwise, pop open the terminal on your host machine and type in ifconfig. If you're connected by cable, you'll want to look at eth0 (ethernet zero, since we count up from zero in computer land), if by wifi, wlan0. You'll look for a line that says inet addr:xxx.xxx.x.x. This should be your router-assigned IP and the IP that you're going to tell the router to move traffic to.
Got in your router? Got your computer's IP? Great. Go to port forwarding. SSH communicates normally on port 22. So, you have to tell your router to move incoming traffic on port 22 to the local IP address you'd found before. Every router's different, but maybe I'll hash up a how-to through dd-wrt or a standard Belkin router later.
From here, we're going to do one of two things- either serve the world from our IP or get an URL served through a (dynamic) DNS service. I'd suggest ydns.eu. It's free and it works.
Just gonna do your IP? Google "my ip" and Google will give you (hopefully) your router's IP address. Otherwise, sign up for yon free service and register a new url. Y'can use the url in place of your router's IP, or for other people to connect to it.
All done playing with your router? Back to Linux. Sudo or become root for the next bits.
You're gonna want to do adduser xxxx, with xxxx being the new name of your choice. I'd suggest cataclysm for the username. Give it a password (you're gonna be sharing this one, so make sure it's not the same as any of your other logins, or root). This'll make a new user, we'll call it cataclysm for the sake of consistency. Move into the new account's home page. Sudo git clone git://github.com/CleverRaven/Cataclysm-DDA.git to make the folder. cd into your new Cataclysm-DDA folder and give it a make command. It should do the rest of compiling from there.
Great, now your cataclysm account has a Cataclysm-DDA folder containing cataclysm. To ensure that your cataclysm login can write around inside its folder and so the program can write saves, do sudo chmod -R a+rw /home/cataclysm and sudo chmod u+x /home/cataclysm/Cataclysm-DDA/cataclysm so your cataclysm user can launch it.
At this point, I'd suggest a shell script to control how the user logs in. Here's mine for example:
#! /bin/bash
clear
echo "Enter your character name:"
read isname
cd Cataclysm-DDA
./cataclysm --shared --competitive --username $isname
exit
Your script should ask for a username, put that in a variable, and then launch cataclysm as:
/home/cataclysm/Cataclysm-DDA/cataclysm --shared --username $name (assuming $name is the variable you assigned the previously requested username to) --competitive
The shared command makes your users use one unified world, the username command lets you use only the character with the matching username (deters people from using other peoples' people), and competitive keeps people from using the debug menu. You probably won't need to play with administrator logins since you can just launch cataclysm as your computer's primary login to configure worlds or characters or whatever.
Following that, the exit command. This is the end of your shell script. I'll barf up my startup script as soon as I get back to my room for comparison.
Finally, you want users to only use this script when they log in as cataclysm, so do sudo chsh -s /home/cataclysm/script.sh cataclysm with whatever you named your script as. You might need to do a sudo chmod u+x script.sh to make sure that cataclysm can run this script.
Following that, you're done! ssh cataclysm@url to start playing. With luck. Hopefully. You might have to restart the computer once. As before, there are render problems when using putty unless putty is launched with certain options (if there's a way to configure this server side, I'd love to hear it).
If there's anything I missed, let me know. I'm sure there is. :X