posted on July 9, 2021
Welcome to the first edition of our new Quarterly Development Update, where we will be giving our community some insight into how development works behind the scenes. In these updates, we will be exploring recent challenges faced by our development team, provide some insight into our process, and provide a bit of discussion surrounding our priorities. Once you’re done reading this update, feel free to head over to our forums to ask your questions in the discussion thread found here. We will compile the questions and answer as many of them as possible!
During the last few months, the team faced a difficult challenge in finding a resolution for the logistics supply bug. The bug was tied to several other issues including the turret-disappearance bug and the passenger seat bug. This made it difficult to investigate and pin down the root cause.
Through the team’s investigations, the team discovered that the bug is a symptom of an overarching engine issue. This issue is caused by the client and server’s GUIDs for certain objects in the world being mismatched upon loading a new level. The issue is unfortunately not completely resolved, but it is less frequent with the mitigation the team has implemented. The team is continuing to investigate new solutions to completely eradicate the bug once and for all.
Several months were used to diagnose the source of the problem, and get an acceptable patch to the player base. The interconnectedness of the issue pushed our timeline far beyond what we expected and we ended up spending most of March diagnosing the source of the problem, then the majority of April testing several different possible solutions.
After several tests, we took a new approach reviewing the engineering side of things. During our testing phase, we were able to find a better solution that significantly reduced the frequency of users experiencing this bug. Thanks to the discovery of some previously hidden settings and testing several different engine changes. We eventually found a new understanding of how the engine caches client GUID values and we have been able to make a significant amount of progress.
As many of you know, another issue several players had been facing within Squad was the Vehicle Mesh bug, which caused the armor of the vehicle to become indestructible. This bug came out of the new functionality we created for armor meshes. The new functionality replaced armor meshes with a newly created component that allows us to decouple the armor rating information and information about the physical material used on the mesh.
Previously, armor rating information was embedded into the physical material, causing numerous headaches for our VFX artists and game designers due to the sheer number of different physical materials needed to represent different armor values. The new component the team has designed has allowed us to move away from the physical materials-based workflow, making it simpler to set up and tune armor values without affecting the VFX and audio used for that armor. This also allows us to extend our methods of armor penetration more easily in the future if need be. Unfortunately, this new system had a bug where the projectile would not use the correct value for penetration, and the fix for the bug would cause a crash while using mods that had custom projectiles. This meant that we needed to disable this change until we could get a solution for the crash in place.
In update 2.9 the Forward Operating Base’s (FOB) Exclusion Radius has been increased back to 400m from 300m. This change is intended to reduce the effectiveness of massed FOBs surrounding an objective, and tone down the spawn point spam meta which is a staple of current public games. The spam meta is where teams use the ability to deploy multiple spawn points in close proximity to the surrounding objective area and this is not aligned with the focus of our game.
We hope the exclusion radius change encourages players to put more emphasis on teamwork when picking locations for their FOB placements. In the future, we are looking at more changes to help mitigate this broader strategic meta, and encourage a wider variety of effective strategies. The goal is to better align Squad’s gameplay more closely with our focus on teamwork, communication, planning, and coordination. This alignment would allow and encourage more often a wider range of strategic options with more effective planning.
In update 2.9 a future change to the HAB proxy radius was mixed with a merge and pushed to the live game an update early. The change makes it so that players can proximity block a spawning unit from an increasing radius with more players, 3 at 30 meters, 4 at 40, and so on until 8 players can block it at 80 meters. We are currently reading the feedback about this change from multiple channels and are actively looking for the right way to fine-tune this change that takes into account all of your feedback. You can read a more detailed post from us on the subject here.
The team has been designing a new feature called the helicopter rotor wash system. It allows for helicopters to affect the environment it comes into contact with. For example, when a helicopter flies over a field of grass, it will flatten the grass as the air is blown down onto it. The system is dynamic, so there is no constant shader cost of the effect unless there is a helicopter with an engine on, within 60m of the ground, and within 700m of your player.
Wash can overlap from multiple helicopters, causing vast turbulence between them, with a max of 8 active at a time. The active helicopters sort by distance, opening possibilities for future effects from helicopters, other vehicles, or players.
If you’ve made it this far, thank you for your deep interest in everything Squad-related! As a reminder, if you have any questions, please head over to the discussion thread in our forums, found here. We will be reading your questions and aim to answer them over the coming weeks.
As always, you can catch a glimpse of the Squad Roadmap. The roadmap has always been our way of providing the community with transparency, but with that transparency comes the caveat that things we’ve discussed may change.