Cover image of Dev Report #21

ATTENTION

Welcome to the Dev Report! We will look at some of the new features and system changes with our coming updates. We’re especially excited to show you some features that you'll soon be able to utilize in your future battles.

INTELLIGENCE

Since our last Major Update, the Arma Dev Team has been hard at work chipping away at the project roadmap.

We recently expanded server capacity to 48 players with our last Minor Update and released the Tiny Wars mod, transforming you into a miniature toy soldier to wage war in a 1980s-style living room. This April Fool's prank turned game mode had a weeklong run on official servers and is still available as a mod in the in-game Workshop.

Arma Reforger has recently seen a surge of interest in modded servers, which has inspired us to finally start work on a server join queue feature. We've also been putting the finishing touches on several other crucial features that will be included in an upcoming update.

OPERATIONS

Explosive Charges

Both the Soviet and US factions will soon be able to equip explosive charges and detonators. Explosive charges allow sappers to perform controlled demolition on targets such as vehicles and structures. They are a perfect weapon to surprise passing supply vehicles, disorient or disable patrolling infantry, surprise a vehicle thief, or even draw attention away from your actual direction.

Explosive charges can be placed on almost every surface within the player's reach. Once placed, the explosive can be set off either by using a detonator for remote activation or by a timed fuse. Just make sure you are far enough before the fuse runs out of time.

Charge Placement

We have fully reworked and expanded the underlying system responsible for mine placement to enable explosive charge placement. You will not be limited by being able to use world terrain only as you can now also trace on other surfaces.

During development, we decided to disable the possibility of attaching charges to a person's body or weapon. If this happened in real life you could grab the charge and throw it as far away from you as possible. However, this wouldn’t be possible in-game, as you would most likely not be able to see the charge and thus would not be able to interact with it. Disabling explosive charge placement on humans and weapons, unfortunately, also meant you wouldn't be able to place charges on vehicle weapons either. To remedy this, we implemented a "component blacklist," which allows us to differentiate between weapons that reject or accept charge placements.

To indicate whether a charge is live and armed, we’ve added a fuse on the side or front of the charge once you arm the explosive. However, the inserted fuse is difficult to see once you place the charge in the inventory which made it impossible to tell whether the charge is armed when browsing through your gear. Therefore, we have disabled the ability to pick up armed charges.

Detonators

Detonators are used to set off charges connected to them by both factions. They can be used on the move and in hand, but you need to take a delay into account.

You do not need to be the one detonating the explosive. Once you place the charge, drop the detonator on the ground and deploy it wherever you like. It will continue to stay connected to all of its charges for other players to detonate. This is the perfect feature for setting up ambushes and surprise attacks.

Audio

Reverb

Reverberation simulation is an extremely powerful tool in audio game design. It enhances immersion, sets the battle’s atmosphere, creates a sense of space, and pulls you further into the role. It is an integral part of an engaging and compelling experience.

Even though we have had reverb simulation in Arma Reforger for a while now, we have always wanted to improve its quality. The audio design and programming team has worked hard to improve it significantly, and we're proud to unveil our new, dynamic reverb simulation, where the character and length of the reverb are determined by the size of the room the sound source is in.

Travelling Projectiles

To enhance players' spatial awareness and give you better audio feedback, we decided to put more emphasis on the sounds of traveling projectiles. Arma Reforger is an open-world multiplayer game, so the combinations between the sound emitter (the projectile) and the listener (the player) are countless. For that reason, we have searched for the best possible procedural solution that would sound great in any scenario. We ended up implementing a system that allows us to play looped sounds with appropriate values, such as the speed of the projectile, its speed relative to the player, its direction, and more.

Vehicle Bullet Impacts

Proper damage feedback plays a crucial role in video games. Knowing how hard and intensely your vehicle is being hit makes for an even more immersive experience and passes vital information onto the player. At the moment, the focus was on the vehicle the player is currently occupying. The effective audio cues provided indicate whether your vehicle is directly under fire or, worse yet, if the bullets are penetrating the body of the vehicle, putting you in imminent danger.

Flares

This feature has been requested by the community for a long time. Now, thanks to the Enfusion engine’s significant improvements to the lighting and shadow optimization, we were able to go all out with the lighting. Striking the balance between effectiveness and performance was the primary challenge in creating realistic flares. We wanted to make flares as close to real life as possible, but making such a large radius light source has drastic performance costs associated with it. However, we have managed to strike the optimal balance between flare efficiency, visual quality, and performance.

To be effective in-game, flares need to light up large areas and last long enough for the players to use them tangibly. Our implementation allows players to conquer the night during fights and use flares for signaling either for extracts, support, or marking targets. Regardless, there are still some limitations and issues we must tackle.

Hand-fired flares are an obstacle we have yet to overcome. They require a significant change to how we handle weapons, which has left us with a dilemma. Either hack them together with a temporary solution or delay them for the time being. We went with the second option. In the meantime, UGL-fired flares should at least allow grenadiers to light up the battlefield and maybe even turn the tide of night combat.

Technical Implementation

Flares do not ignite instantly when fired from the UGL. For this reason, we decided to spawn the effect entity as a submunition. We are able to use current UGL shells for the first part of the trajectory. Once a certain amount of time has been reached, the shell, which has a TimerTriggerComponent, triggers the spawn of the submunition, igniting the flare and lighting up the area underneath it.

The flare effect’s movement is done through a new component called FlareMoveComponent. This component simulates parachute-like behavior together with the wind effect.  Upon reaching the ground, the effect persists for a set amount of time, keeping the area illuminated.

Commanding System

Commanding AI soldiers is an integral and unforgettable part of Arma in various scenarios, multiplayer maps, and the single-player campaign. From a design perspective, AI commanding impacts two important areas.

First and foremost is the gameplay atmosphere. Commanding is a tool for the player to bring more soldiers to the battle to even the odds, gain an advantage, and make the combat feel denser, bigger, and more immersive, especially when compared to solely relying on human players. From the authenticity standpoint, it is extremely rare for a single soldier to head out into the battlefield on his own and try to reach any gains or tactical advancements. However, a player commanding a group of AI comrades can head out with his own personal squad to capture a strategic point and achieve a tangible goal.

Second is the tool availability at the player’s disposal. One soldier can only do so much and carry so much. Upon selecting your loadout, you are limiting your options and your capabilities. Did you pick up a marksman rifle and find yourself in a town center having to fight close quarters against assault rifles? Or are you an anti-tank trooper in desperate need of a sniper? By allowing players to recruit AI soldiers, your arsenal can be greatly expanded by what your AI squad members carry with them to battle. This gives players considerably more utility but can also create difficult scenarios. Imagine your medic getting shot. Suddenly, your squad must proceed more carefully, retreat, or recruit a new medic when possible. AI soldiers are a strategic asset and, therefore, not free. Supplies need to be spent for AI reinforcements to help you in battle.

Based on these criteria, we decided that AI commanding should be available to all players to some extent. Limiting it would not only limit their access to these extremely useful AI tools but also affect the atmospheric impact for others, as there would be fewer soldiers in combat in general. At the moment, only group leaders are capable of commanding AIs. Fortunately, players can create their own groups should they wish to command AIs. Once they are done with AIs, the group leadership can be passed on to other players within the group, as the AIs are tied to the group and not to a specific player.

From the technical standpoint, effectively implementing AI commanding in Arma Reforger is more complicated than it was in the past. We originally wanted to implement a comprehensive commanding system with the depth and control we saw in Arma 3 and the ability to command specific soldiers. While that is still our eventual plan for the future of the Arma Platform. For now, players have control over AI waypoints on a group level. However, as of right now, we are still missing parts of our AI to make such a system possible fully. In that regard, players have control over AI waypoints on a group level.

A crucial aspect of a well-implemented commanding system is the interface of the commanding menu itself. The key goal is to make the commanding menu easily moddable to give modders a way of adding executable parts of in-game code without having to create individual UI elements or replicate existing ones. As the first step, we’ve created SCR_BaseRadialCommand class, which enables modders inheriting it and overriding Execute method. This way new commands can be added to two config files to be available in-game. The potential for the number of commands is high, so we implemented support for nested radial menus easily configurable by modders. This initially looked like a good solution, but simply looking at the number of possible modded commands, we soon realized it would not be enough. As a result, we investigated options for modders to create their own radial menus so they could easily create commands as they see fit on separate key binds. This way, specific mods can create new radial menus exclusive to themselves without interfering with the UI.

Vehicle Unflipping

One of the most common player requests for vehicles has been a solution to overturned vehicles. Until now, there was no simple way to flip them back over and put them on their wheels.

To address the issue, we have added new interactions that allow vehicle unflipping with a reasonable amount of required teamwork. As a limitation, it should be difficult, if not impossible, for a single person to flip a UAZ without the help of tools. We also took inspiration from DayZ, where players can physically push vehicles back and forth. In order to make the experience more immersive, we have implemented physics and allowed multiple players to contribute to the effort simultaneously.

Unflipping has triggered several collateral improvements that will be of some interest to many modders. Initially, the hulls of our vehicles were quite slippery overall, so scraping terrain with the underside of vehicles would not cause significant speed loss or collision damage. This created an issue where vehicles slid on terrain instead of getting rotated when players tried to push or pull them around. This has been solved by splitting the simple vehicle collision geometry into two parts, a slippery bottom and a sticky hull, using different physical surface materials. The hull should create enough friction to prevent the vehicle from sliding on terrain. Instead, it should rotate around the point of contact. These colliders can overlap slightly as long as they are part of one entity or merged.

We also had to add the ability to detect when other players start contributing to the pushing or unflipping effort. This required improvements of the interaction system API and triggered several significant changes alongside adjustment interaction in SCR_AdjustSignalAction. All scripted interactions can now benefit from this by using the OnActionStart method, which is now called by game code and can be performed on other clients if the action is supposed to be broadcast.

Additionally, SCR_ScriptedUserAction has received a generic option to lower the weapon while interacting. Now, this can be shared between different systems (e.g. between the supply or health systems).

LOGISTICS

As always, we thank you for your support and look forward to bringing you this content and much more in a future update. In the meantime, be sure to follow us on social media and stay updated on the latest news about Arma Reforger.

Published on 

We want you for our mailing list!

We offer great content once a month just for you!