Bohemia Interactive ARMA 3

About
Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC’s premier military game. Authentic, diverse, open - Arma 3 sends you to war.

The Linux port looks to be a native port (not using Wine), with the binary executable named "arma.i386".

The following features have not been ported.
 * BattlEye - Good luck finding any multi-player servers not mandating BattlEye!
 * Controller Input Detection - There is apparently no auto detection for for your joystick or TrackIR device! Nor does it look like any devices are even operable aside from keyboard input.  FIXME: See below BI Studio Community Ports within References.  Configure joysticks within Steam's Big Picture menu.
 * No Advanced Flight Model - For those of us whom enjoy breaking tail rotors or main rotors, this is going to make flying boring. Not too mention, requiring a magnifying glass to read the instrument panel!
 * No Launcher - I and most others probably enjoy using command line instead, making debugging easier. This is probably the only item a Linux user can easily do without.

Install Steam
Install steam using "emerge games-util/steam-meta", or following the appropriate Gentoo Wiki for installing the Steam client.

Install ARMA 3
Once you have Steam installed and have either created or logged into your existing account, search for the ARMA 3 game clicking "Games" > "View Games Library" > "SteamOS + Linux" or if you haven't purchased the game, then purchase the game clicking "STORE" just below the top menu bar. The initial download requires 9-12 hours using DSL.

GPU Driver Requirements
ARMA 3 requires OpenGL 4.1, and doesn't appear to be GPU bound due to the various driver implementations.


 * NVIDIA: =x11-drivers/nvidia-drivers-352.30 works
 * AMD: ?

Common Startup Parameters

 * "-noLogs -nosplash -world=empty -skipIntro"
 * "-window"
 * "-winxp"

Folder Locations
The top root folder for all ARMA 3 folders appears to be "/home/USER/.local/share/bohemiainteractive/arma3/" which appears to contain the AppDataLocal/ AppDataShared/  GameDocuments/. With the exception of GameDocuments being equivalent to the "C:\Users\user\Documents\Arma 3\". (Replace USER with your user name!) This is really nice, as we now have a central location for almost all files, with the exception of the main program files still being located under the Steam root folder.

The following lists the equivalent folder locations for Windows folder locations in comparison to Linux folder locations.

User Configurations and User Editor Created Missions For example, the "C:\Users\user\Documents\Arma 3\" is similar to "/.local/share/bohemiainteractive/arma3/GameDocuments/Arma\ 3\ -\ Other\ Profiles/USER/" folder. (Unknown if this is an error, as it's slightly different on Linux.)

Error RPT logs "C:\Users\USER\AppData\Local\Arma 3" is similar to "/home/USER/.local/share/bohemiainteractive/arma3/AppDataLocal/Arma\ 3/" folder.

ARMA 3 Root Program Folder "C:\Program Files (x86)/Steam/SteamApps/common/Arma 3/" is similar to "/home/USER/.local/share/Steam/SteamApps/common/Arma\ 3/"

Troubleshooting

 * Add "media-libs/libsdl2 abi_x86_32" to /etc/portage/package.use and recompile to provide a libsdl2 32 bit version for ARMA 3.


 * When using multiple monitors or displays, use "--eon_force_display=0". (FIXME: You'll likely see the monitor being reported within one of the log files.  Either the steam log or *.RPT file.)


 * Continuing Non-specific Startup Problems

Try running the game manually instead of using the Steam client. This manual execution method is also the apparent method for debugging Steam wine applications/games and being able to specify the extra Wine execution parameters.

Start and login with the Steam client within one window, without executing the game or application.

Change to the root application/game folder, replacing USER with your login name. $ cd /home/USER/.local/share/Steam/SteamApps/common/Arma\ 3

Manually execute arma3 binary $ ./arma3 --eon_force_display=0 -world=empty -skipIntro -window


 * Joystick still not found when using Steam Big Picture view

Find your /dev/input/event device file relative to your joystick and make your /dev/input/event* world readable and possibly writable. (ie. chmod a+rw /dev/input/event15) Restart Steam and navigate back to the controller setup menu and your device should now be found. Also try using the following incantation when starting Steam, "env SDL_JOYSTICK_DEVICE=/dev/input/event15 steam". Game controller settings are saved to "/home/$USER/.local/share/Steam/config/config.vdf". (You might find others whom have already configured and published their config.vdf controller settings.) You will only get a save dialogue once you've configured most or the required keys. Once you've saved any button mappings, you can likely use games-util/antimicro (and requires Qt5) for customizing or correcting the joystick axis and button mappings within the config.vdf. Another method instead of using AntiMicro for configuring your joystick, starting emerging (or compiling) libsdl2 and break out of the compile. Change to the root build folder containing the test utility folder. (ie. cd /var/tmp/portage/media-libs/libsdl2-2.0.3-r200/work/SDL2-2.0.3/test) Type configure and make, should build all the utilities, but you'll just need the ./controllermap utility and can output the SDL2 game controller mapping for use with Steam's SDL_GamepadBind variable.

References: Basic

 * Bohemia Interactive ARMA 3 official web page: http://arma3.com/
 * Bohemia Interactive Experimental Ports: http://dev.arma3.com/ports
 * Arma 3 Feedback Tracker: http://feedback.arma3.com/
 * Bohemia Interactive ARMA 3 developer hub: http://dev.arma3.com/
 * BI Studio Community Ports: https://community.bistudio.com/wiki/Arma_3_Experimental_Ports
 * BI Studio Community Developer Change Log: http://forums.bistudio.com/topic/140837-development-branch-changelog/

References: Scripting

 * ArmA: Scripting - Getting Started: http://community.bistudio.com/wiki/ArmA:_Scripting_-_Getting_Started
 * Category:Scripting Topics: http://community.bistudio.com/wiki/Category:Scripting_Topics
 * Category:Scripting Commands: http://community.bistudio.com/wiki/Category:Scripting_Commands
 * Category:Arma 3: New Scripting Commands List: http://community.bistudio.com/wiki/Category:Arma_3:_New_Scripting_Commands_List