1. Brigador Killers
  2. News

Brigador Killers News

Designing a SWAT Vehicle From The Wheels Up

Courtesy of our lead artist, August's post is a look into the design of an armored vehicle belonging to NOSPOL, which is one of the enemy factions you'll be facing off against in Brigador Killers. Without further ado...



Brigador Killers deals in part with the question of militarized police and police violence. How to approach this in the design and presentation of the world of Mar Nosso and its inhabitants? It is not enough to present to the player an MRAP [Editor's note: Mine-Resistant Ambush Protected vehicle] with police badging. While obscene, absurd, it is also perfectly ordinary to Americans. We are inured to it.

So, the initial point of departure for the SWAT vehicle was to go back to the source: the Los Angeles Police Department and their SWAT Team. This department’s escalation of weapons, tactics, and equipment would I believe set the template for militarized police presence in America for years to come.

Which brought me to the Cadillac Gauge V100/Commando:


While iconic and fitting for the technical restrictions of our engine (wheeled vehicles can only have four wheels), we run into a similar problem as the MRAP: too many associations, many of them positive. The player can’t “see it with new eyes,” which to us is one of the crucial aspects of good science fiction.

So we’ll shift to an older, and much more loaded point of departure: German wartime armored cars.

British soldiers inspecting a captured Sd.Kfz. 222, North Africa, 1941 (Wikipedia)

While the associations vary, the baggage is unquestionable. WW2 German hardware should be unambiguous enough of a reference. Not so simple! German wartime hardware is the background radiation of popular cultural designs in film and videogames for decades, everything from Star Wars to Killzone. These design elements are powerful, but so much so they can easily overwhelm your own design intention and muddy your intended comment.

Another particular difficulty with referencing German wartime designs is that one can end up on footing to that of say, Jin Roh – where the loving depiction of German wartime arms and armor could be read as uncritical devotion. This is not what we mean to suggest with NOSPOL, the corrupt and gang-ridden police force you face in Brigador Killers.

Early on, I switched from the Cadillac Gauge basis to this idea of roughly approximating the Sd.Kfz 222. I wanted to echo the angular hull shapes, but the overall design shouldn’t map too closely to any original wartime design. Rather, I wanted to design my own vehicle to invoke, rather than recreate a wartime vehicle explicitly that might distract or muddy the player’s read for the vehicle.

Again, let’s have the player see it “with fresh eyes”. There are myriad other pitfalls with fascist police force design. Travel too far in a given direction and you retread others’ work, like Viktor Antonov’s brilliant Combine APC design for example was something I wanted to avoid.

The best way to do this was to design the vehicle in a way that made sense to how NOSPOL might commission the vehicle in the setting: a retrofit from an existing truck chassis.

I had this Russian tanker truck model on hand. Perfect!


But it’s Russian, not German, how is that helping your association?” Good question. Just as with the Loyalist military gear was largely but not exclusively Russian in origin, we don’t want any one single source. When the viewer sees a design that is by turns subtly heterogenous in character it’s my theory that it aids in, to introduce a metaphor, slower digestion.

An obvious design is like a piece of candy–it can be very sweet, but it’s gone and eaten quickly without a second thought and without a lasting impression. We want this design to be somewhat… chewier. More complex flavor notes. We want the taster to think about what flavors strike the palate.

So we begin from a Russian truck chassis to execute a German influenced armored hull design to talk about American militarized police. Simple enough, right?

Let’s chop off the back wheels and introduce a magenta box to remind us of the package space required by the engine. Whatever else goes on in the design, we’re going to need ample clearance to house the engine.

While we’re at it, I quite like those big, high clearance front fenders. Let’s turn them around and put them over the rear wheels.


Now we’re getting somewhere. We haven’t really had to design anything yet, actually–but by using a real world truck, notice how confident and realistic the scale read is. Provided we keep it consistent with our chassis here, the scale read will be more or less an automatic bonus, and will keep our work from getting too outlandish.

[Side note: one such problem that science fiction designs from scratch will run into is that when designing a ground car the designer fails to take into account the legal width limits for road legal vehicles. While military machines can be bigger, they are also still expected to travel on the confines of established road infrastructure. Get those dimensions dialed in first and you’ll get a lot “for free”.]

All we need to do now is start fitting an angular hull on top of this chassis, while still keeping in mind our other core requirements. How many people can it hold? Where does the driver sit? Does the armored car actually have a front and back driver, as some armored cars did? What engine limitations for a sprite-based and isometric game do we need to cater to?


In the interest of time we’re not going to walk through the rest of the design in detail, but with the major hull shape established, much of the rest would be about adding the hull detailing consistent with armored vehicles, stowage, searchlights, etc. Once we’ve got our goal in mind for this design there’s not a lot of quibbling over different shapes and thumbnailing different looks–one of the great pleasures of independent game development is that we can dispense with a lot of tiresome Art Director behavior most of the time.

Here’s the finished render of the armored car, in two flavors. First we see it as it will first appear to the player:


Beyond the police colors, something that always distinguishes overenthusiastic purchase of surplus military equipment by police departments in America and the former military service these vehicles saw is plainly their role. In the military, an armored vehicle is maintained but often subject to a lot of wear and tear. Once an MRAP is back home in America, emblazoned in SWAT livery, it seldom has to “work”. Its purpose is intimidation and peacocking for the department by and large. This is the initial guise I wanted to see the SWAT armored car deploy in BK as. A little “underdressed” compared to its military companions, seen elsewhere in the game.

Then, as the game progresses, and the player’s fight against the Concerns and their attendant police and mercenary forces intensify, updates and changes are made. Even a SWAT vehicle is forced to “work” under something more akin to active combat conditions. It needs to keep ammunition and fuel and spare tires with it.


It might even need to get semi-improvised slat armor for the wheels, a repeated weak point for ambush attacks from the player character (or other parties?). We highlight for the player that the slat armor is definitely newer by giving it fresh, dark paint compared to the more sunfaded exterior of the main hull.

Hopefully you’ll agree that at least some of the above is more than bluster and the design principles as established are borne out in the final design, and that the up-armored variant makes it clear to the player that the fight is escalating. See you, killer.


Stay appraised of news about Brigador Killers development by wishlisting and following the game.

https://store.steampowered.com/app/903930/Brigador_Killers/

REIMAGINING THE SPACERS

A while ago we revealed that one of the big visual differences between Brigador Killers and the previous game is the increased output resolution of sprites. This increase in fidelity means you the player will get a closer look at exported models in-game. If you'd like a longer read on the topic of how these models become sprites then consider reading this other article from Brigador's news hub.

Getting a closer look means we get to focus on the infantry scale of things. In that spirit, we're going to run you through how an all-new spacer suit for Brigador Killers goes from concept to final sprite render.


The first step is what's called the mood board. This is the conceptual framework where the artist references the mood, texture and detailing that we want to evoke with the spacer power suit.



Step two is the adapt or "kitbash" stage. Seeing as we've already developed a powersuit for Clade Vocc (not pictured), in 3DSMax, we extrapolate a suit design to help suggest how mainline spacers are still related, though considerably drifted away from in both culture and military doctrine.



The third step is the paintover in photoshop. With a basic suit layout in hand, we think about how we are going to change and treat the design. Returning briefly to the mood board's astronaut references, we decide on a cloth-covered suit. At this stage the helmet is unsatisfactory, but that will get revised later.



Once we have arrived at a satisfactory model of the suit, the finished design is then broken down into components for baking down and then texturing in Substance Painter. The final sprite render shown in the bottom right corner of the above image is done in Blender. Here is the finished suit as a render (click here to open a full size version in your browser).



As a bonus, a scene was composed using the model of this new spacer powersuit, which was used as the header image for this article. You can get a wallpaper sized version by clicking here, with deference to American digital painter Craig Mullins for this piece.



This post was based on one of our monthly newsletters that was sent out back in March 2022. Click here if you’d like to check out our newsletter archive.

MAP CONNECTIONS IN BRIGADOR KILLERS

For June 2023 we are (very briefly) showing off one of the major new features for Brigador Killers, which we're calling map connections.

[previewyoutube][/previewyoutube][h2]❓WHAT ARE MAP CONNECTIONS?[/h2]
Map connections are a means for the player to transition to different areas without resorting to overmaps menus. If you are familiar with Brigador: Up-Armored Edition's Freelance mode, those used overmaps menus to handle the different map choices within a run of maps. For BK, we’re building a contiguous set of spaces that you can travel back and forth between, giving the game's world a clear sense of structure that you navigate and explore.

In the video above you can see a very basic implementation of this in action. The player gets into a vehicle and drives towards the edge of the first map, hitting the first map connection volume that will advance both the infantry character and the car they're driving to the next area. The player then drives all the way through the second map still in the same car, hitting the next connection. They then get out of the car in the third and final test map, shoot away some props and hop onto a gurney.

[h2]🛒BRIGADOR PEWTER MINIS NOW ON SALE[/h2]

The latest addition to our merchandise store is three pewter minis of vehicles from Brigador: Up-Armored Edition. They are the Canmore, the Broadsword and the signature Touro at 1:144 scale. We've already put up a post detailing the creation process over on Brigador's page.

https://steamcommunity.com/games/274500/announcements/detail/3680051300625264980

Please note that due to higher-than-expected demand, any orders made for these miniatures will be delayed by at least a week.

A LOOK AT SOME OF THE NEW LEVEL-MAKING FEATURES FOR BRIGADOR KILLERS

For May’s update on Brigador Killers we’ve decided to talk about something many of Brigador’s modders will be familiar with: the debug panel.

For those not familiar, if you press F1 at any time in Brigador: Up-Armored Edition an overlay window appears that looks something like this.


In BK, the debug panel has had some work done to it…


…so we’re going to highlight three of its new features.

[For those wondering, yes, this is Dear ImGui by Omar “ocornut” Cornut, which is used by a lot of other game developers in their games though it’s typically not made accessible in the public versions of those games.]

Our usual caveat as ever: what you see is still a work in progress and not everything in this article’s screenshots are necessarily representative of the final product. If you're having trouble viewing the screenshots, try right clicking the image and opening it in a new tab (click here to view this post in your browser).

[h2]🔍Tile contents tooltip[/h2]
Let’s say for instance we’ve laid out a level and need to edit the features of a particular structure (or “prop”) like this fenced-off enclosure in a Brigador Killers test map.


If this were our previous game and we didn’t know what the prop’s .json file was, we would typically refer to the version of the same level in Tiled, which is the editor we use to make levels in both Brigador and Brigador Killers. Over there we click the prop and it’ll show us its file path…


…And from there it’s just a matter of alt-tabbing back into the game to look up the same file path in the pack file tab, and then inspecting it via the data editor tab and we can set about configuring the prop to our needs.


Simple enough, but it can be a bit clunky, particularly if you have to work with multiple rotations of the same prop in order to, say, make sure the strength of a structure is unified across all variants of that asset. This could get a bit complicated when it came to what we call “prop stacking”, which is placing two props in the same tile but using different layers in the editor.

[Sidenote: this hasn’t historically been a huge problem for us, though it is one of those time wasters in game development that might seem tiny, but adds up as more and more assets get added to the game.]

The Tile contents tooltip provides a solution. By enabling it, a small tooltip window will appear whenever our mouse cursor moves over any prop in a level.


This window tells us what props are occupying that tile, what the prop path is and allows us to immediately look up the asset in the data editor by hitting End on our keyboard, which cuts out all that of alt-tabbing and manual typing mentioned above.

In addition, if we in fact have stacked two props on the same tile, the tooltip will still tell us! Let’s direct our tooltip’s attention to this set of light poles inside a topiary…


Mousing over with our tooltip and using the arrow keys will let us toggle between the props on that tile, showing us the details for both the topiary and the light pole.


From a development standpoint, this will save a huge amount of time because of the increased volume of props that we’re making for BK. Keen-eyed modders might also have noticed the green text that appears in the top right of the screenshot, which informs the user whether the moused-over tile is walkable or not.

[h2]🚓Patrol routes[/h2]

In the Mech debug tab, two new radio buttons have been added:
  • Select patrol origin
  • Select patrol endpoint
In order to make use of it we select a mech (“mech” here means any NPC that has some kind of active AI state unlike a vehicle like a panel van), indicated by the green triangle underneath the placeholder Dave-with-a-cophead. If units are currently moving about we can pause the action with devmode enabled. With time frozen we can click the desired patrol origin and end point for the chosen mech within the game.


Inside the game we are limited to just a start and end point. Outside of the game we can set more complicated patrol routes via Tiled. If we click Force patrol AI state and unpause the game, our newly assigned mech will dutifully bounce between both points in the level, visualized here by the orange debug lines.


Unfortunately we can’t force this new patrol information permanently within the game. It has to be done outside of the game in Tiled, where we have to manually specify the patrol behavior for a placed unit. However, having the patrol feature immediately testable within the game let’s us:
  1. See whether the mech can patrol to and from that point or not
  2. Get the coordinates for those two points that we can take over to the Tiled version
As you might expect, this is going to allow us to create more interesting combat encounters, particularly in light of the third feature.
[h2]🚶‍♀️Civilian socializing[/h2]
This one’s complicated, and this screenshot is probably not going to help either, but bear with us.


What you’re looking at is the debug draw of the social paths. Put simply, civilians have new socialize AI states. In the case of the above, the green hemispheres indicate areas of “socializing”, while the white lines indicate civilians searching for such areas and the path they’re taking to get to one.

When a mech enters the social state, it will randomly pick another mech, internally called its "friend". The friend's current position will be chosen as a meeting point (or green hemisphere) and it too will enter the socialization state. Futher mechs that enter a socialization state and choose either of the currently "socializing" mechs as a "friend" will converge to that meeting point. After an amount of time passes, these civilians will search for another place to socialize. In the process of writing out this post, we had left the level running a bit too long in the background and 99% of the test level civilians ended up all grouped together.


Civilians dynamically moving around in such a manner goes a long way to making levels seem more alive but it’s not the only thing. Not featured here is the ability to make props that are “socially interesting” and not just to civilians. Other on-foot NPCs like cops are also capable of the social AI state.

What does this potentially mean from a gameplay design standpoint? One possibility is it means we can place entities in levels that will draw the attention of NPCs and cause them to gather in particular spots. Maybe it’s a fast food restaurant, maybe it’s a police checkpoint, or maybe it’s something the player can use to create a diversion within a level…

Whatever form it ends up taking, we know we’re excited to see what our community of established modders gets up to with these features alone.

Did you know that Stellar Jockeys has a merchandise store? If you’d like to help fund our development, consider purchasing a pin, t-shirt or even an SNC Skull & Laurel Zippo™ lighter.

WHAT’S IN A GIF?

This month’s post looks like a GIF explainer but it’s secretly a ruse to explain how systems can overlap in Brigador Killers. Here’s the GIF in question, taken from a recent debug build:



We’ve slowed this GIF down considerably because at “normal” speed, it would look something like this…



Also we’ll post the first GIF a bunch of times throughout this article so you’re not constantly scrolling up and down.

The GIF shows several entities in its short clip. An entity is an object that interacts with the game and responds to player input or other entities. These entities are:
  • 1 x Carmine suit
  • 1 x police cruiser
  • 2 x Dave
  • 1 x destructible object or “prop” in the form of yellow buckets filled with water
The Carmine suit is player-controlled. The police cruiser has no driver and is empty. The two Daves are non-player characters that either have no AI or are set to not to react to player actions. The yellow bucket props are in-universe impact attenuators.



We also have some debug visualizations on screen, which are:
  • A label called Max speed
  • A label called Decay
  • Green HP bars above the police cruiser and the two Daves
  • A red and orange ring that briefly appears beneath the Carmine suit
Max speed and Decay aren’t important to this specific scene, but we’ll try to explain them regardless. Max speed is, as the name suggests, that unit’s maximum speed. The Carmine suit has a greater motive power than the two Daves. Decay is the “bleed off” of bonus velocity that an entity would get from boosting or charging. In the previous game Brigador, after you stop boosting your vehicle, your max speed immediately goes back down to its original value. We smooth this transition out now for Brigador Killers, but because of how these bonuses work, we have to keep track of how much "bonus" there is which we then gradually subtract from. So, the decay value represents the remaining bonus we're still subtracting from - but the decay value in the GIF is zero because no entities have boosted or charged.

The green HP bars are an abstraction of how many hit points that entity has left after taking damage. A green bar that has turned completely transparent will disappear because the remaining HP has hit zero. Not all entities on screen have HP bars visible. Player-controlled entities like the Carmine suit have their HP displayed elsewhere. Props do not tend to display HP bars either, sometimes because their HP pools are so small and because we express damage to props in other ways.

The red and orange ring underneath the Carmine suit are visualizations of the damage radii of the “kick”. You might remember something similar from a previous post about systemic building collapse.

Third, let’s go over the visual effects going on in this GIF.



The visual effects that we can see are:
  • A kicking up of dust from the Carmine suit’s “kick”
  • A darkening effect on the Carmine suit, police cruiser, two Daves and prop
  • The Daves changing animation states
  • The inertia of the police cruiser after colliding with the prop
Technically the Carmine suit’s “kick” here is actually a reused mech stomp. More specifically, it’s not a stomp at all, but an explosion. This is also the reason why the suit briefly darkens.

The darkening effect is to visualize to the player that an entity has taken damage in some way. As a result, every entity that appears in the GIF takes damage in some manner, including the prop.

The two Daves change animation states because they have entered what’s called a pain state (sometimes referred to as “flinching”), with both being pushed aside by the hitbox of the police cruiser. One of the Daves that’s still visible dies as they fall over backwards, losing the HP bar in the process.

The car’s inertia after impacting the prop carries it forward a small distance more before eventually rolling to a stop.

Now for the fun and penultimate part - here’s what’s going on in terms of behind-the-scenes systems.



Some of these systems are holdovers from our first game, some of them are new to Brigador Killers. In action in this GIF are:
  • Impulse
  • Wheeled vehicles
  • Trample
  • Reverse trample
Impulse is how the police cruiser gains velocity and is pushed sideways into the Daves. The impulse comes from the explosive “stomp” kick of the Carmine suit.

Due to Brigador Killers’ new wheeled vehicles implementation, cars can better act like four-wheeled vehicles. We spoofed wheeled vehicle movement in Brigador for vehicles like the Pantry Boy treadbike or the Varlet tuk tuk by taking the tank movement and making the treads very “narrow” to give the sense of a bike/trike-style movement. Currently in BK, wheeled vehicles don’t have the handbrake on, meaning they can be pushed around easily just from NPCs bumping into them. The Carmine suit’s kick delivers more than enough impulse to send the cruiser sideways into the Daves.

Trample is a means of causing damage that already exists in Brigador - it’s how mechs are able to stomp through buildings like with the Touro or ramming through enemy vehicles with your Killdozer.

Reverse trample is different. Reverse trample is a system new to Brigador Killers in which trample damage can be self-inflicted. A simple way to think of it is how you can get hurt because you went very fast into something solid. However, in BK, reverse trample can kick in from both rapid deceleration and rapid acceleration.

So finally with all of the above in mind, here’s the detailed play-by-play of the GIF

  1. The player in the Carmine suit hits the police cruiser with an explosive “kick” that gives the car impulse.
  2. The police cruiser immediately takes damage from the kick and the impulse sends it in a direction away from the source of the impulse.
  3. Almost instantly the first Dave takes reverse trample damage due to the rapid acceleration it inherits from the police cruiser. The police cruiser may also be inflicting a small amount of trample damage on the Dave.
  4. A frame later the second Dave takes damage for the same reasons as the first (reverse trample and trample).
  5. The police cruiser continues towards the yellow impact attenuator prop, inflicting trample damage on it.
  6. The Dave on the right exits off screen and survives, but the Dave on the left, after rapidly accelerating and taking both damage from reverse trample and trample, takes a second bout of reverse trample damage because it catches the corner of the prop and rapidly decelerates. This makes the total interaction lethal to the Dave on the left.
  7. Leftmost Dave’s HP is fully reduced, its death animation plays out, and the NPC flops backwards onto the ground.
  8. The police cruiser still has inertia and continues to roll forwards before stopping.
All of what you just read is about 1000 words explaining what happens in roughly a second of gameplay.



Why we bothered to write that all out is because at the time of capturing this GIF we didn’t even expect the second Dave to have been killed by the interaction - we would have been content enough with the police cruiser shunting into the NPCs and inflicting some reverse trample damage, which it did.

Instead, we’ve found ourselves in a much more exciting place, because we now know that such player actions have the potential to be “messy” in ways that means players won’t see the exact same thing over and over if they replay certain combat scenarios. The reason this has happened is because it’s a combination of multiple overlapping systems that, in some cases, have taken several years to develop, and can now be expressed in Brigador Killers.

If you enjoyed this post, you can find quite a few more in-development GIFs on our discord server’s #brigador_killers_chat channel.