While Auto Fire is my main passion, it’s always fun to do something just because it’s damn fun. I had this past week off from my day job, and here I thought I’d be diving deep into more car combat as always, but something drew me to start messing around with an old Ludum Dare project I did several years ago, at the time called Cardinal Cell.
Giving it some groove and turning it into Skate Knight was quite a blast. I learned a bunch about Unity’s 2D tileset system and their new UI system. Then I dipped my toe into some tweaks to make things match the BPM of the new disco-y soundtrack. I still have a ways to go, in particular I need to build some more stages, but the foundation is now laid.
The best part is that you just need a browser to play. I’ve been playing it for five years now, it’s a fun little diversion for a quick break!
Is this a distraction from Auto Fire? A little, but we could all use a reset from time to time. I’m looking forward to doing more Auto Fire even more refreshed than before.
A while back I made a video for the Seattle Indies Expo, who was doing a feature on local tactical games this past summer. The intent here was to show off the game with a bit of “talk from the developer” rather than a fancy trailer. I never posted it separately, but it shows some cool new stuff that you might enjoy.
Something that is really enjoyable to me, believe it or not, is refining ways to generate cool maps. To see the result of a mad pile of code and some assets turn into something you can play can be a bit addicting. I’ve certainly got a lot to do for entirely new content, but since I was working on creating new types of maps, it was worthwhile to look back at how I was generating outposts.
Auto Fire uses a few different generators, one for rolling terrain, one for piecing together city blocks, one for populating hand-crafted levels… Originally I had been using the straight terrain generator that I use for battlefields and the overworld maps… a method of laying out blobs of varying terrains using Voronoi regions. If you’re unfamiliar those may sound froo-froo-fancy but for grids they are almost embarrassingly simple: Throw a bunch of spots down on the map that have a particular terrain type: mountains, clearing, rough terrain, etc. Test every tile on the map and mark it as part of whatever spot it is nearest. Add some noise and various other properties of each spot/region, plow roads to get you from place to place and you’re pretty far along. It’s at least enough for stuff like the overworld, where the specific terrain isn’t so important.
For outposts, however, that was only part of the equation… I needed walled areas, I needed an “inside” and “outside” area. I wanted buildings to make the interior more interesting. I managed to piece together features like the walls and special setpieces like water towers and little dwellings. In the end the placement of buildings were random, which created a lot of unbelievable areas and many dead-ends… a curse for a driving game where speed is king.
The buildings were also single-tile affairs… This scale mismatch was deliberately set on early in the game’s development for cities, but have since been changed to a double scale that allows buildings to be more interesting and for roads to have more width in cities.
What I realized is that I had a really refined measure of control in cities, with varying width roads, support for passability and large crafted areas, and just overall a less random feel.
Cities are constructed using 8×8 blocks (which was 4×4 back when buildings were single-tile) that are crafted to hold a 2 or 4-lane road connector or a 1-lane alley (either left or right side). Each block has one or more exits, and a bunch of places where optional exits can be punched through if the system needs to create extra loops.
So why not do this with desert maps? Walls can be made this way of course, but we don’t want a desert map to look like Manhattan… Luckily there are a ton of tricks to keep roads from being straight and buildings falling in irregular patterns. This generator set used 4×4 tiles and almost entirely 1-lane roads, which can meander within a block like a Carcassone tile to keep things from looking too precise. One set of blocks can be used for the inside of the walls, and another for the lighter desert features outside. Everything’s great except that terrain needed to come back into the fore.
And so it did! Parts of the terrain generator came over to the block generator to give the map a more natural appearance… considering it was largely giant squares. With it we got terrain rendering thanks to Microsplat and some pretty nice grass from Advanced Terrain Grass. Our road-plowing routines guaranteed passability and some other code helped give the driveable spaces a little bit of vertical rise and fall.
So “why now” might come to mind… “You’ve had outposts for years now, so what’s the big deal about revising them now?” Fair question. The main reason is my recent investigation into new map types: Industrial parks! Dueling arenas! Race tracks! I have some examples that I’ve hand built with assets I have, but I want to get those generating also… and this same method will work for all of them.
Highways are also a culprit, because they are okay maps, but the road is arrow-straight and can’t really incorporate curves. With my current overworld system I can’t draw two-lane roads without using this block method. Also, a road that curves gently like a highway or race track is best laid out on an 8×8 tile… or even a 16×16. These things are all possible in our brave new world!
That’s the big news of February… a new build will be coming out tomorrow. Excelsior!
It’s been a month, so there’s a pretty chunky update this time. The player now has access to a vehicle fleet, and as such starts with a pretty basic car until they can afford something better. There is a vehicle stable at garages for swapping vehicles as well as weaponry, and then the citadel has a variety of cars you can purchase. The UI has gotten a bit cleanup as well, with the garage, character and citadel screens looking and operating with a lot more similarity.
Since you start with just an Econo Stallion, I took the opportunity to kick off the story a little bit more as well.
Enemies were using your gas and ordnance to fire their weapons. Oh man, had to jump on that immediately.
Fixed a problem where the automap would sometimes show as blank.
Added a vehicle switching “stable” where you can swap cars at a garage.
The player can now purchase new cars at any citadel.
Players should have a lot more information about the features (such as speed perks) of the vehicles they are driving.
The player starts with a single vehicle type, and must engage with the vehicle pool to purchase new ones.
Created purchasable versions of all levels of cars.
Special moves and speed perks were moved only to upper-level vehicles.
Added new vehicle types, the Plaza and the Falconer.
All vehicle prices are level-driven but adjusted to end with $xx95 for added Ameri-flavah.
Added and revised sales descriptions for each purchasable vehicle.
Revised curves for player vehicle health levels to not *quite* ramp up as hard as it did before (+15 per level rather than +20)
Adjusted the per-level data curves for item prices and cash drops.
There are now bladed ram plates which do extra damage to humans, and spiked ram plates that do extra damage to armor.
Revised the campaign launch screen in the frontend to tell more story and remove the vehicle selection.
Revised the appearance of the citadel, garage and character screens. Information is displayed more consistently and is a lot cleaner.
Both vehicles and equipment now have a consistent “power” number displayed in the corner so that it is easier to sort through weapons and items.
When Damage is displayed, it should be appropriately multiplied or annotated to reflect a weapon that fires multiple shots.
Made equipment stat readouts more consistent in color and style.
Weapons now display crit percentage.
Built-in Ram Plates now properly show damage.
Fixed some issues with selecting items in some inventory slots, such as “vibrating” mouse conditions and text being obscrured inappropriately.
Adjusted the size and placement of the equipment info popup so it doesn’t obscure the UI so much.
Fixed the social feed so it scrolls all the way to the bottom when new content is added (and not clip it off on the bottom).
Fixed the automap so it looks correct if the aspect ratio is not square, such as highway maps.
Updated steering wheel emoji to black and white.
Health widget on enemies now uses the same color as other health meters.
Buttons that are auto-selected should highlight more prominently when screens change or popup dialogues like travel and leveling up happen.
Loadout selection should not as easily unselect when it pops up.
Button highlighting in loadout selection popup is revised, less ugly.
Loadout selection and vehicle stable now adjust their scroll bars as the player uses keys or gamepad to scroll up and down.
Adjusted loading screen delays to better display the help text in a readable way.
Increased the parts price somewhat to repair armor damage.
Fixed an issue that kept players from being able to repair the last bit of armor.
Fixed the footprint of the oil tank in tactical maps. It should work more clearly and you can drive through the corners that are clear now.
Added some new shrub variants, and they should respond like the others when passed by a vehicle.
Fixed a bug in gas popup descriptions.
Flamers don’t drop at low levels, because players could get stranded in the starting location if they use up all their gas as ammo.
Al now has a revised portrait, his emoji will be more important as he gets new personality implants in the future.
Added animation controller to enemies, so that they have move, damage and attack animations.
Fixed some ugly flickering on the big orange explosion from mines and barrels.
Fixed ragdolls, which were detaching all limbs on death (causing them to stretch).
Added new enemy portraits to the roster.
Fixed some flickering shadow issues on highway map terrain.
Fixed an issue that was making music not consistently play.
Trying to get that release cadence up, and good thing too since the holiday break is coming up and we hope to get a bunch more done. Today’s release is smaller, with some quality of life improvements and a few oversights from the last release. Most particularly, we revised the portrayal of reloading and ordnance in the UI.
Feedback was showing that people misunderstood how reload cooldowns worked:Â Most weapons are “free” to use, but cannot be used again until their particular cooldown is complete.Â We’ve got more prominent meters in to help convey that.Â There wasÂ also confusion around ordnance (which is a special type of explosive ammo that certain stronger weaponsÂ do use) because it looked like “bullets”, as in people thought it was required for all weaponry.Â Hopefully some iconography and other changes should help out with that.
Changelist for Version 0.6.23
Fixed lack of hostile forces in SW Arizona (the first overworld sector after the starting area).
Removed (for now) the social chatter about drivers (rivals!) who are not the player, since their lack of introduction to the player makes it feel like a bug.
Reduced the starting ordnance from 25 to 15.
Zooming out, sounds and encounters shouldn’t start until a level is loaded and has started to fade in
Adjusted the compass graphics slightly as directed by our UI expert.
The Automap can now be dismissed via the automap button again (sorry), the character button is now what toggles the automap to the world map. This is conveyed via UI.
Additional small tweaks to the UI.
Scaled back the distance blur, so that destination labels can be more easily read.
Addressing Reload and Ammo Confusion:
Replaced all instances of the bullets with a new “ordnance” icon that hopefully looks unlike a bullet. That includes the emoji in the font, all UI, and flying icons.
Clock meters now expressly show (in a more visible way) how many turns until each wepaon reloads.
Targeting with ammo-consuming weaponry now play distinct sounds that match that resource’s pickup sound.
Warn the player when ordnance or gas is getting low after use.
My company gave us the entire week of Thanksgiving off this year as a stress-relief gesture and the results were fantastic! I managed to get several long rests in (at least 30 hours of which involved beating up fools in Yakuza Like a Dragon), I installed a MFin’ sink in one of our bathrooms, cooked a lot, and still put a great amount meat into Auto Fire.
The campaign is slowly taking form! Some big ticket items include:
Sectors now take gas to move between! It is now your resource for long-distance travel as well as to scout out entrances to dangerous places. Don’t worry, if you return to a place you’ve already scouted out, you don’t have to pay again. Will have to make sure that spending gas on flamethrowers are worth it, because that fuel will be harder to come by.
A new sector world map is now stretched across the western United States! Still have to have the areas seed specific ruined cities, but you can see where you are in context and have a better sense of where to go with your cargo.
You now have a compass at the top of the screen that helps you find the exit or other things on the map. This replaces the edge-of-screen pointer, but provides a lot more information.
There’s now a resolution selector, and you can choose fullscreen/windowed, and even set your graphics quality levels in the main menu.
Version 0.6.22 Release Notes
Highways and hostile locations now use gas to move between.
Exits now show a popup (the travel panel) when run into explaining the gas usage and what’s ahead, and do not play any collision VFX.
Players can now just move into an entrance or exit to cause a prompt to appear. The prompt warns the player about the sector ahead and allows them to head forward or decline. These are used for garages and citadels as well.
Pre-seeded the entire canmpaign to be placed across the western US.
Sectors are named appropritely to their location and have had their difficulties adjusted. Still have work to do, since ruined cities aren’t named for their real-life locations.
Starting sector has been rearranged to introduce the player to the idea of gasoline for travel.
Encounters explain the need for gas to travel between sectors, and directs them to an outpost to get them.
The starting sector has a citadel in it, blocked off by roadblocks (simple encounters), to explain the intro and background. The exit heads east towards Arizona rather than north towards Vegas.
The upcoming level is “conned” against the player’s fame level. Too high or too low might be “Impossible” or “Embarrassing”.
Starting Cricket now starts with an oil jet instead of a flaming oil jet (because it consumes gas). You can still find one out in the field.
All vehicle special moves no longer consume gas (for now).
Garages no longer sell gas. You didn’t think it’d be that easy, did you?
Updated to Unity 2020.1.14f
Added in a resolution selector, fullscreen setting, and sound/music sliders to the front end menu.
Rearranged some audio assets to stream in, which should help load times slightly.
The screen-border pointer has been removed in favor of a compass at the top of the screen with blips for various bits of content.
The automap has been revised to use new monochrome icons, which are mirrored in the compass.
A Worldmap page of the automap has been added that shows all sectors and highlights the one that youre in.
Campaign can now show a date that is based on the curDay that kicks off a fixed future date that starts the campaign.
The social feed now receives and prints encounter dialogue. The player can even tweet to the social feed as part of the encounter dialogue.
The set of emojis have been revised for more variety and to get rid of some terrible ones.
Changed in-game damage text and location labels to use the Roboto font, consistent with the rest of the game. It should display through obstructions in the world.
Location labels now have new VFX and use a font that shows through all obstructions.
Location labels always glow now, even when the player isn’t nearby.
The citadel, garage and character screens have been better consolidated.
I removed the distracting background behind buy and sell pages. You never mistook sell for buy, but god that was ugly.
Revised mileage estimate calculations between two areas. These are used for transport gigs as well as displaying distances for gas consumption.
Fixed the text in the reward panel to not be as cramped.
Consolidated the line thickness on vehicles and gameplay items better.
Cut the screen shake when skidding in half. Sorry that was so extreme.
Made some adjustments to the camera angle in zoom.
Cleaned up the fades after dying and returning to the front end.
Floating delta text above stats like fame and ordnance don’t fly as far anymore (was waaaay too far).
Adjusted the snappiness and easing of the tablet moving onscreen.
The front end has a new settings menu with a items withinâ€¦ More to come there.
Tweaked entrance placement during map generation to stretch to the end of a zone a bit more prominently.
Terrain maps now place entry points right along the edge rather than in the form of a “tunnel”.
More gracefully recover from situations where an entry point is not foundâ€¦ Pick a spot no matter what rather than straight-up fail.
This should fix a number of bugs with map loading or unplayable maps.
Added Master volume on top of effects and music volume
Set default volumes lower (they were loud).
Collision sound not playing when hitting stuff that is harmless, like a loot crate or an exit.
Updated heavy chat sound.
The Buy button now works again in the citadel!
You can do transport missions again!
Removed ability to ESC out of main menu at frontend.
Cleaned up issues with player death not suitably rebooting the simulation afterwards.
Fixed some camera blips again when entering certain regions or on restart.
The camera zoomed in after mission completion and got stuck there. It turns out there was a conclusion encounter that wanted to play and just wouldn’t give up the ghost, even if you moved to new areas afterwards.
Fixed a bug with entrances, specifically exaggerated when on an EW highway.
Fixed a bug where the more sites we accumulated, the slower quest updates would be (oops)
Don’t crash if a macro isn’t set during dialogue lookup.
One car readout showed a speed of 4 as being 80mph rather than 100mph. Fixed.
Fixed a bug that caused delayed gas or ordnance displays would crash when entering/exiting a map immediately after pickup.
Put in a failsafe to catch a piece of equipment getting used without first targeting. (Was a hard-to-repro case during combat).
It’s a simple description of what was done, perhaps not as electrifying as some, but apt and important.
This new update focuses on further working on UI and art, as well as cleaning up some bugs and rough edges related to moving between areas.Â Cars and worlds look better. I also started down the path of improving load times, and took some first steps towards upcoming content revisions.Â
It’s a great time to go check it out… Just click on the hothothot Jupiter Cricket below!
Version 0.6.21 Release Notes
Armor is now expressed in terms of “plates”, 1-4 on each side.Â Each plate has a fixed armor level defined by the level of the enemy or the chassis model.Â This gives players a much clearer view of what sides are the strong ones on an opponent, and it also is how armor is upgraded on their vehicles…Â by finding models with more plates on the sides they want.Â
Armor now costs only 1 part per 5 points to repair, rather than 2.
Created an entire flavor of bandit gangs, the “Wild” gang.Â Paves the way for more themed gangs as we move forward.
“Wild” agents have names and quotes that match their theme.
Cleaned up some character names and quotes.Â
Armor is more prominently visualized on vehicles, including the adaptation of the “plates” listed above.Â This includes when you are NOT aiming at them, but the display is made more visible when the player is targeting a vehicle.Â Â
Removed the solid backdrop from the two agent panels in the upper left and right, trying to separate the “vs” data shown normally and the “targeting” data when you are focused on an opponent.
Moved the targeting box to the upper left.
Got some new icons dropped from Scott Rays.Â
Tweets from bosses shouldn’t appear before the map even appears anymore.
Put anon and boss tweets into chat bubbles.
Removed name and colors from keywords in tweets for readability.
Fixed a irritating bug with entering cities when certain quests were active. Sorry about that one.
Player can’t move past an encounter by keyspamming anymore, they should stop immediately.
There was an issue with the camera sometimes zooming in after completing a mission and staying there.Â It turns out there was a conclusion encounter that wanted to play and just wouldn’t give up the ghost, even if you moved to new areas afterwards.Â It should now play properly.
Quelled the double-intro from bosses with quests attached.
Fixed some issues with allowing input not working properly with some popups.
Cleaned up issues with restarting the game after player death.Â Should properly go back to the intro and restart without hassle now.Â
Updated to Unity 2020.1.6
Added Addressables Package and converted a number of sounds to addressables.Â Started on the road to speeding up load times.
Stripped out a few libraries including CTS in favor of Microsplat, which has been much more performant.
Cleaned up issues with camera focusing or stuttering between transitions and encounters.
Fixed camera looking at target sideways during starting cutscene
Changed the camera post processing to add focal length and bloom.Â
Cleaned up a bunch of stuff around vehicle explosions, the particles were too large and the hierarchy made some stuff look terribad.
Cars now throw tires and other large parts as part of their death.Â
Revised some of the vehicle manufacturers and names.
Cleaned up Battle Car package with up-to-date toon/outline shaders.
Put in a number of new car models and created enemies that will use them.
Cleaned out the rough and out-of-date MadCars vehicle library (the predecessor to the Havolk cars)Â
Revised sounds for UI, including menus, reward panels and chat barks
Fixed some issues in how soundtracks and boss music was playing (and sometimes re-starting).
Shrank the size of the single barrel because it was yuuuge.
Grass wasn’t appearing in some terrain maps.Â Cleaned up the references and got rid of some old terrain libraries.Â
Small rewrites of quests, aligning things for a larger revision.
Completely reorged the gang definitions to give gangs stronger themes.Â Wild, Fire, Stone and Tech themes are now taking shape.
Started to revise the handling of quests, with an eye towards completely overhauling the overworld organization into a real U.S. map.
Some new vehicles have been added to the mix, and these have so many interchangeable parts that it’s been fun setting up some new enemies. Just a couple examples:
Of course, hooking up these vehicles and setting up all the enemy profiles to make proper use of them is a lot of work, and occasionally I might have messed up the scale… or are we looking at a feature??? Hmmm…