OLD: Installing an ArmA III server on Ubuntu

Update: Bohemia Interactive has released Linux server binaries! This guide is no longer relevant. Updated guide to follow shortly.

ArmA III is the most frustrating game server I've every tried installing on Ubuntu. For this guide I used a Ubuntu 13.10 droplet from DigitalOcean to test everything.
(2GB Memory, 2 Cores, 40GB SSD Disk, 3TB Transfer)

This guide will only cover the install and running of ArmA III and will not cover configuring your game server settings.

Time investment: ~30 minutes

Note, at the time of writing this post, Bohemia Interactive have not yet published Linux server binaries. They're expected to release server binaries later down the road, but for now we're expected to either have a Windows server or hack out a server using the Wine compatibility layer.

Requirements

  • Ubuntu server running 13.10 AKA Saucy Salamander.
  • Basic understanding of Linux terminal commands.
  • Understanding of using PuTTY/Terminal/SSH to connect to your remote server. (if applicable)
  • Steam account with ArmA III purchased.

Setup

Login as root to the server you'll be using, For security's sake, create a new user to keep the game server separate from the server server. Also, download all the packages we'll be using for the server and change into our new arma3 user.

  1. adduser arma3 Follow the prompts. You can skip over name/phone/etc.
  2. add-apt-repository ppa:ubuntu-wine/ppa; apt-get update
    Adding the latest Wine repository to our system and updating our repo list.
  3. apt-get install xvfb screen blackbox wine1.5 winetricks x11vnc
    Install the prequisit packages. Accept package licenses as they install.
  4. chmod o+rw /dev/pts/0 Allow arma3 to use screen.
  5. su arma3 Switch user.
  6. cd Change directory to the home of current user. i.e. /home/arma3/

Setup X11 and VNC

Start a screen session so all of our processes and ArmA III game server can run in the background. Then start our basic X frame buffer and window manger "blackbox".

  1. screen -S arma Create our background session.
  2. Xvfb :99 -screen 0 1024x768x16 -ac & Start the frame buffer.
  3. export DISPLAY=:99 Add our xvfb frame buffer to the user profile.
  4. blackbox & Start the window manager.

Configure the VNC server to connect to on your PC. Skip these steps if you have a monitor/mouse/keyboard attached to your server.

  1. x11vnc -storepasswd Set our VNC password.
  2. x11vnc -display :99 -usepw & Start the VNC server.

Use your favorite VNC client to connect to your server. TightVNC is a good Windows option.

Note, once you close the VNC connection on your PC, you'll have to run the second command again to start a new VNC session. Add the -forever flag to the 2nd VNC command to keep alive.

Pre-emptive Steam error fix!

Steam relies on the presence of audio drivers to function properly, so tell Wine to use OSS as the audio driver.

winetricks sound=oss

Install Steam

Install Steam:
winetricks --no-isolate -q steam

If Steam doesn't auto launch, run this:
cd ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/; wine Steam.exe &

If everything went smooth, you should have a Steam login box displaying in your VNC client. Login to your account.

Install ArmA III

Navigate to your Steam library and install ArmA III normally. There is a chance Steam will close at random. If this happens, run wine Steam.exe & to get back to Steam.

The Downloads page in Steam makes me giddy at this point. Most VPS servers have crazy download speed between 20 megabytes and 100 megabytes. Seeing Steam games download at 60 megabytes per second is beautiful thing. In America, most home connections won't pass the 1 megabyte per second speed. But I digress...

You still probably have time to brew a cup of tea while you wait for the 8+ gigabytes to download.

Done? Right click ArmA III in your Steam library and click "Set launch options..."

Add -server, press ok, then run ArmA III like normal. Steam will install necessary libraries required to run ArmA III. Steam might also crash at this point, but the game server should start running. You'll see a console window in your VNC session once it starts.

Once the server is running, try connecting to the server in-game and testing it with a mission. You might get an "Out of SWAP" type error while running the server with Steam and might have better luck running it outside of Steam.

Running your ArmA III server without Steam

Note, you'll still need to run ArmA III once with Steam to get this to work.

Close Steam inside VNC. Follow these steps to run the arma3server.exe outside of Steam:

  1. cd ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/SteamApps/common/Arma\ 3/ Navigate to the ArmA III install folder.
  2. wine arma3server.exe -no-dwrite -port=2302 -config=a3-gc-server.cfg -cfg=a3-gc-basic.cfg -netlog & Launch the arma3server.exe with Wine.

Wait a few seconds and the server console should appear in VNC. There you have it, one functioning, yet un-configured ArmA III server!

If you get stuck on the loading screen, close your server, try again, and give it a couple of minutes before you attempt to connect.

Configuring the ArmA III server

This guide will not cover configuring your server, but here is a link to a helpful thread on the Bohemia Interactive forums to set you in the right direction.

Note, anyone who connects to your new server will be able to instantiate themselves as an administrator.

Thanks

Notes

I used a server droplet from Digital Ocean to test and refine this guide. The server in use had 1 GB of RAM but would occasionally crash late into gameplay, 2 GB of RAM and up is preferred for better performance.

Digital Ocean is a pretty great VPS host for this type of server. You can have a decently performing ArmA III server for $20/month.

If you found this article helpful and do choose to run with DO, please consider using my referral link provided in this post and here:

When you use this link and bill $10, I get $10 dollars towards my server costs! I'd really appreciate you and it would help me continue my goal of writing more helpful server posts in my spare time while funding my own server projects! ♥