Testing out my new hardware in the run-up to my first stream, I whipped up a quick video blog showing off the most recent changes to the build and its vehicle playstyles. Enjoy!
And hey, yes! I did stream for the very first time this week. I unfortunately didn’t know that Twitch didn’t default to saving past broadcasts so the first session isn’t viewable, but head over to my channel and give me a follow! I promise to save all future sessions!
It’s been a couple weeks since the last build, but a lot has happened due to things that I’ve wanted to get in for the Rogue Celebration 2019, which I’ll talk about in another article.
For Auto Fire, RogueCel primarily meant that I had a lot I wanted to do in proving out playstyles. This manifests in the player’s vehicle chassis selection… It includes speed perks (passive effects triggered when driving at 60 MPH or higher), and special maneuvers (gas-consuming all-in-one moves that launch the vehicle to a new location and affects everything around it.
As always you can check out the state of development for free on Itch!
Cached Line of Sight: I used to do a pretty dead-simple Line of Sight test… I traced from one tile’s center to the other. Sounds simple, but there are a ton of edge cases that come about from testing that way.
To get it right requires a couple extra tests, primarily tracing to each far corner of the tile.
This allows you to see tiles that are partially obscured by walls, as well as being able to target walls themselves (such as when shooting the destructible outpost borders).
To reduce the load of this, I cache the results of these multiple line traces in all directions out to 15 tiles (this is tunable). That way I can look at the offset from the viewer and quickly retrieve all the tiles I need to query for blocking. Is it done in the most efficient way? Not yet, but it definitely is an improvement so far.
Improved item gathering: Vehicles now automatically pick up items from the ground adjacent to the vehicle, rather than requiring the radar to be used. It feels so much better!
The player also automatically picks up adjacent items in the overworld!
One thing I really needed was to introduce more playstyles for players to choose from. I decided to bake in special abilities into various vehicle chassis.
To facilitate this, I created the ability for equipment to have passive effects when installed, and remove them when uninstalled.
Effects have an ambient effect on their target, and can also trigger gameplay or visuals as a result of having triggers on its target… such as being hit, losing control, or colliding.
Vehicles now have two new equipment slots (which are not player-editable): Speed Perk and Special Maneuver. This equipment will in most cases be baked into the chassis itself when used.
A minimum speed can now be defined for effects, allowing for things like speed perks which trigger whenever the vehicle is traveling 60 MPH or over.
The stun condition keeps an AI (or player) from firing or controlling their movement until it wears off. This means pedestrians stay in place while vehicles will continue forward at their existing speed (or until they hit something).
The focus condition increases the subject’s ability to hit targets and inflict crits.
Turret fire (the F key or the gamepad triggers) now can launch any weapon or special ability. It also won’t attack the ground the way it used to.
Ram Blast (Stallion): Speed perk that triggers an explosion whenever the vehicle collides at high speed.
Ram Piston (Stallion): Special maneuver that launches forward and bashes through the selected target, knocking it aside.
Advanced Radar (Stallion): The Stallion has special radar that has a bigger radius than other vehicles.
Hyperfocus (Panther): Speed perk that increases the hit and critical chance when at high speed.
Jet Thruster (Panther): Special maneuver that launches forward and puts the car at max speed, leaving a trail of fire behind.
Jet Wash (Cricket): Speed perk that stuns vehicles and foot soldiers that are passed at high speed.
Bootlegger (Cricket): Special maneuver that launches forward and spins the car around, ending with a large stunning pulse.
Note: Special Maneuvers all consume gas!
Created new shader for the fog of war that scrolls and has interesting edges.
This was only my second or third foray into Amplify shaders… It’s been great to be able to the work in the editor rather than have to code them, since I really did a lot of experimentation here.
The main goal was to create something more dynamic on edges and more particular to have fewer tiles obscured by half-opacity textures, which made things feel extra floaty and mushy on a large part of the screen.
Destroyed vehicles now do not fly into the air as ridiculously far. It was fun but you often never even saw the vehicle because it flew so high.
Adjusted the color of the ordnance and gas can icon and model to be more prominently colored, so they are easier to spot.
Added glinty materials to pickups to make them catch the eye better.
This is mostly by cranking up the brightness of the specular in the toon shader I’m using for gameplay objects. It looks pretty nice when the objects spin.
Adjusted the loadout of starting vehicles to match playstyles.
Updated start screen to give more description of cars.
Updated some tutorial text to match the new control method.
Fixed bug with effects such as dropped items. One symptom was smoke and oil overwriting each other. This may also eliminate some of the mysterious crashes I’ve seen.
It turns out that in a specific case I was passing a single dictionary around for effects rather than properly instantiating it for each instance of an effect. That caused some serious weirdness, glad to have tracked that down.
Fixed a problem with firing while stationary, which remained in slomo during execution.
Changed the ragdolls for humans and dogs to move smoothly.
Added audio mixer slowdown when slowing down time.
When destroyed vehicles are flung into the air, they now play sounds when falling to the ground.
Added a techy burst sound for the bootlegger.
Targeting squares are more yellow now, rather than green.
The (A) button prompt disappears when the player centers the gamepad stick.
Auto Fire has been going through a lot of work focusing on making the game more approachable for someone that might want to sit down and play. This is specifically useful in preparation for the SIX show in Seattle on September 1.
In particular, I put a fair amount of work into adding Gamepad Support to the game. Yeah it’s still turn-based, but driving with the stick feels pretty good. Here’s the quick rundown, assuming you have an Xbox-style stick:
Hold the Left Stick in a direction, and you’ll get a preview of the result:
Up-Left/Up-Right: Swerve Left/Right
Left/Right: Turn Left/Right
Down-Left/Down-Right: Hard corner Left/Right
Centered: Coast (if moving) or wait.
The Left Trigger will commit the move and advance the turn.
If you hold the left trigger you can move multiple times in a row.
The Left Shoulder will Boost your vehicle, allowing acceleration over 40 MPH.
Tap the Right Stick in a direction and you will target the nearest enemy that uses that weapon.
The Right Trigger will fire any available weapon at the nearest target, or the targeted enemy if one is already being targeted.
The Directional Pad can adjust your aim target.
The A Button will Activate an entrance.
The B Button will Brake.
The X Button activates the radar.
The Y Button brings up the Character screen.
The Right Shoulder and A/B/Y will use the appropriate Equipment slot
The Start button brings up the settings menu.
The Back button brings up the Automap.
The game is still the same at its heart, but holding a controller just immerses you just that much more, plus you’re not stretching your fingers over the keyboard. I’d be thrilled to take any feedback you might have on it.
In addition, there should be a lot more information in the game about speed and what direction everyone is travelling in. As is natural, a common player instinct is that if a vehicle isn’t moving onscreen (while the simulation is waiting for you to make your next move) that it is not currently moving at speed. The wheel motion, dust from the tires and indication of speed changes should help you digest what the simulation is up to!
As always, there’s another grab bag worth of things that happened along the way:
The HUD adjusts the key prompts based on whether the player is using the keyboard or gamepad.
Radar now uses the R key (and resides in vehicle equipment slot 4). It has a separate spot on the UI.
Enemies now do not shoot every possible chance they get (rather than move). They are just as likely to try maneuvering than shooting.
Improved AI will not try to move directly in front of your vehicle anymore. This was really frustrating because they’d keep forcing you to maneuver around them to keep from colliding, rather than shoot them.
Enemy cars are more likely to get moving rather than sit-n-spin.
Fixed issues with auto-targeting with specific weapon sides.
Adjusted some female surnames so I avoid generating women named “Scott” or “Howard”
Control remap interface is temporarily disabled until it can be properly revised.
I am rolling off of a bunch of updates by the first coder to touch Auto Fire outside of me… My friend Jim streamed his work this past Saturday and Sunday and helped get some cool functionality in that I hadn’t done before.
Along the way he also added some Quality of Life improvements to some of the code, for his convenience but of course it will be helping me even more. Friends are nice to have!
In particular, I’m looking to snarf some of that ram functionality to wrap it up into a couple vehicle gadgets: A Ram Piston and… a Bootlegger somethingorother. Plus it lays the foundation for me to knock enemies around as the result of player action… something that ramming desperately needs.
For the time being, the new build has some fancy new features:
Weaponry now has a critical hit functionality when fired… By default a weapon has a 5% of delivering a critical hit, with a crit dealing 2.5x damage. You can improve that crit chance by 25% by painting your targets with radar (the 1 key) before attacking. Sustained fire does still improve your chance of hitting (as does radar painting) but only radar enhances crits.
Critical hits are a core method with which I want to handle skill improvements, electronic warfare, and general hit bonuses. Improvements to hit chances are also in there somewhere, but I don’t want to have a lot of shots missing in the game… that can be frustrating. Hopefully this will be a whole new angle by which players can decide what to do next.
Revised repair functionality
While gas and ordnance still cost cash to purchase, repairs to your car now need precious parts to fix up. You can refill your resources and make repairs in 10-unit portions now, rather than in an all-or-nothing fix.
Resources will become all-important as time goes on, an cash will mainly be focused on acquiring new gear, doing deals, making bribes, and so on.
Improved smoke screens
Smoke screens are a staple of car combat, but to date it hasn’t really been effective at getting anyone off your tail. I already had wide smoke screens but decided that it should be the norm… you should feel good about spending your action using one if you are in trouble. These wide smoke screens will nearly fill a roadway, to help you make an emergency escape… It really can deliver the goods.
…and other stuff
Gas now informs you if you are full and can’t pick up any more.
Some improvements to UI and feedback
Menu/UI Usability improvements.
Links to the help page and Discord from within the game.
It’s arrived… a big update, worthy of a full point! Auto Fire has had a lot of work put into it over the last month, not the least of it being the revised onboarding (that’s fancy-pants dev talk for what a new player experiences). A lot of players’ first experience with Auto Fire was tough, because there were some really dangerous enemies out there in the badlands, and you were just as likely to meet them while you were still trying out your training wheels as any other time.
In the spirit of making the game more playable and easier to understand, there’s now an intro that eases you into things a bit… and sets up the conflict against your (generated) rival down the road! Clear out those bandits and get back to civilization!
The game also tailors that early experience when you’re stuck with a couple of junkthrowers and not a lot else, so that you are less likely to encounter enemies that want to come punch you in the fun bits right away. This way you can pick up some loot, head to the garage, and upgrade away!
In addition, the player can now customize their character more fully upon startup. You can choose your portrait, and the dialogue (even the procedurally-generated stuff) will adjust for male, female, etc.
There are a ton of changes that came in, but a lot of it is nerdy stuff that only I care about… Oh, hey, here’s some cool stuff you might actually notice!
There’s a new encounter system that extends the random encounters in the game previously. You now can see your opponent, they can call you by name, and choose a course of action.
The game starts with some intro encounters that help give you a sense of what you’re doing there and what to do next.
Character customization has been extended to support player portraits as well as choosing gender.
Both enemies, players and any NPC can now be male or female. Dialogue is set to use the correct language to address them as it comes up.
You now have a (soon to be) publicity agent and a rival that are generated on campaign start. These are referenced and used throughout the game.
Agents are now handled outside of factions. Thus agents (any NPC) can join you, an opposing faction, or be an independent operator like the player.
A story manager presents basic encounters that drive the initial experience forward. This will hook in as more cause-effect things happen with the player.
Naming has been adjusted to better fit categories of civilians, punks, drivers and corporate suits.
Female names have also been added since we can generate those NPC’s now.
Chests now break open when moved onto in the overworld.
Weapons now start with a higher amount of damage (junkthrower starting around 10) but don’t increase as drastically (the maximum is about 250% of the minimum, rather than the former 1000%)
Weapons have less of a randomized spread in their damages (used to be 70-130%, now is 80-120%)
Armor for the player’s vehicles have correspondingly been increased, from 100 per side to 150.
Armor repair kits now repair 15 per side rather than 10.
When the player is ambushed into a battleground, they start in the middle of the map rather than near the entrance.
There’s a new intro cutscene that sets the situation when the campaign is started.
Because I know dying would be a chore if it couldn’t be, these can be skipped.
Encounter text also has a teletype-style reveal, which again can be skipped if the player is impatient.
Portraits can show or not show in encounters, and can even show as a transmission.
The loading screen shows hints and has a spinner so you know if the game is live.
The cursor keys have been remapped to work properly within menus. Key navigation of menus still needs improvement, but it should be better than it was.
Fame/Prestige is displayed properly on character and city menus.
Adjusted a bunch of buttons to be more visually interesting.
Cars now don’t kick up much dust when travelling on roads.
The gas can in the world is now red, matching the icon(!)
There is a quick stint of slow-motion when cars are destroyed, and the same effect is back when the player died.
Revised some of the stingers when entering maps.
The turn-end sound was revised to be less in-yo-face.
Button presses have more audio feedback in more cases.
This coming month will be all about adding variety and continuing to improve the interface. If I demonstrate the game at a show, what will draw players in? What will it take for them to understand what’s going on? What last flourishes or abilities would really sell the whole package?
When expanding the feature set of Auto Fire, an important element was to finally make the overworld play more of a role in the game. As a first step, the badlands now have roaming gangs that run convoys from place to place (having an agenda that will grow over time). These clouds of dust have an unknown number of cars in them, and eventually they will hold a variety of characters within, including lone drivers, hit squads, innocent settlers and good ol’ cargo convoys.
Each roaming enemy gang has a generated miniboss that runs it. If they see you, they’ll interrupt what they’re doing and come after you. If they reach you you’ll be dragged into full combat with their crew… but if you take down the boss you’ll earn yourself some extra fame. Make sure you defeat them or they’ll come back to haunt you…
Some other changes with this build:
Created overworld bosses (as described above). These roam the world using a FSM via the Unity Animator (unorthodox but seems to work fine).
Added a lot of infrastructure to make free bosses and track the player’s kills in each faction.
Bosses now have a “spotted” shout that occurs both in the overworld and in combat.
Cleaned up the UI for weapon aiming. The player can’t accidentally advance the clock by targeting empty ground.
Buffer keystrokes now so that the player cannot target when the enemy is still in the middle of its move. The result was a bunch of misses due to bad UI… Ugh it was driving me nuts! Fixed now, yay!
Revised the combat hit resolution from an older system, which was Diablo-like (and tended to create more misses and less impact due to bonuses), to one that is more of an opposed roll with positive and negative modifiers (more like D&D). It creates a more distinct feel to good and bad weapons and situations.