Thursday, 11 July 2013

Issue 3 - MSO - "ALiVE"

Creating a presistent mission in a world that is alive and breathing was a thing i tried to realize with the earlier mentioned "Air Inbound2" mission. The random creation of tasks was nice but i wanted to fill the space and time between them with some civillian interaction and ambient combat. While tweaking around, looking for mods that could fit, i found some missions that had been developed towards that "open-world-ish" direction. One outstanding mission was "MSO Multi Session Operation". This mission has tons of scripts included, many of them were the same i already added to my pimped version of "AirInbound 2".

MSO really covers all aspects of an living gameworld and ongoing war plus it also offers persistance after server-restart. Details like manually written after-action reports providing intel for the next crews joining the server and different coloured zones on the map that indicate if they have already been cleared or being attacked by the enemy, make it feel like a real and living war.

As mission maker you are glad to see a framework that is complete modular, so you can add any feature you need but also you are free to remove all parts that you dont want. Many of the missions settings a reachable for any game-admin via lobby parameters, so its not even necessary to give big explanations to non-mission-makers because of the clearly discribed settings.

After bugging the busy team with my questions they were so kind to answer them all extensively and (lucky me;) they added some exclusive info about a groundbreaking new game-mode that is going to hit the Arma3-Community in the near future with a playable beta.

Mission/Mod: MSO Multi Session Operations + ALiVE (link to MSO)
Game: Arma2 + Arma3


["In true MSO style we can never do much alone, so we did a bit of a collaborative effort..."]
1. Can you tell the readers about the origin of the MSO Mission? Whats the basic idea and how did it all start?

Multi Session Operations was born in the mind of our lead dev Wolffy back in 2009, who together with Rommel came up with the idea for a collaborative, dynamic campaign environment called creoBellum to encourage more people to get involved in mission making. Using pre-configured script modules that you could simply plop down in the mission editor, the aim was to create something simple to use but very flexible.  Over time this has evolved into a persistent mission framework with a whole variety of plugins that the player can configure, so you can set up pretty much any campaign scenario you want, from conventional ops to counter insurgency.

The core principles of MSO are simplicity, scalability and flexibility and we are focussing hard on these for ArmA3.

2. The mission contains a lot of different components to make the whole gameworld feel like a living environment.  Tell us about the composition of all these scripts and functions. It must have been a great challenge to make them work together properly.

Early on we decided to break MSO up into modules such as Enemy, Support, Core (including database) and Ambience. Each module is further broken down into “features” or systems. So Enemy for example has a CQB feature, IEDs/bombers, General Enemy Population (patrols, camps, roadblocks, AA emplacements), Convoys, Terror Cells and we even integrated Rydgier’s awesome HETMAN AI Commander.

[Modular System of MSO]

One of the great benefits of the modular approach is it’s relatively easy to plug in new components.  As people in the ArmA community developed scripts and addons, we were able to take the best and slot them into MSO.  Unfortunately though this is not the most efficient use of the ArmA2 engine and we soon hit the limit of what Real Virtuality can handle.  A lot of the work in the latter stages of the project has been building automated performance testing tools and streamlining code.

Typically each of the devs owns a set of features. Tupolov and Jman are the authorities on the database feature, as well as vehicle ambience, convoys, IEDs and Logistics. Highhead created CQB, integrated HAC and did a huge amount of work on improving performance. Wolffy and Rommel both created many of the core and support features.

3. Somewhere I read (dev-heaven i think) that you played MSO with hundreds of human players and over 700 (?) AI-Soldiers on the map.  What kind of server-setup do you need for that and what does a server-admin generally has to keep in mind to run a MSO with good performance on his server?

To begin with we only had basic persistence in game, a few random spawns of AI and not much else going on. As the systems got more complex and we hit over 4000 downloads, we started to see larger groups try out MSO. When United Operations tried it, we realized the code really wasn’t optimized for 70+ players! So for version 4.0 we really optimised the code. Highhead and Wolffy did a huge amount of work to bring all the scripts into a common approach for performance. We learnt a lot about the RV engine and SQF - the hard way! MSO v4.6 was the last code drop at which point we were comfortably hosting 30 players, which should be sufficient for the average COOP group.  BIS’s Headless Client completely revolutionised what we could do and for the first time made MSO play like we had originally envisioned. We have code that spawns/despawns AI as necessary and of course we can off load to the headless client, so we can have literally 1,000 AI on the map along with 30+ players.

It’s important to remember that MSO ‘out of the box’ is a collection of optional modules, and it should be tailored to suit your server stats and number of players.  VOLCBAT has successfully run “MSO” campaigns with only 3 MSO modules and some on the fly editing with MCC Sandbox!

4. I love immersion bringing mods like "GBL_aim" and "nielsen_CIM" which make you hungry or bring options to interact in a deeper way with civillians.  Stuff like that really is the cherry on top, for me! Any intentions to develop/include more stuff that is moving in that direction?

We started with simple stuff, mostly aimed at adding ambience because we felt that the ArmA2 environment was too static and needed more life.  To begin with it was just AI civs going about their business but it soon progressed to ambient aircraft, boats, road traffic, roaming wildlife. That made a big difference to immersion so we started to add things such as Terrorist Cells mixing in with the civilian population, ambient IEDs and car bombers/suicide bombers, which really turns up the heat! Once again, the modular approach allows us to tie in other mods and scripts like the food/item mod (GBL_aim) and civ interaction (CIM). We also put in support for the EOD mod. Of course we support ACE and ACRE and we have included R3F for logistics too.  We will doubtless be able to integrate future mods of this type with minimal effort. We love bringing improved immersion and interaction into our code, we even helped improve some of BIS’s own functions. We always look to bring in new things written by the community such as dynamic weather or power grids, but also creating our own code like the CQB module.

5. Obviously there must have been a lot of people involved from creation to testing until the first release was given to the public. Has it been hard to manage so many "human resources"? Any advises for new ambitioned teams and young project-managers with big ideas?

Clearly we have been using a lot of peoples’ code and it’s been great that many of them have come on board as full or part time team members to support us.  Yet again the modular approach works in our favour, because it’s very easy to focus them on the fixing their ‘pet project’ whilst the core team works on integration and performance. 

We took advantage of the excellent repository and mod hosting for sharing our code. We use GIT for code version control so we can ensure everyone is working on the latest code branch. We’d like to thank SickBoy, Kju and ViperMaul for their support with that. The most important tool though has been Skype, where we have a dev channel for text chat so we can swap ideas and everyone can keep up with what’s going on. Now and then we have conf calls on TS to do deep dives on our code. We also peer review each others code. Pastebin is awesome for bouncing code off each other and of course we have private servers where we host test games to really give our code a workout.

We’ve benefitted from a close relationship with some of Arma’s largest and best COOP groups to test our code. VOLCBAT, VRC, Kelly’s Heroes, UO and several others have helped us test code at scale... especially DET-7 from for extensive testing. Thanks guys! Not only do they bring excellent ideas, many of these guys have great military experience to help us improve the level of immersion.

The people challenge is interesting. We are a very laid back group, everyone can contribute and make design decisions on things they are working on. We don’t dictate what people do, we are all volunteers. So one day you could be fixing a “duplication” issue in the database and the next creating ambient AA camp code. We do discuss code/bug priorities and general direction and agree on what we need to do, then each of us picks up something of interest. For the next generation of MSO for example we have a couple of priorities for our Beta Showcase...

6. Arma3 is coming and you already told me that a complete relaunch of the MSO-Mission is going to beta in a few weeks. Any "exclusive" infos about whats hot, new and shiny in the Arma3 Mission?

Well I guess we can reveal and introduce our new mod for Arma 3 called ALiVE

Why ALiVE? Well MSO was really getting to the point where we were delivering a very real, dynamic and fluid combat environment - without any need to do anything in the editor! The mission was “alive” and the AI and everything around you is working without the need for mission editors to code or script anything.

Why Advanced Light Infantry Virtual Environment? Clearly ArmA3 is heavily focused at infantry simulation and this is where we are focusing our efforts too. We want to provide everything that mission editors and players need to run Company level military operations with all the support/logistics/enemy required for a dynamic and persistent “multi-session” campaign. The campaign is “alive” in the sense that OPFOR will work against you throughout the campaign, remembering its objectives and state between restarts.

Why a mod and not a set of mission scripts? Well we’ve kinda all grown up! We really wanted to make it super simple, so most of our code is wrapped up in editor modules. You want IEDs? Just plonk down the IED editor module. You want all the OPFOR AI working as a strategic force? Place the OPCOM module. You want player persistence? Turn on the DB module. It is all really straightforward. Of course for those guys that like to tinker with code, we welcome improvements and contributions!

It may be weeks or months - not before it’s ready!  Like all volunteer projects we are constantly battling against real life jobs and family so work can be very stop-start. However, what I can reveal is that we have a functional proof of concept for ALiVE and it’s a massive advance from MSO.  Inspired by Rydygier’s work on HETMAN AI Commander, Highhead has created an enemy that is no longer static but acts and behaves like a real Opposing Force.  We are using a revolutionary new Profiles system created by ArJay that enhances performance massively.  Tupolov and Gunny are working on full database and web integration whilst Wolffy has designed a system capable of analysing maps and pre-building the mission automatically, meaning ALiVE will work out of the box with addon islands in the future.

We wanted to ensure that the player base can also participate in ALiVE outside of the game, so we have a web based “companion” app. This will track player stats, mission objectives, mission action reports and much more. We will have live feeds from ALiVE games straight to the companion app too, so its pretty ground breaking stuff. We’ve worked on bringing together some of the latest web technologies such as RESTful based NOSQL databases, HTML 5 and xRTML.

We are very excited about ArmA3 and ALiVE, we hope to bring you a sneak peak of our tech very soon!

[Example of the new ALiVE Web Companion App]