Category Archives: Game Development

Happy 25th Anniversary Heretic II!

The year was 1997. Raven had just completed Hexen II, Take No Prisoners, and Mageslayer, each for an entirely different publisher. Every thing came together under one roof in the wake of the Activision purchase, and teams were a little in flux.

At the time Raven wasn’t necessarily a dedicated FPS shop. Black Crypt was a tile-based RPG, Necrodome was a vehicle-based action game, Mageslayer and TNP were top-down. Rolling from the completion of Hexen II (and in parallel with its expansion Portal of Praevus), we got the opportunity to create something a little experimental using the Heretic/Hexen IP.

Tomb Raider was still pretty new at the time… and over-the-shoulder action was a genre that was still fairly untapped. We still maintained our relationship with id Software so we got the chance to use the powerful engine fueling the recently completed Quake II to create a third person shooter. This game would branch from Heretic rather than Hexen, as we imagined Hexen was going to continue on as a first-person series (alas, that did not happen).

We went to work right away and started building a third person camera and some Tomb Raider-style wall climbing and mantling, as well as some nice spell-slinging. I seem to remember using Hexen II’s imp as a starter enemy. All-in-all a great proof of concept within a month or two.

Often when a game comes out of the concept phase and is headed foe production, someone creates a Powerpoint presentation or pitch doc to show to folks who wear the big hats and sign the checks. In this particular case we were eager enough about the world that we created a little mini-storybook, got a bunch of printed copies, and sent it off to Activision.

I think Dan Freed wrote the text, and it includes art by Brian Pelletier and Rob Gee. It may read a bit cheesy, and you can see that Corvus was even misspelled in all the sidebars, but I think it demonstrates how incredibly amped we all were about this thing we were making.

You can scan through the whole thing here!

Fast forward less than a year and we shipped a real third-person shooter, merging Quake’s first-person sensibilities into a camera and character with a feel that no game had previously. It had melee combat and acrobatics. It had mutiplayer in third-person, which basically had never been done like this. It had a full single-player campaign that could be played cooperatively. It had in-game cutscenes where no mechanism existed in the Quake engine. All in around 10 months.

Yes, Half-Life shipped just a week before and ate Heretic II’s lunch but we stand behind the work we did. It was an amazing experience that we all remember fondly to this day.

The Lamplighters League!

I’ve gone a bit dark over 2023 and haven’t talked a lot about Auto Fire lately. I do throw time into it as I can, but there’s been another project that has consumed my attention more and more over the past three years I’ve been on it. That is The Lamplighters League and the Tower at the End of the World, the game I’ve been working on as my day job at Harebrained Schemes, the good folks that made Battletech the recent run of Shadowrun RPG’s.

LLatTatEotW is a mouthful of a name, no? This game is a classic turn-based tactical game with a real-time infiltration component, set in an alternate 1930’s where dark occult forces are on the rise. You recruit and control a roster of agents in an attempt to rebuild a secret society that combats these sorts of threats… except they all died around World War I. Your best bet is to recruit the Best of the Worst.

The Lamplighters League release date announcement.

This one has been really fun to work on… There’s realtime infiltration, which opens a lot of interesting presentation and play options. There’s a rich turn-based combat experience, the meat of where the game takes place with a lot of abilities and environmental elements interacting. There are tactical maps with procedural generation that plugs in content, enemies, and so on in key locations to add variety to missions… totally the stuff I groove on.

There’s a metagame experience where the campaign takes place over a series of weeks, charting the ascension of three competing houses of a shadowy cult called the Banished Court. Agents have upgrades, gear loadouts, health and sanity states that was fun to work on… and they also can accrue these tarot-like cards on their characters from a fate-sealing deck called the Undrawn Hand. Normally I don’t dig card mechanics in my RPG’s, but this one really allows for a pretty rich combination of power curve and special abilities… it makes for a huge variety in how each player experiences the game.

There is a pretty serious roster of agents you can choose from and each of them has a very unique playstyle, from sneaky snipers to dashing swordsmen to tanky displacers to mind controllers to incredibly potent support healers and so on. The teleporting agent is mad fun… All the things scratched that design itch: potent combos, overwatch actions, stress breaks, world spreadables, chaining passives… yeah! It was a total blast to work in this space.

Yeah it’ll be on Gamepass but I’ll be playing it on Steam… It’s pretty damn good on the Deck.

After a rest I’ll get back on some Auto Fire and other fun stuff.

Turn Execution Experiments in the Arena

Something you never hear about in game development is the challenge of capturing footage for a trailer or some amount of publicity. Few games, particularly those with any kind of randomness or procedural generation, look 100% perfect at every moment during development. Even if there aren’t bugs, you’re trying to take a slice of time, a single image, where the game shines as what you envision it to be. It can take weeks and weeks and at the end of the process you feel a strange mixture of pride in what you have created and despair over all the things you have left to do.

Skids!

So over August and September as I’ve been catching snippets for use in the Seattle Indies Expo, I got a face full of the driving experience at times when I wanted to feel the Drive Magic. However, as you drive and shoot there are stalls (put in there intentionally) as the game resolves projectiles and impacts.  That sort of turn resolution is pretty common in tactics games, it lets you see the results of your attack (or attacks against you) and process the result before moving on.  I originally set the system up that way because “that’s what Roguelikes usually do“.

However, the frequent halts during my drivin’ and skiddin’ started to bug the crap out of me, especially when there were a lot of enemies nearby. Of course I don’t pause the game when something happens offscreen, but when there are a lot of enemies it can happen often, especially in the arena where enemies were attacking each other.

So, to the experiments!  I decided to try a couple things:

  • I removed the projectile pause entirely and let attacks just resolve while the various vehicles moved to new positions. 
  • I adjusted the speed at which the turn played out based on the player speed, so turns (including those of opponents) just play out faster when the player vehicle is moving at higher speed. Turns at 25 MPH play out faster than turns at 100 MPH.

The results were interesting. Keep in mind that this is still 100% turn-based.  The only thing that has changed is how turn results are represented.

A quick experiment with turn execution

You can specifically see the lack of a delay when the player fires machineguns and rockets.

Yes, the result needs a bit of work, specifically:

  • Bullets don’t yet “lead” their targets so they are striking behind the vehicle.
  • Some slow weapons like rockets that take longer than a typical move duration (generally between a quarter and a half second) need to be converted to take multiple turns to reach their destination.
    • …but hey that’s gameplay, y’all!
  • I still need to make sure combat resolution is as readable as possible, such as:
    • Armor impacts and damage numbers are still getting obscured.
    • The armor side that gets hit isn’t as obvious as it should be
  • And of course, special moves will still need to stall the game, but that’s fine for something that doesn’t happen often.

However, in all it did improve the overall feel of driving and smoothness. This was a worthwhile experiment and I’m all in on making sure the game feels great and still has a clear turn-based combat resolution. Not sure where this will lead, and I know that a certain segment of the audience will want to be crystal clear on what’s going on in combat, in the same way that another segment will want to cut loose and skid around fluidly.  Possibly I’ll leave a toggle for the roguelike turn resolution if the player wants that (should be possible).  

More to come as the game continues to evolve!

Auto Fire v0.6.61: Citadels, Balance, UI and Optimization

In the last couple of months we’ve made a number of changes to UI, the combat experience, and those you meet at citadels.  It’s a beefy update but more to come.  Download the new build, and while you’re waiting check out the new teaser!

Release Notes

Advanced Sector Preview

  • There is a temporary button in the Campaign Start dialog called ADVANCED SECTOR PREVIEW
  • This will advance you to a sector slightly deeper into the game.
  • This is recommended for experienced drivers only!

Combat/Driving

  • Made hits impact the exposed side of the target rather than randomly within their square
  • Fire gang implemented for region
  • Gave fire gang bosses rocket salvos that drop flaming oil
  • Enemy vehicles can now use dropped weapons.
  • Fixed a number of reverse control issues
  • Towers fire double rockets again
  • Entrances to roadways and garages are no longer barriers to be collided with, you can drive through them if you want.
  • The Camera now now holds on your target until the projectile hits, so you can better see the results of your shot

Balancing

  • A lot of difficulty tuning.  Damage ramping isn’t nearly so crazy.f
  • Adjusted enemy aggro down a little so we didn’t get mobbed from everywhere
  • Reduced the population of most maps, the player could easily get swamped if they covered a lot of ground
  • Fixed burning damage to not apply the weapon’s base damage, which was causing massively OP damage when you or enemies are on fire.

Citadels

  • Added a progression of mayor quotes in the citadel.  It increases as you get better renown or accept new sector quests.
  • Mayor feed in the citadel ticks out like the quest panels do.
  • Changed the faction readout to show the relevant factions in the current sector, and have room to show their full name.
  • The citadel screen shows sector stars in a cleaner fashion.
  • Removed skills entirely.  Perhaps they could return later, but right now they are not sighted to add value to the game.

Social Feed

  • Added a feed to the loading screen so we can have a colorful quote from the populace as well.
  • Improved some of the macros to better support “they” pronouns.
  • Cleaned up some bad citizen tweets.
  • The leader of a citadel waits for the player to get done loading before teletyping.

Content/Generation

  • Massively improved and refined the city ruins block set
  • Added randomness to a lot of rubble prefabs in the cities
  • Reduced the ruincity population
  • Overworld roads are more diagonal and less derpy looking
  • The highway map doesn’t have a missing tile at the exit
  • The highway map has additional patches and population
  • Less damn trash bags all around, none in the desert

Gangs/Organizations

  • Updated the bandit naming setup for better results.
  • Corporate agents and duellists now named better.
  • Wrote some minor encounters for fuel and towers
  • Reduced base quests from 4 to 3 fuel dumps and watchtowers

User Interface

  • Added a pointer that indicates the next objective if radar is pressed.
  • The player is prompted to press radar when the encounter is completed.
  • Added visual quality settings to  the in-game popup.
  • Some visual improvements to tablet displays such as challenge and mission completion
  • The in-game settings menu has a visual update.
  • Gender selector is now He She They
  • A lot of gamepay fixes and support.
  • Added gamepad control to Gear usage menu
  • Revised the social feed phone mask
  • The social tablet fades out after a set amount of time, but fades in for key messaging

Environment/Visuals

  • Created a full set of cars with color variants red, blue, yellow, black, and apply them to gang types
  • Replaced some of the old awful rocks with more stylized desert-worthy obstructions
  • Added VFX, sound and hitstop to crit hits
  • Fog of War should be steadier and not have a weird lag.
  • Terrain visuals are adjusted and scaled between tactical desert and overworld
  • Revised VFX for scattergun (not great, but better)
  • Smokescreens are now effected by the force of the vehicles moving between them.
  • Smokescreens and fire oil now decays out properly rather than pop
  • Smokescreens have an intro that plays in unscaled time so that it doesn’t look weird when the game is paused.
  • Mines and oil barrels now blink in unscaled time so they stand out to the user.
  • Flamer doesn’t attach to the muzzle anymore, should look better
  • Speed lines are more prominent with when the player is boosted
  • Dust motes are now in the world and affected by vehicle speed.
  • Fixed long wires appearing as short wires.
  • Adjusted the bloom of oil splats and removed oil hit VFX because it was causing a weird square bloom thingy
  • Adjusted some sparks to use a brighter and more efficient VFX.
  • Water tower no longer peeks through the fog layer
  • Emplacements do not disappear when obscured

Audio

  • Hitting a soft thing like a body plays a different ram sound than a heavy vehicle thing
  • AL now has his own message sound

Bugs/Optimization

  • Upgraded to Unity 2020.3.40f
  • Quality Settings adjusted to default to High rather than V High or Ultra.
  • Fixed bug where scattergun could target itself(!)
  • Automap cleans up better and avoids memory wastage.
  • Fixed an issue with defining battlegrounds, we risked a crash when getting into a combat encounter.
  • Fixed camera view for vehicle in stable or character view.
  • Fixed an issue with the car stable sometimes showing improper buttons.
  • Deferred lighting is being used
  • Optimized some materials for draw efficiency and hitches
  • Cleaned up issues that occurred if the campaign is repeated multiple times in a single session
  • Hopefully fixed tires that could sometimes get out of sync and pop out of their wheelhubs
Click here to find it on Itch.io!

Auto Fire at the Seattle Indies Expo

A couple of weeks ago, Auto Fire got taken out for some air at SIX, the Seattle Indies Expo.  This show was an in-person event in conjunction with PAX, and featured indie games from around the rich development community around the Seattle area.

Check out the other games that were displayed at https://six.seattleindies.org/

It was really fun to get the game into people’s hands and take feedback, to learn about what got them excited, and of course where more work had to be done.  In all it was a great show for all.

There’s a corresponding online event on Saturday Sept 24th, that will be going live on Twitch!  https://www.twitch.tv/SeattleIndies

In preparation for the event I assembled a new teaser filled with updated footage and cool stuff.  Hoooo boy that’s a tougher job than you think… It took the better part of a couple weeks, but I think it paid off. Enjoy!

Auto Fire v0.6.55: Citadels and Renown

Some great new updates to Auto Fire this month.  The UI got another level up with some improved screens and a more lived-in look.  You can now go to the citadel and help those people out, building renown with that city.  Citadels are a little more solid in their representation also, with one of only a few corporations keeping control of the populace across the country.  Finally, the visuals took an uptick with better lighting, new desert terrain visuals and cleaned up foliage.  The time to check it out is now!

Click here to find it on Itch.io!

Content:

  • Sectors now have a renown level that gates new sector quests.
  • Tutorial also now uses renown sector quests.
  • Cleared up the skull rating and show it on the challenge tablet app.
  • Cleaned up factions signficantly.  At campaign generation there  are only four corporate factions, two military factions, one citizen and one duellist faction.
  • Set up each sector now with a consistent resident and enemy faction.
  • Changed enemy and sector definitions to be able to be controlled on a per sector basis, allowing for better channeling of content across the overworld maps.
  • Quests now have a clearer faction reward and renown award for sectors
  • Fixed up sector leader quest arcs.  The player can eliminate an enemy entirely from the overworld of a sector.
  • Quests now have a goto step or a load cargo step.

Citadels:

  • Each citadel is run by one of the 4 corporations.
  • The mayor or citadel leader will dole out a quest for you, which gives you an opportunity to increase your sector renown
  • The player can now abandon cargo in a citadel and it will be returned to the quest list
  • The player can even abandon sector quest cargo and it is returned to the sector quest list.
  • Cargo cannot be returned for salvage profit unless it doesn’t have a quest attached.
  • The player cannot accept a cargo quest unless they have room to haul it.

HUD:

  • Dashboard elements now have schmutz on their frames as well as the glass
  • Sped up zooms and added functionality to make any panel zoom, plus zooming recenters the view based on the visible portion of the screen.
  • Improved the Travel and reward tablet app visuals
  • New Challenge popup when entering a combat area
  • Fixed up the quote panel in the upper right.
  • Quest steps now read out as crossed out if completed in quest list

Menu:

  • Mayor feed in the citadel ticks out like the quest panels do.
  • Revised automap and travel panels to use the same look
  • Menus and screens also have some schmutz added for a bit more lived-in look
  • Added macros for if the player chooses the gender “they”, so we can say “who [is] [he]?” as “who are they?”
  • Added a feed to the loading screen so we can have a colorful quote from the populace on the current situation.

Visuals/VFX:

  • Fixed up quality settings in the settings panel, as well as setting the default quality to high.
  • Revised all desert terrain textures to something a bit more stylized and cleaner (Deep Desert Pack asset)
  • Fixed up all terrains to properly display grass again (broken links abound)
  • Adjusted lighting to not overbright, and made sure all views use deferred lighting so that VFX lighting shows up more effectively.
  • Put dirt decals under shacks so as to make them a bit clearer as obstacles.
  • Zoom makes a whoosh sound

Bugs:

  • Fixed improperly LOD’ing models by a windmill
  • A courier quest to a combat area now can complete and the combat quest continues properly.
  • Fixed bug that if I killed the sector boss, the game would eventually crash
  • Boss camera on encounters now zoom into the proper target again.
  • Fixed several bad citizen tweets, some of which sounded extra dumb and others crashed the game(!)
  • Fixed crashes based on occasionally building battlegrounds.

Tech:

  • Adjusted night lighting settings (to be used in the future) for some experiements.
  • Updated to Unity 2020.3.33f

Auto Fire v06.52: Cleaning Up and Paving the Way

Some cleanup updates today, just paving the way for setting up new content in the future.

Gameplay/Content

  • The tutorial encounters aren’t as punishing as they were.  Sorry! 
  •  You don’t have to fight as long to reach the boss in the first outpost. 
  • Significantly more parts are awarded on the field.
  • Flamethrower line can now target the ground.

Settings

  • Did some fixes to how I was handling settings for those of you with laptops and unusual screen limitations.
  • There is now a minimum allowed resolution (Horizontal at least 1024, Vertical at least 720)
  • Graphics Settings should properly record your selected resolution.
  • Music and audio should also set and record properly in the main menu.

VFX/Visuals

  • The floating text and the pillars showing at an exit was creating a pretty bad experience.
  • Adjusted location labels for visual appeal
  • Made label ping show through world for visibility (hard to see the exits in canyons)
  • Location labels do not obscure your view when you enter a zone.
  • Fixed up flamethrowers on player as well as enemy flamers

Bugs

  • Entering combat in the field (via random encounter) now works properly.
  • Buying and selling at the citadel now properly supports stacks of items.
  • Repairs now work properly, you can’t get free repairs if you are near zero resources.
  • Small visual fixes and typos
  • Impassable outpost entrance now fixed (the outpost generator wants a larger palette to place protective walls)

Big UI Update! (it’s about time)

It’s been a long time coming, but Auto Fire is back in action with a bunch of updates and improvements!

There has been a major UI revision for just about all of the supporting screens and menus. Consumable gear was added so you can manually heal up in the field if you have the right items. There is a significant and growing tutorial that pops up how to play the game as situations present themselves. (And yes, you can turn them off in the settings!) More is in the works, including the long-promised arenas, hope you enjoy!

Loadout, repair and all the city interfaces are revised and much cleaner and easier to parse.

Gameplay

  • Some garages and repair outlets have a limited amount of gas or ordnance they can sell you.
  • Consumable gear was created that can repair your internals, drop mines or smokescreens, or basically enact any normal equipment’s function.
  • You can also target yourself on specific sides for armor repair gear, and the UI reflects it on your armor display.
  • When you complete an encounter, the loot is generated immediately rather than waiting until you move.
  • Radar is now a dedicated equipment type and slot called “Sensors”.  All cars have a default radar sensors package, but this can do a lot of different things.

Combat

  • Desert encounters now include combat moments that will drive you into a fight.
  • AI Updated for more responsiveness when spotting the player.
  • AI consider facing when planning their navigation routes, meaning that vehicles will plot paths more naturally and loop around their targets.
  • The line flamethrower can now target the ground.

Content/Tuning

  • Starter car only has 1 plate of armor all around, and no minedropper.  You’ll have to buy your own upgrades to get the good stuff.
  • Equipment crates now drop more items (versus from normal vehicle drops)
  • Crates on the field should never be empty.
  • First outpost in the starter sector now requires some vehicles to be killed before the boss emerges.
  • Old instant repair and armor pickups removed from drops in favor of the repair consumables.
  • Desert sectors should no longer have random encounters, only emplaced ones (that is, glints and smoke columns rather than just rolling dice)
  • Adjusted grip recharge rate to be a bit more generous.
  • Significantly more parts are awarded on the field.
  • Controls:
  • Big cleanup to allow for gamepad control of menus without losing focus.
  • Made accelerating into a skid work better, should not infinitely skid if you thrust against it.
  • Acceleration now waits until the next move to reduce your move’s time slice, so as a player you cannot reach max speed in a single turn the way you previously could.

HUD

  • Rework of the HUD colors and aiming interface.
  • Shrank the HUD components (gear, armor, social) slightly to allow for more playable space.
  • Changed social feed to dark mode, because the bright display was distracting from the gameplay.
  • The boss is removed from the HUD once you wipe them from a location.
  • Event-based tutorial popups appear when the player experiences various events, from taking damage to skidding to picking up gear.
  • The player’s challenge is now expressed with skulls, which is conveyed in the travel/gas popup to tell you what you’re getting into.
  • Added a real date display that updates based on player turns.
  • AL has a new look.

Menus

  • Complete rework of the character and loadout screens.
  • Complete rework of the repair experience.
  • Complete rework of the vehicle stable, to show all stats for all vehicles.
  • Complete rework of inventory, buy and sell screens to add categories and better controls.
  • Complete rework of the loading dock experience to show a map where you must deliver your chosen item.
  • Automap re-envisioned to use a higher quality smooth shader.
  • Automap locations are now interactive and can be hovered for popup info, and they ping indicating where quests are directing you to go.
  • Quest display revised to display a map telling you where you must go.
  • Quest steps are now crossed off in the Quest character panel.
  • Faction and skills are now shown in the character panel.
  • Entirely new inventory icons, for a punchier and yet colorful look
  • All item UI buttons are have a new shiny shader.
  • Items now display with level badges, indicating the raw progression tier the item has.
  • The loadout view shows pips that indicate when a higher-level item is available to be slotted in that location.
  • The inventory view shows pips that indicate when an item is new and has not yet been examined.
Cleaner HUD and gameplay interactions

Visuals

  • Enemy shouts appear in bubbles both on the HUD and over the enemy vehicles in-world.
  • Agents no longer echo their encounter dialogue into the social feed (it was cluttering the experience too much).
  • Zoom in moments happen after the level fades in rather than zooming when you can’t see.
  • New power lines, cargo containers, and other assets
  • Adjusted lighting on tail lights.

VFX

  • New explosion and fire VFX from toon explosion to a better stylized/realistic hybrid.  (It doesn’t block the player’s view as much)
  • Revised fire oil, burning objects and flamethrower VFX
  • Revised occupation VFX
  • Added decals on the ground from gunfire and explosions.

Audio

  • Vehicle audio uses Realistic Engine Sounds package and adjusts and shifts gear based on speed.
  • Use audio mixer to duck car audio when waiting between turns.
  • A new stinger or tutorial popups and specific informational moments.
  • Revised boss music slightly to stutter less, and use a continuous loop sometimes for quality’s sake.
  • Audio is set properly on startup from the prefs now

Bugs

  • Fixed several bugs with how bosses dole out their quests and get resolved at the end of a combat.
  • Fixed several screens where their text didn’t align properly.
  • When returning to a previously visited map, we handle the population correctly.
  • Fixed speedometer flashing visuals to properly flash at the end of a turn.
  • Made reverse skidding work better, it had some really bad behavior.