DISCLAIMER: All of the content below is heavily conceptual and may never be in the game. All images and text are stand-ins. Please read this before taking the images out of context!
Arms Race World Map
It’s been a while since I’ve written one of these guys, but today, I’ll keep it short and sweet, since I know you probably want me to get into the details.
I present to you, map changes for update 37.
This summer, the goal with our map changes was to lean a little harder into giving players more avenues to approach different parts of the world. First, we tucked in a lot of the far-reaching island elements to provide better access to the mainland and enable more cyclical routes around the map. By keeping them islands, they still allow for naval approaches along the shoreline. This new archipelago approach should alleviate some of the pain when having to do logi or run routes through the island maps without a connection to the mainland. It will also remove those awkward situations where you spawn in from the world map to a zone marked as being in conflict on an island that’s disconnected from the rest of the region, forcing you to travel to another region anyway.
Next, we’ve added deeper coastlines into major logi regions on all four corners of the map. Improving access to waterways is a huge focus for us this update. To that point, we’ve also added several more rivers to the world and connected the rivers in a straightforward way from East to West. The river structures aren’t a perfect mirror but should allow for much more dynamic uses of water-based gameplay going forward. In many major hotspots around Caoiva, we’ve also added several new areas to help organize your naval forces.
As mentioned before, every road in the game has been replaced with more structurally sound, mesh roads that, along with the vehicle physics, will help make driving a lot more enjoyable. These include different tiers of roads (which will increase your vehicle’s speed) along both straightforward and more obscure routes. The width of roads has been unified as a result, as well.
Drowned Vale has received a near-complete overhaul. While it was a nice experiment in map design, we felt that the shallows detracted from gameplay more than adding anything dynamic, as was their intention. The wood bridge pathways were also an exciting addition to the map, which, given the nature of Foxhole, didn’t quite turn out as exciting as we’d planned. Therefore, these two elements have been completely removed from the map. The layout itself has been centered as well. The Baths has been relocated to a more central location with several roads leading toward it. It also has a cleaner and more cyclical layout, with the Bulwark bisecting the two sides of the town. Many of the eastern mountains have been removed, with more roads added to alleviate the isolation of Saltcaps. The river has been generally widened with pretty much no shallows to worry about, and it connects east, west, north, and south to all adjacent river regions.
Alongside these significant changes, we’ve also made a lot of minor changes to fort and town locations, especially in coastal maps. More structures have been added along the coasts to allow for more dynamic war maps. Expect major balance changes as well.
I’m very excited to see the first couple of wars on this revised version of the map, and I can’t wait for you guys to get your hands on the rest of the update. This is only a peek.
Vehicle Animation Work
The new vehicle system has been interesting to animate.
Having many variants to all the vehicles meant I had to slightly modify my workflow.
Instead of each vehicle having their distinct skeleton, now all vehicles of the same family share the same armature.
It makes creating the variants in code much easier but adds a certain level of complexity for the animation themselves.
Now, when creating an animation, I load all the variants at the same time and animate all the parts simultaneously. Making sure the movement works regardless of which variant is being displayed in-game.
Before, when a vehicle was destroyed, we would do an instantaneous mesh substitution for a pre-prepared destroyed static mesh.
Now, when a vehicle receives fatal damage, it plays a quick animation of the bits blowing up.
With this new system, I can make some interesting effects like the wheels flying out and parts falling.
The drawback is that the same animation has to be designed and created to work for all the parts at the same time. SO if the vehicle has wheels, but one of their modifications is tracks instead, the explosion animation has to take that into account and support both.
Inertia-based movement animations
With the new handling system the vehicles support, we have lots of information about what forces these vehicles are operating under. Utilizing some of that info, I can make it so that when a vehicle breaks or turns suddenly, its chassis reacts to that change visually.
It is subtle, but enough to enhance the feeling of the suspension system moving the vehicle's body. On a top-down game like a foxhole, certain aspects of the physics need to be reinterpreted for it to be noticeable from the camera perspective.
If you watched our Devstream from last Tuesday, you'd know that we've implemented an entirely new development pipeline for Vehicles so that we can support dozens if not hundreds of new vehicle types and variations in the future. This means that we spent a lot of time reworking how we create code, animation, and art for vehicles to find a simpler and more modular process. I wanted to talk about the main challenges involved in this undertaking.
In our existing process, creating a new vehicle type would often involve an artist making a custom model for a vehicle, an animator creating a bunch of custom animations potentially, and a programmer writing a bunch of custom code. Then to complete the final vehicle, dozens of variables in the system would have to be accounted for. This would be a very time consuming and error-prone process that required a lot of manual tinkering of properties to get a vehicle working correctly. To simplify this process, we took some initial steps earlier in the year with our data refactor, but for the Summer Update we took even further steps to streamline the process. With the new system, a game designer can easily assemble new vehicles based on reusable components in the Unreal Editor often without requiring a programmer to write custom code.
The most amazing part of the new process though is the modular chassis system we developed. This allows us to implement a base chassis for a vehicle and then make new variations by adding new weapon mounts, seats, treads, and other components. These components are often modular and can be shared across many vehicles. On the art side, this required us to break the vehicles apart into separate meshes, which then were reassembled using the streamlined process I discussed above. I'm oversimplifying things here, but compared to the old process it often feels now like we're just taking various vehicle parts and combining them to magically create new vehicles.
Another challenge we had was in "opening up" some of the existing vehicles. None of the existing vehicle models had interiors so we had to design and model them from scratch. However, when we first sat down to do this there were a lot of questions such as: Were the vehicles even large enough to properly fit the planned number of seated character models? We had to do a planning step and measure every existing vehicle to ensure they would accommodate the required number of seats.
Previously, the drivers and weapon operators for most of the vehicles were inside a closed cabin so we didn't have to worry about elements like steering wheels or character animations. Now that some vehicles are open, we had to go through the effort of adding in all these details. If you look closely, the characters actually steer the wheel according to player input!
The journey doesn't end here though. We hope to further refine the vehicle development pipeline in the future, especially since we intend to add many new vehicle variations and types for years to come.
Our next devstream is still scheduled for next Tuesday at 2PM EST on our Twitch channel.