1. Cleared Hot
  2. News

Cleared Hot News

Right in the (Game) Feels

I am back to working on the hard to define task of "game feel". This involves making the things you do over and over feel… good.

One of my main playtesters is a friend I've known since 1st grade. I've played every generation of video game with him. We've been comrades in arms in n64 goldeneye, being repeatedly gunned down by his older brother, I think we actually got into a fight one time over Tekken3 or maybe some Dreamcast boxing game, and we've shut down entire battlefield servers as helicopter pilot & copilot.

So when I send him a build, I can easily tell if it "feels good" or not. The last time he played, it was clear something was missing from the minigun. He sent me back a gif from Blackhawk Down and said "this is how I want to feel". Alright. Mission accepted.

Game feel is more of an art than a science... The best way to improve it is just to experiment with a bunch of things.

So let's get our paint out and Bob Ross this minigun, shall we?

lol I am getting SNES controller vibes from that paint palette

Making the minigun feel more powerful

[h2]The Before[/h2]

Looking back at this gif it's hard to tell I'm shooting. And yes this was an older build with a different camera view.

[h2]Screen shake + Barrel Flash Effects[/h2]
Screen shake is a common game feel tweak- you make the camera move slightly in reaction to powerful events in the game scene.



So much better already. even without audio it's clear when you're shooting.

Thankfully the asset we're using for camera work (Cinemachine) has a nice system for adding screenshake impulses to events. All we have to do is define the rotation + position waves that shake the camera.



As you can see, the camera shake involves 3 different frequencies rotating on the 3 separate axes. This gives a good shake effect that feels natural without having a weird oscillation in only one direction.

I decided not to use any position shake, since that tends to be more jarring than rotation.

[h2]Splash Damage + Spread[/h2]

Part of the issue I wanted to fix was how lame it felt when you shot right next to an enemy, and nothing happened. The easy improvement here was to add splash damage to the rounds. So now when a shot impacts a surface, it tries to add damage directly to what it hit, and then uses the existing splash damage system to add damage to anything in a 2 meter radius around it.

The other part of this was that the rounds would go EXACTLY where you were aiming. This sounds like a good thing, but it looked and felt strange. So I added an angle of spread that can be adjusted



[h2]Better Tracers[/h2]
Ok I have to admit something. Before now the tracers didn't actually go where the bullets were hitting. Forgive me. It was good enough at the time but not good enough anymore. Even worse, they would go through surfaces that stopped the bullets. This irritated me for awhile and I was so happy to fix it.

Now the tracers actually follow the path of the bullets, and stop where the bullets stopped. This means the spread of the minigun is directly visible in your tracers.



[h2]Aiming Parallel[/h2]
Previously both miniguns (left and right) would aim towards a single point.

By keeping them parallel, you increase the actual area covered by their shots, and I think it just looks better too.

I also improved the look of the lasers which designate their aim, and added small laser dots to the end. This makes it clear to the player where the shots will land, if they're blocked by an object, and it responds slightly to changes in the helicopters angle.

Before After

[h2]NPCs are now scared of your bullets[/h2]
Another way to make something feel powerful, is to make the NPCs afraid of it!



This took an entire rewrite of the NPC AI. Which was on my list for a long time and this was reason enough to do it. More on this next time, it will probably be the topic of the next devlog.

Each NPC has sensors that it can use to make decisions about what state to be in. If they see or hear a shot near them, and don't see a current target, they will run away. This uses a common method of adding AI Stimulations or "Stims" to the world that each NPC can choose to react to.

A fun bug that exists currently: The NPCs don't differentiate between their own shots and their enemies shots. So they can essentially shoot and then startle themselves, and run away. I'm working on a fix to give them a bit more courage.

[h2] More Bass [/h2]
The minigun sound effect doesn't have much in the low frequencies, and it's hard to really distinctly feel when the individual rounds are being fired. I experimented with adding a small bass pop when the gun actually fires each bullet. It's subtle, but it feels a lot better.

I don't have a gif for this. ;)

[h2]Recoil[/h2]
This one is subtle... I wonder if you noticed it in the above gifs? The minigun has a bit of recoil that it exerts onto the helicopter when firing. Notice how in the before gif, the helicopter is totally stationary, but in the other gifs it's moving slightly backwards.

I think I will use this more for the minigun upgrades in the game. If you unlock a more powerful gun, it might have higher recoil.

In Summary
happy bob ross with trees for hair is a vibe

Tell your friends!

Know someone that would like this game? Ask them to wishlist it + follow here: https://store.steampowered.com/app/1710820/Cleared_Hot/

Wishlists help me a ton. And thank you all for your continued support. I've heard from a bunch of you over email and twitter and it helps a lot to know you're along for the ride!

A F*cking Tank

Sometimes when I've been hard at work on the "guts" of the game, I start to crave something that's a little more tangible... something that I can shoot. Even better if it shoots back.

So after working on an entirely new upgrade system, with it's fair share of head-scratching bugs, I decided to treat myself to a brand new unit: a f*cking tank!

Why is the tank shell green? I was tired of gray.

Movement


I had this idea in my head of a fully physics based tank, that bounced around from recoil and could be picked up by a strong enough helicopter. How much does a tank weight, anyhow? More on this later.

Let's start with movement. This thing has to be able to roll around and climb over objects, but it's not quite the same as the 4 wheeled vehicles in the game, like the pickup truck. Oh and it has to be simple, because I want to be able to have a ton of these in one level.

I decided to try an approach to model the tank tracks with a series of wheels.


Each one of these wheels uses a raycast (like an invisible laser...) to figure out how far the ground is. Then it applies some forces based on this distance. One force is applied upwards on the tank, simulating a car suspension. The other resists moving sideways, like a tire or tank tread would. You can set the friction how you'd like, so you can make it as sticky or drifty as you want.

You can see the suspension forces in the Unity editor- the red lines represent how much force is being applied upwards from each wheel.



You can see it doesn't have much trouble getting over obstacles :)

Shooting


Oh and yes, it can shoot! One of the great things about this stage in the game is that I'm starting to re-use core pieces of code. The tank uses the same code to shoot it's projectile as does the helicopter, and the NPCs who have RPG launchers.



The tank shells will do a lot of damage, but you should be able to dodge most shots.

Yes, you can pick it up


An M1 Abrams tank weighs about 55 tons. Pretty heavy. Each helicopter in the game has a max upwards force it can give, and the object you're carrying exerts a force on the helicopter. By default, this Little Bird helicopter wouldn't be able to move a tank. It can be tuned a bit for gameplay, so maybe it should only be able to drag a tank, but a larger helicopter could carry it. This is TBD based on what makes the gameplay better.



GDC 2023

I will be at the Game Developer Conference in San Francisco this year, March 20-24. Come say hi and I'll give you a sneak peak of what's to come.

Email List

If you've read this far, you should be on the email list. I consider you an early adopter and I'll be asking for direct feedback on the game's direction soon. I want to hear from you! The game's at an early stage where you can have an impact on what comes next, so take advantage of that.

Join the email list here: https://clearedhotgame.com/email-list/

Missions, Upgrades, UI!

Welcome back, future pilots and brave early adopters... Let me regale you with tales of battling Unity UI elements and ever growing game loops.

Missions!

A lot of people have been asking me if the game will have a campaign mode. Yes- it does! I'm taking this a great sign that people do want some kind of a direction in the game. I plan on having both a campaign mode and a variety of "quick play" modes that you can pick up and play within seconds.

My goal is to not make it entirely linear, but to have some kind of a path to follow. There will be ways to make it easier or harder on yourself, as you prefer, by choosing when to upgrade your helicopter and how early you take on the harder missions.



Here is a quick preview of the Mission view. These missions are all drafts or for testing, and not what will be reflected in the released game.

Upgrades

Next on my list is an upgrade system that allows you to increase your helicopter's stats, add new weapons, and unlock new ammo types.

This is what I'm working on currently, so all I have right now is a draft of the UI from the designer I'm working with.



As I'm currently planning (this may change) but upgrades work like this:
  • Each upgrade has a cost and a minimum XP required.
  • Once purchased, it can be installed or removed from any helicopter you own (yes you'll be able to have multiple, of course!)
  • Each upgrade has a weight. Your helicopter will have a max weight, so you'll have to make strategic choices about what to install. Some helicopters will have a higher max weight so you can install more.
What kind of missions do you want to play? I'd love to hear from you- what comes to mind when you think of missions for this game? I have a wide variety of ideas but I'm super curious to hear yours.

Sign Up For Beta Testing

Do you want to be the first to play a closed beta of the game? Join the email list here: https://clearedhotgame.com/email-list/

I don't have a date set for this yet, but you will be the first to get access. I will add more info as the time gets closer.

No Rope, Best Rope?

Welcome, gather round and take a seat, as I fill this dark chrome window with half-intelligible war-stories of trying to make a rope, a simple rope, that hangs beneath a helicopter... It's been a long summer of solo-dev, and it's time to open the kimono.

[h2]Why A Rope?[/h2]
I think the coolest part of having a helicopter in a game is that it's still able to interact with things on the ground. And the rope just expands those possibilities.

There's a lot of interesting gameplay scenarios that involve moving things around: people, vehicles, supplies, etc. And I want the game to be very open ended as far as what you can pick up and how you use it. So we need a rope, and it needs to be physics based.

[h2]Enter Particle Physics[/h2]
My first attempt used a rope that was simulated with particle physics. It also had a magnet that could shoot out towards your crosshair. But the rope was limited in length, and often times you wouldn't hit what you wanted to.


The problems with this approach were:
  • It was very performance intensive
  • Objects would swing way too much, and placing things precisely was impossible
  • Objects would swing around and on top of the helicopter and land on the rotor blades
  • Connecting to objects was frustrating and time consuming

[h2]No Rope, Best Rope?[/h2]
After a trip home where I got sick and took a full week off, I returned with fresh eyes and had an idea: what if I separated the rope from the actual physics of carrying things? Then I could code the behavior directly, and just add a purely cosmetic rope to make it look right.

Had I been searching for the best rope, but really what I needed wasn't a rope at all? I took a deep breath, deleted the rope from the helicopter object and stepped into the void.

I thought, if I'm not just using a rope, and designing the behavior from scratch, what actually is the desired behavior?
  • Objects under the helicopter are highlighted so you know which one you'll pick up
  • Once you select an object, you know it's the one that will be picked up
  • Objects are pulled in and hang mostly underneath the helicopter
  • Objects don't bounce or swing too much, so they can moved and placed effectively
  • Objects under a certain mass should move similarly, but really heavy objects should move more slowly, or should slow down the helicopter.

On a whim, I decided to try a PID algorithm to move the objects directly.

[h2]WTF is a PID[/h2]
The PID algorithm is one of those things that sounds complicated because it's an acronym (also when you call it an algorithm), but it's actually fairly simple. It's just a way to move something to a target, and being able to control how fast it gets there and how much it slows down as it gets closer. PID stands for the 3 parameters you can tweak: proportional, integral, differential.

You can use PID control for many different things; it's used by thermostats to get the temperature right, used by robots to move objects, etc. I was an electrical engineer in a past life, so that's where I heard about it.

So how do we use it here? We have a PID controller that tries to move an object to a place under the helicopter. We have another one to add torque (change the angle) of the object, so it sways with movement. In the Unity Debug view it looks like this:

The green circle shows the range of objects that can be picked up, and the magenta line shows the force being added to the cube once it's picked up.

Then we connect the helicopter and magnet with a "cosmetic" rope, and it looks pretty good. This rope still uses particle physics but is much more performant.


[h2]What Can you Pick Up?[/h2]
  • Vehicles (even when being driven by AI)
  • NPCs, both friendly, enemies, and civilians/VIPs.
  • Inventory Supply crates, which give you additional ammo or other items once reeled it.
  • Any kind of movable objects (burned out cars, crates, etc).

To make all of these possible, there were some edge cases to cover.
  • NPCs have to be "unpinned" so they behave as a ragdoll
  • NPCs are carried by their hips, but if you calculate the force by using their hip mass, it's not enough. So we need a way to override the mass used by the PID in certain cases.
  • Vehicles should generally work but we don't want to flip them over
  • Inventory Supply crates should give us ammo and then get destroyed cleanly

To solve this, each object that can be picked up has a PickupRoot component on it, that can declare it's type, mass, and can be inherited from for the things that need special care. For example, there is a PickupRootNPC that can unpin the NPC when picked up.


NPCs can be picked up, and actually still animate while being carried around. Should they still shoot at enemies while hanging?

[h2]What Do You Want To Know?[/h2]
Ok, you read this far. You're a pro. What do you want to hear more about? What should I cover next time? Hearing from you is motivating, so let me know!

If you're interested in eventually getting a steam key to play a closed beta, you can sign up for my email list here: https://clearedhotgame.com/email-list/ I don't have a date set for this yet, but you will be among the first to get access.