Category Archives: Unity

BIG WEEK! Big Week!

This has been an exciting week for me… As Hidden Path puts the final digital shrinkwrap on my most recent VR title Raccoon Lagoon, I’m bidding the classic nine-to-five a temporary adieu. As of yesterday, I’ve started focusing my full attention on Auto Fire! It is my hope to get it into solid, pro-tier shape over the summer, and see what happens!

In celebration of this moment, I’ve put together an early trailer, complete with some pro-tier voice acting:

Auto Fire needs a lot of work yet. I need to make the interface more approachable, flesh out the content, and improve the basic art so that the game starts turning heads. I need to deliver on the fantasy of driving a combat car… that’s skidding, shooting, hauling convoys, maybe even launching from jumps? The possibilities are endless!

Adding gamepad support should help people get comfortable with it quickly, and improving the mouse interface will hopefully do the same. Anything that helps people ramp up and be gripped by the promise of a muscle car bristling with chromed-out weapons.

As an inaugural step for my all-in on Auto Fire, I’ve been deeply examining my turn model… something I haven’t touched in like two years. The way it used to work is that each team would execute their moves when the timeline reached it, so that if you were moving at 60 mph (3 moves per turn), and the enemy was moving at 40 mph (2 moves per turn), the simulation would resolve with:

  • You move (progressing to 0.333 seconds)
  • They move (progressing to 0.5 seconds)
  • You move (progressing to 0.666 seconds)
  • They move (progressing to 1.0 seconds)
  • You move (progressing to 1.0 seconds)

Guh. This might sound sensible if you are a realism fan, but when many entities are moving at different speeds, the turns all interleaved and the player never knew who was going to move when. It was confusing and could get frustrating as an enemy vehicle suddenly drove right into your path or out of your line of fire.

The new model is pretty simple: Each turn you execute your moves, then the rest of the world executes their moves. So in the above example, you’d get your 3 moves, then they would get their two. It’s basically X-com style, but you know what?

It ended up playing exactly the same.

Yeah, you can’t really tell there’s any difference at all, it flows great. And while I was worried that you’d be irritated by that long pause for your opponents to do their thing during your fancy driving , it actually feels a lot better than when your opponents interrupted you at odd, unpredictable times during your turn.

This is an important breakthrough because if I can make the player keenly aware of what a “turn” is, I can help them understand what acceleration does (more moves per turn) and how weapon cooldown works (most weapons can only be fired once per turn). I might not need a hojillion progress bars (a weapon is either available or not). Since the core goal is to make the game more accessible and less math-y, I’m optimistic that this is a good step that doesn’t sacrifice the core gameplay.

Finally, along with this exploration I started experimenting with better shaders using Amplify for Unity. It’s another useful step, because there will be a lot I want to convey in-world and good shader control will help me make better 3D and mouse-driven interfaces. Things are looking up!

Auto Fire v0.5.12: The Spruceining(tm)

I’ve been laying the foundation for a trailer over the last couple weeks, so most of my progress in Auto Fire has come in the form of cleanup, although there are a few gameplay tweaks, mainly to make that early experience a bit better. On the upside, there are less-soldier-y gang members, a cleaned up HUD, some new lighting and vehicle trails, check it out.

AutoFire

Starting next week, I’ll be able to work on Auto Fire full-time for a while, so prepare for some meaty updates.  The goals are to significantly improve the player movement, reveal more options when driving, and fleshing out systems that have only been teased, like a more alive overworld.

See you on the road!

Changes

  • General
    • Upgraded to Unity 2019.1, which seems to have gained a little performance.
  • UI
    • Cleaned up UI
    • The equipment quotes in the info popup are now aligned correctly
    • Revised weapon icons
    • Revised window frames, etc.
    • Removed the skid meter behind the car, since it didn’t look great.
    • The player can turn the skid meter on or off in the options screen
    • Remove random encounter dialogues until they are ready.
  • Visuals
    • Revised the road decals to make for softer edges
    • “Soldiers” are now desert warriors
    • Foot gangers now use the proper pose to match the weapon they are wielding.
    • Added headlights to the player car when in a ruined city
    • Lowered overall brightness of the city map, so that the light sources could stand out.
    • Increased the light brightness for streetlights and barrels and fire.
    • Revised the trails from the taillights of vehicles entirely.  They use a new system that makes them very smooth.
    • Improved the detection of offroad when a vehicle is driving, for visuals and gameplay ramifications
  • Audio
    • Gangers now use battle cries rather than military radio transmissions when they spot the player
    • Vehicles now rev their engine instead of honk when the spot the player
  • Balance
    • Improved the visibility of enemy cars (they were very short)
    • Increased the range of junkthrowers since they were still kind of frustrating to use.
    • Adjusted population cap to accommodate new fuel dumps and watchtowers.
    • Fuel dumps are now guarded by flamer gangers

Auto Fire v0.5.10: Quality of Life

Welp… another week, another build update.  I’m sure I’m a bit too excited about having a real honest-to-god key configuration screen, but I’ll take the little victories. Hooray for Rewired!

Some bug fixes in UI are coming in also, but more important is the fact that options screens hold settings that persist across sessions.  Yay quality of life!

Finally, the vehicle selection popup at the start gives you more information so you can pick a car that matches your playstyle.

Don’t worry, I’ll be back to the shooty-shooty kind of update next time. In the meantime you can go get v0.5.10 on Itch right here.

Progress both Practical and Pretty

There has been a solid amount of progress on Auto Fire in the last month, though not everything has been visible.

Conditions

There’s a condition system now, where entities can be stunned, set on fire, made to skid, be blind, etc, and that will last a fixed number of turns before automatically removing themselves. Nothing super fancy, but it allowed me to do stuff like cause a vehicle to spin out when it hits an oil slick.

It also allowed me to give the player’s radar more functionality, because it now “paints” targets within a specific radius for a set amount of time. Ideally the player should be able to build up sustained fire on a single opponent, or race through a group (at high speed to avoid being shot) and hit everyone with a radar ping before swinging around and taking advantage of the higher hit rate (and eventually critical hits spurred by this).

There is a new icon system above vehicles to show their current conditions, which hopefully will teach players more about the advantages of speed and choosing targets.

Weapons!

I did a bit of work on weapon resolution to clean up some weirdness, as well as allow for effective area effects over various volumes. I can have weapons with blast radius at impact, cone effects, lines, and more. This gave me some vastly improved versions of scatterguns, flamers, and so on.

Scattergun

I also switched over my missiles to LeanTween (a great Unity package that’s freeeee, although the Editor that goes with is worth throwing a few bucks at) so that I could use more sophisticated arcs (splines, eases, etc) for the projectile travel. This gave me some great drunk missiles and so on.

A heavy rocket, follwed by a mini-missile salvo.

City Flow

A somewhat smaller bit of work but vastly important was looking into problems I was starting to see in my city layout.

A couple of years ago I put multiple months into a city generation method that took pre-crafted blocks and spliced them together, street-to-street, with props and so on. It worked pretty well… However, lately the cities seemed to have wayyyy too many skinny alleyways and dead-ends, even though I remember putting a fair amount of effort into reducing these.

Worse yet, I’d started to see some passability issues and unplayable maps, which I know I did checks for. Ugh. I love dusty Mad Max wastes, but the cities are just as important a part of the game and they weren’t fun.

I spent some time trying to re-learn what the hell the 2016 version of me had made. For a little bit I thought 2016 me was a bit of an idiot… but it turns out he was somewhat clever. It was 2018 me who introduced a number of bugs that caused loops to no longer form… that guy was a jerk. Specifically I had some code that overlaid roads over previously populated obstructions to create extra loops, and those no longer overlaid properly. In addition, my passability checks were not properly busting holes through the buildings and obstructions when needed.

I added a bit more two-lane roads and discouraged alleys from forming very often. In addition, I added some new block types to my definition that had fewer buildings, so some extra open spaces could be formed. I can pretty much make an infinite number of city block components, so I’ll keep adding ones that give some more driving freedom.

Battling some Ace Panthers in Old Custerton.

Onward

Anyway, I hope to have a new version out this weekend, it’s been too long. Wish me luck!

Auto Fire v0.5.08 – Controls! Citadels! Courier Missions!

I’ve had a pretty busy last month (and some weather drama), but luckily I did get some meaty things done on Auto Fire.

Controls

Many people have lamented that it is difficult to control Auto Fire because the “forward” key also accelerates. Responding to feedback, the new controls are thus: If you press forward, your speed is capped at 40 MPH (that is, 2 actions per second). This way you can manage most maneuvers without crashing into everything around you (previously a popular activity in urban areas).

Speed is still king however, especially out in the badlands! A separate Boost key is used to accelerate beyond 40, up to your vehicle maximum.

Citadels

A citadel is a civilized city where you can take a break, get repairs, and buy/sell items. Eventually different citadels will have their own specific functions, depending on which corporation owns it.

The cool thing is that you can now load up courier missions at a loading dock, giving you a non-combat way to earn more cash.

Cool Stuff

Gaw’bless Unity. It took like a half hour to put ragdolls on the soldiers.

I’ve also got some transition improvements, added new features in the overworld and improved the entrance/exit of areas.

We now save out fog of war between maps. (Whew that was annoying).

Quests work better! They’re improving all the time… but in this case I needed to create a quest on the fly when the player had to deliver cargo. This way I can use all the quest features like lists of rewards, player tracking, unique generated descriptions, and hooking into triggers such as arriving at a destination and showing quest markers.

Lame Stuff

Some significant bugs were also dealt with… I had previously been very diligent about properly and safely deleting entities, so that I wasn’t deleting them from a list I was parsing through. Unfortunately I wasn’t doing so when adding entities to the list. Thus C# was complaining at me nonstop, and it was nice to deal with that.

I also had a few remaining Entity pointers that I was saving across frames, which was not safe. I had changed everything over to a unique token method of tracking entities, but I had missed a few things previously. Again, good to get that out of the way and run some stress tests!

Tiles, tiles and Tools

I was just thinking about the challenges of generating a city map for Auto Fire and realized that I’ve accomplished a whole lot and haven’t really discussed it in a long while.

City layout workspace

Really early on in development I created some tools to generate block templates that get placed during map generation. This allows me to work with actual crafted sections of map (with variant buildings and other things that can be adjusted after the template is laid down). It’s more or less a requirement for cities since the classic “cave-style” procgen or even dungeon layout techniques don’t work as well as I’d like.

I create template patch objects that have a bunch of data attached to them such as exit points (for cities) as well as a variety of variable bits like spots for random decor and building styles (depending on the generation profile I’m using).

The block data that I save out actually even supports 9-slice scaling, so I can declare borders to be of a fixed size, but the center to be a repeating tile section that can be any size. It’s really useful in some situations like when I want a long crafted section of wall, or a large 4-lane boulevard on a city map.

For cities, however, I actually work mostly in blocks that are 4×4 in size, with street connectors that are 1, 2 or 4-lanes in size. If I want to make a larger block such as 4×8 or 12×16 I can do that as well. Getting the whole system to rotate blocks properly was probably the hardest part (you can see in the build right now that I have a few multi-tile objects that don’t yet collide properly… my work is never done).

I’ve got several workspace maps that I use to create these blocks of content (desert outpost, city, overworld, etc), and it’s a scalable system that could support a whole ton of layouts. When I say “damn I gotta work on content”, making 10x the tile variations and cities with specific flavors are ways that I could take advantage of the systems I’ve created.

Anyway, this approach isn’t particularly new but it works great for my needs… It deserves a more crunchy article dedicated to it, but it’ll have to go on the to-do list for sometime in the future. For now, hope the peek at the approach was a little interesting.

New Auto Fire Update – version 0.5.5!

Another update to Auto Fire has come down the pike! A lot has happened in the last couple of months, so it’s great to get a build out…  

Thanks to Itch.io for providing the app and the Butler tool so I can more easily post patches in the future.  It’s like Steam for the rest of us. 🙂 Checking out Perforce and my Trello, here are some things that went down:

  • Added an automap so you can see where the hell you’re going.  You can bring it up with the [Q] key.
  • Added a faction system.  Each sector has a generated gang that rules it, and a boss that controls each combat zone.  Defeating the boss clears the zone.
  • Boss arc now includes escalations that spur the bosses to taunt their forces and you with procedurally-generated shouts.
  • The quest system had some work done on it.  Now the player is automatically assigned a quest to take out bosses of places they conquer.
  • You can check out the current quests in the Character menu, by pressing [Tab]
  • Quest completion now has a dialog box and some information on the results.
  • The encounter dialog has a new layout, and it shouldn’t justify its text strangely anymore.
  • The Shotgun soldiers are much less deadly than they were.
  • Unity 2018.3 update, which should improve terrain performance a bit.
  • Some of the road decals had dreadful performance, so exterior spaces run a bit better now as a result.
  • Toying around with a little bit more of an intro on the title screen. 

Visuals:

  • I’m trying an outline shader on all gameplay objects to help them pop from the background.
  • Pulled up and adjusted the lighting to mellow some of the hard shadows that was creating visual noise.  Terrain  is a fair amount brighter now.
  • The garage looks a bit less out of place now.  Still work to consolidate the colors.
  • Difficulty now represented with bullets.
  • Time slows when you die.

Bugs fixed:

  • Armor sides weren’t appearing on the vehicle with the proper direction.
  • Multiple Line of Sight fixes.  You should not be able to be hit through obstructions now.  Fog uncovering on the map, the fire arc grid, and actual combat should all reliable return the same LOS results.
  • The player was able to exploit a bug that allowed them to use any side weapon against enemies in any direction.  Fixed.
  • Removed some visual stray VFX sprites on the scouts.
  • The (correct) car model appears again on the inventory and garage menus.
  • Exploding barrels had stopped harming things.  Fixed now.
  • Vehicle models now have manufacturer logo in info.

Check out version 0.5.5 here:

Download it from Itch.io!

Auto Fire Status Update – Oct 2018

Over the past several months I’ve been working through some significant issues to get Auto Fire up to snuff…  Good ol’ Jim talked me into going to the Roguelike Celebration 2018 in San Francisco this weekend so I could start showing my game to people more widely.  Pretty exciting!  Also pretty nerve-wracking given all the other stuff going on this summer.

Unfortunately there were a ton of things about my game that still drove me crazy…  For example I wasn’t able to save the state of maps between visits… which meant that the overworld in particular would regenerate every time you left a location.  I had to finally take the plunge and deal with that particular issue.

Man I hate two-years-ago me.  I did some real hack jobs to get that 7DRL challenge done, and I guess I wasn’t done paying off that technical debt. 😛

Luckily I got all the proper stuff to function, save off map states and basically am ready for honest-to-god savegames (although I don’t do save/load just yet.)  I’ve also made a whole bunch of quality-of-life improvements based on early player feedback:

This slideshow requires JavaScript.

  • The camera is now behind the vehicle at all times.  This way the WASD weapon keys are always consistent and understandable, and you don’t have to envision tank controls.  I had always suspected this would be a problem, but I think I was so used to camera-always-north that I didn’t have any trouble playing.  The added benefit is that the game has a fairly unique look as compared to other Roguelikes now.
  • Improved feedback for speed.  This is always a work in progress.  The player needs to know when they are speeding or skidding.  Putting the camera at a shallow angle and adding speed lines is my current strategy.  I also shake the camera a bit, but that may just be too much.  We will see where things go as feedback comes in.
  • Recolored environment.  A good friend did a paintover of a screenshot of my city environment a while back and it helped me gravitate towards dark ground surfaces, light obstructions, and bright colored gameplay elements.  This wasn’t the case with deserts (because, y’know, desert), but I’ve been darkening things quite a bit and trying to get the colors to pop.  Still a work in progress.
  • Revised balance and loot drops.  This isn’t really finely balanced, but I did make the early-play experience quite a bit easier so that people that wanted to try out the build could get a good idea of what the game was about quickly.  I also brought down the size of the average “loot pinata” that existed when I was testing loot out.  I really still need to do a huge push towards making content, maybe after the RogueCel.
  • Revised location names.  More on that next article!
  • New garages in the overworld and desert outposts.  I’m trying to make sure that the player has plenty of places to equip all the weapons and vehicle components I’m dropping.  That includes in hostile areas.  That will be a balancing act in the future.
  • UI improvements.  Again from feedback, I flash the weapon when you try to use it but can’t, and flash the grip meter if you are skidding and try to accelerate.
  • Music and sound improvements.  I got some new weapon sounds and hooked them up.  The quality is steadily improving there.  On the music front, I went back to Michael La Manna‘s excellent western apocalypse music… The quality is really high and fits the feel of the game really well.

My next step is to get the game out onto itch.io so that more people can play.  That will be sooner than you think!