UNIT: Jiří Zlatohlávek, Designer, Sandbox Dept; Jiří Dočkal, Programmer, Program Dept.
TO: Arma 3 Dev-Branch Users
OPSUM: Launching Arma 3's Steam Workshop integration to the next level
User generated content (UGC) has always been at the heart of our series; Arma 3 set a general goal to stay true to this original heritage while streamlining and improving usability. How did we approach this? The ongoing support of content creators with script commands, tools and documentation had, of course, already played a huge part in our design process. Therefore, content discovery and installation were identified as the key areas fit for improvement. With Steam Workshop implementation, we aim to address both of these aspects at once.
During our Public Beta, we tested Steam Workshop with scenario publishing and were glad to see that the community picked up on the new method of sharing, with thousands of custom scenarios published by Arma 3's launch last September. This was just the first step. Now, finally, we are gradually introducing Steam Workshop support for addons.
We hope that addons in Workshop will work just as smoothly as scenarios did - maybe even better! Let's talk about the background to some of our decisions, some details of its implementation, and set out our future plans.
Conception to release: the gradual development of the Arma 3 Launcher
UNDER THE HOOD
Two years ago, we talked briefly about developing an in-house solution for sharing UGC as an alternative to Steam Workshop. It became obvious that we didn't have the resources and experience, while the Workshop was a readily available solution. In the end, we decided rather to focus on the game and accept some of the limitations of Steam Workshop, which includes a file-size limit and no meta-data available to handle dependencies and versioning.
The continued development of the SteamWorks API by Valve might bring those in the future ( if any Valve employee is reading this: please, add a meta-data field into a published item data structure! ), but even if it doesn't, we're quite satisfied in how the Workshop implementation works in the back-end.
Let's talk about the details of the whole publish-subscribe loop here. Steam Workshop is a file cloud service. When a creator wants to share his file, he uploads it using Publisher from Arma 3 Tools to Workshop. Each published file is attributed with some text (name, description, tags), image and the owner sets up its visibility rights. Keep in mind that updating the file later with a new version will simply overwrite the existing data; no versions are stored.
COMMUNITY, MEET LAUNCHER
Now, if you subscribe to content, the Steam client downloads a copy of the file to your local drive. So, how to get it into the game? If you are able to locate the file on your drive, you can load it manually into the game using the parameter -mod=abolsuteFilePath; aka: the old way. Or you can fire up the new Arma 3 Launcher, which can do it for you with with a single checkbox.
The first question that needs answering is: couldn't the game handle addon management without a launcher? It could, but since loading new addons requires a game restart, we wanted to save time on that. This created an opportunity to include other features like a launch parameters setup and addon presets. We ended up with a C# application that allows easy UI development so we could focus more on implementing SteamWorks SDK.
In the current version, the launcher helps with:
- Setting up launching parameters
- Care-free addon downloading, updating and unsubscribing
- Switching your subscribed addons on/off
- Changing addon load order easily, including intuitive drag&drop
- Organizing addons into custom presets
- It works in an offline mode, thanks to a separate cache
- Devblog news synced directly to the launcher so you can keep up with important changes and fixes to the game
It will take a while for the Arma 3 Launcher to fully mature. When compared to splendid community launchers like PlayWithSix or Arma3Sync, we have only just finished the core of functionality aimed on single-file Workshop. In the next steps, we want to include non-Workshop addon support and, depending on the progress with implementing a new version of SteamWorks SDK, introduce Workshop support for mods.
We also want to redo the back-end architecture, switching the SteamWorks implementation to a Windows service to get rid of issues with the Steam back-end, caching and syncing between Launcher, Arma 3 and Publisher. The ultimate goal on the horizon is to streamline and automate the process of getting the server-required addons, making it easy for anyone to just connect and enjoy the game.
This is the sound of a bright future, but we believe that Steam Workshop integration is already useful right now, for example, in the Make Arma Not War contest. Check the entries, subscribe on the Workshop, fire up the launcher and enjoy the awesome creations.