1. Cleared Hot
  2. News

Cleared Hot News

New Year, New Features, New Hire

Happy New Year ! I'd like to thank you all again for your support. Two years ago I announced Cleared Hot, and the reception has been incredible. I still feel so lucky to be working on this game.

There has been a lot happening in the last few months. I think we're getting close to a beta build that we can start sending out for feedback. Not quite there yet, but closer. Let's get right into it.

Passenger System

One of my favorite parts of the game is being able to carry soldiers around in the helicopter. I loved doing this in Battlefield, and RS2 Vietnam. There's something about flying into enemy territory and dropping off soldiers as you dodge enemy fire. Maybe its because the stakes are higher, or the teamwork, or both.

The Passenger System in Cleared Hot needed to be updated after my last NPC system update. It actually came back together pretty quickly.





The other key part of this is that the NPCs can shoot from the helicopter.



And yes, the guy riding shotgun is shooting across the pilot! I think for the time being the pilot doesn't have any way to register damage, so you're safe. :)



The cool thing about this is, it's only a small tweak to how the NPCs typically find and shoot enemies. So they maintain all their same properties while flying in the helicopter: they just look and shoot at whoever they can see.

It feels pretty good- they tend to spot enemies that you didn't see, and they actually get a lot of kills. This makes me REALLY want to add a blackhawk with a door-gunner.

Bugs


No new feature is without it's quirks :) Right now the NPCs run full-tilt towards the helo when it lands, and they don't check if it's full until they arrive. The result is, they run into the side of the helicopter at full speed.

Future Additions


Another update we can include eventually is a better way to sort out which seat they run towards. Right now they all query the helo at the same time, and then all run towards the same seat. They get distrubed evenly once they arrive, but it would be cooler if they could understand that the guy infront of them is going to get the closest seat first, and adjust their target.

I want to explore having a "squad" in missions that you can also upgrade and equip separately from the helicopter. The gameplay is so fun that I think it's worth trying some new directions.

Ariel Joins the Team


I'd also like to announce a new member of the team: Ariel Coppes. He's working on the development side along with me. He joined the team towards the end of 2023 and has been making my life infinitely better since. After working solo on the code for so long it's incredible to have some backup.



Ariel has 14 years experience making games and we have similar development and teamwork values. He's been team lead and lead engineer on some larger teams, and has a lot of experience improving the tools and workflow of those games. Even being a small team he's already implemented some tools that make our development faster. Check out Ariel's work and blog here: https://arielcoppes.dev/

When you start your own project, you gain a lot of learning opportunities, since you get to work on everything, but you also lose the ability to learn from a team. As the team grows I'm stoked to be able to learn from others more often.

Thank You


Thanks again for your support. Things are gaining momentum, I can't wait to share more updates with you soon.

I want to hear from you! Any questions or ideas? Email me: [email protected]

Get in, we're going to the Arctic

Hello faithful wishlisters, friends, gamers!

After getting our Texas Desert map to where I liked it, I started to work with Eron, our 3D artist, on exploring some other biomes. We put together some ideas and references and decided on an environment for the next level: The Arctic !



References

We collected a ton of references of environments, vehicles and characters we could use. The movie Inception has some great snow scenes to reference, including some interesting vehicles and such. There were also a couple scenes from the various Bond movies in the arctic.



Arctic Base

Building the home base seemed to be the best way to get our bearings here. This is where you'll select missions, upgrades, etc.



Terrain

Next up was building the semi-procedural terrain. We decided that an arctic ocean coastline would be the major feature of this map, and that the rest should be relatively flat snow covered terrain.





It really helps to fly around the terrain, it gives you a sense of how the terrain will be visible during gameplay.

Vehicles

After sorting the terrain, Eron got started on cranking out vehicles. We wanted to have some distinct units on this map, the enemies here will be more powerful than the ones encountered on the West Texas level.

Just a few of the planned vehicles

We're also planning to have aquatic vehicles in this... boats, ships, and subs!



These are all works in progress, I'm looking forward to sharing more once we start building missions in the artic!

Thank You!

As always, thank you again for your support. Making a game is challenging, but your comments and emails motivate us.

Make sure you're subscribed to the email list if you're not already: https://clearedhotgame.com/email-list/ This is where I will send out the beta build when it's ready.

Thanks and see you again next time!

Theme Announcement!

I've always been a gameplay-first guy. I've button mashed my way through many a cutscene. My development of Cleared Hot has followed the same principle: Gameplay first. Find out what's fun, fill in the blanks later.

However, I reached a point where I needed a more specific visual style. What should the enemies look like? Where are these battles taking place?

I want the game to be reminiscent and nostalgic for people like me who grew up playing the Strike series, Battlefield, etc, but offer something new. I didn't want to make another "war in the middle east" game, for so many reasons. But I didn't want to lose that nostalgia.

Then one day I was talking to a friend and we had an idea. It has been 30 years since Desert Strike came out. What would the pilot from that game look like 30 years later?



We started imagining him as a grizzled, dusty old pilot, living in West Texas. Retired, but getting pulled back in to his old life.

Suddenly we both felt inspired. This felt like the right combination of grit, dry humor, and 90s action movie tropes. The main character's situation in life could mirror some parts of ours: we're revisiting our Desert Strike memories 30 years later. A bit older, a bit grayer (in my case) but maybe we still got it...

As far as how he gets pulled back in to the action, and what the specifics are, I won't spoil that yet.

Visual Style

As part of this theme, we created a new level, basing it on rural Texas / Arizona. Thankfully this coincided with hiring a 3D artist, which was a huge milestone. I've been using pre-made 3D assets for the game up until this point, just in interest of faster development. But now I had an idea of the theme I really wanted.

Luckily, I took part in a game jam with some friends a few months back and met Eron. After the jam we talked a bit and he decided to join the team. We have very complementary skillsets and he's helping me a ton on all kinds of visual aspects of the game.

New Level - West Texas

This level is still a work in progress, but we have a functional level we are building new missions for.



We also built a new homebase, pictured earlier, which is where you'll upgrade your helicopter and choose missions. It's a safe area that will change as the game progresses.

New Vehicles


What's a new level without some new vehicles?

[h3]Unmarked Sprinter Van[/h3]
This beast-of-utlity serves to drop off enemies around the map. They roll up, screech to a stop, and 5+ enemy NPCs get out.


[h3]Quad Bike / ATV [/h3]
Fast and nimble, but has low health.



It comes with 2 NPCs onboard: a driver and a gunner.

This is the first vehicle to feature NPCs using their own logic + decision making while onboard. The gunner runs through their standard behavior tree and decides if and when to fire their weapon.

This is the first step to having NPCs that can decide to enter vehicles and control them on their own. Imagiine seeing a bunch of NPCs run to get into a parked tank...



You can actually shoot the NPCs off the vehicle as it's driving. You have no idea how happy I was to get this working.



Thank You!

Thanks again for all of your support! There's a lot more content coming soon. This re-theme was a ton of work and will allow us to really get the feel we're going for. I can't wait to share more about the direction of the missions and story.

Don't forget to join the email list for additional info and beta releases https://clearedhotgame.com/email-list/

Choosing a Terrain System

Welcome back, devoted wishlisters. Thank you for taking part on this journey with me. Today we will cover a truly groundbreaking topic. The ground. Sorry for the pun.

Most games that take place in outdoor landscapes use something called a Terrain System. It's a way to describe and create the landscape in the level. I've been using a low-poly terrain system since the prototype days of my game, but I'm ready to build more levels and I needed to explore my options.

The weeks after GDC I went fully down a terrain rabbithole and evaluated all the major options inside of Unity. After a couple weeks of this, I was a bit frazzled.

The Gang Picks a Terrain System


[h2]WTF Is a Terrain[/h2]
In most games, the "ground" is not created the same way buildings or objects are. Rather than creating it in a 3d tool, like Blender, it's created in Unity, by using a terrain tool.

Most of these terrain tools use what's called a Height Map- an image where each pixel color (or brightness) represents height. So you can use a 2d image to form a 3d landscape. There are often tools to sculpt the terrain inside Unity, so you can quickly make changes when you're designing your levels.

With most of these you can actually "draw" onto the terrain. By drawing on the heightmap, you're raising and lowering the terrain.



You can also apply "stamps" to the heightmap, which is helpful for laying down standard mountains or valleys.



But again, the heightmaps are represented by images. For example, this one is a heightmap stamp of a mountain ridge.



[h2]Pick One[/h2]
There are tons of terrain systems you can use in Unity. Here are the assets I evaluated:
  • Unity Terrain (the built in system). Overall okay but low on features and not very performant
  • Polaris Low-Poly Terrain - a low poly specific terrain asset, faster performance in-game.
  • Gaia - A fully featured terrain system for big worlds and realistic terrain
  • Microsplat / Microverse - A better shader and generator for terrain.

What do I actually want from a Terrain System? My requirements are:
  • Has a Low-Poly workflow, in order to fit the style of the game
  • Fast performance in-game.
  • Options for procedurally generating terrain in the editor (not in-game)
  • Procedural placement of vegetation
  • Level design tools- able to flatten terrain and place prefabs, roads, etc.

After exploring my options I decided to stick with the Polaris low-poly terrain, since they recently released some level generation features.

[h2]Procedural Generation [/h2]
Since we're using a heightmap image to create the terrain, our procedural generation system must create some kind of an image as well. To do this, we link together nodes that either create or modify the terrain heightmap in some way.

To start with a simple example, here is what happens when we take two sources of "noise" and combine them to form a bumpy ground.



[h2]What Do We Want? [/h2]
After playing with this for a bit, I realized I should put a helicopter on the terrain, put some enemies, and actually play on it. This sounds so simple and dumb but it immediately made a few things clear:

  1. Rolling terrain sucks because an isometric camera doesn't show depth well.
  2. It's had to land on areas that aren't flat.
  3. NPCs and vehicles need to traverse the map and complicated features make that hard.
  4. You can't actually see any mountains in the distance because of the isometric view (duh).
  5. When enemy trucks and cars launch off hills it's really cool.

Given this, I realized the most "fun" terrain is one that is:
  1. Is really clearly either flat or not flat.
  2. The height changes happen at discrete intervals so you know if you can fly over them or not
  3. If height changes are "rampy" then cars will fly off them and npcs can still walk up them.

Now that I had some goals, I started building out a node graph that would generate our ideal terrain.

The resulting node graph.

Each major step of procedural generation.

Add in some vegetation...

The final product, with texturing based on slope.

[h2]Shoot Stuff Check[/h2]
Does it feel right when you're shooting stuff?



Yes.

[h2]Thank You[/h2]
As always, thank you all for your support! I can't wait to share more of what we've been working on. Stay tuned!

If you want to keep up to date, join the email list: https://clearedhotgame.com/email-list/

Imperfect AI is Fun AI

Welcome back, intrepid pilots and nostalgia seekers. Today we have a deep dive into the world of NPC AI. But first allow me to tell you a story about the first AI behavior I ever wrote.

We have to go way back to a time so shrouded in nerdiness and embarassment that nobody in their right mind would ever revisit it. Computer camp.

Yes, 13 year old me learned to program at a week long camp surrounded by other uber nerds whose collective abilities quickly showed me I was not the smartest one in the room. Where I learned that you could actually be tired from just thinking all day. Where I learned that losing in Risk really sucks.

Our first task was to create a tic-tac-toe game in C++ (I really wish Python existed back then), and then create an AI player who would never lose. It was a monstrous if-else disaster of listing every possible case of what the AI should do. Eventually I got it working and it would never lose. It was a "perfect" AI player.

Soon I discovered that the game was no longer fun to play. Something about that stuck with me; a fun opponent is imperfect. If you've ever said "the AI is cheating" in a game, you know what I mean.

So the goal is to make AI that is human-like, instead of god-like. Well, let's start with Behavior Trees.

[h2]Behavior Trees[/h2]

Behavior Trees are basically a flow chart of decisions and actions. For example:

Thank you Zanid Haytam for my fav example of why I spend too much money on ubereats.

My first take on AI in Cleared Hot was pretty simple: If you see an enemy, shoot them. If you have a destination, walk towards it. If you were a friendly unit and the helo landed near you, get in. It was governed by a Behavior Tree.

Sounds pretty simple, right? Well here is what the behavior tree looked for this simple behavior.



The real culprit was this: Combining State and Actions in one tree. For the non-programmers, state is something you have to keep track of about the world, that will determine what you do. For example: Am I currently attacking, am in the helo or not, etc. So every time the tree was executed, you would have to dive into the right sub-tree for that state.

[h2]Behavior Trees inside State Machines[/h2]

After experiencing enough pain with the behavior tree approach, I stumbled upon a GDC video. In this talk, Bobby Anguelov mentions an approach that uses State Machines for... state, and Behavior Trees for actions. This is based off his experience creating AI for the Hitman series! Pretty cool.



This approach made so much sense to me that I figured it was worth implementing before I added anything new to the NPCs. So I build a simple version. The NPCs have a small set of states:
  • Idle
  • Attack
  • Flee
  • Hit
  • Dead


Each state contains it's own behavior tree, that is set up when entering that state, and cleaned up when leaving. These behavior trees are just actions. They aren't making decisions and they aren't running any sensors. They are just executing actions. This cleans things up a TON. Look at the attacking behavior tree, which is currently the most complex one:



The really cool thing about this is that you can update your knowledge separate from running the behavior. Previously the NPCs were doing raycasts everytime they executed the behavior tree, but now they only need to update their knowledge base at the speed of a human reaction, and yet they can drive their behavior trees much faster.

[h2]Perception and Knowledge[/h2]

In order to make decisions, the state machine needs some knowledge of the outside world. This is done by implementing "sensor" scripts that allow the NPC to see or hear things in the world. Each NPC updates their knowledge base about every 200-250ms (typical human reaction time) and will change state if needed.

Credit: Bobby Anguelov's Game AI Basics video

These sensors react to "Stims" or AI Stimulations, which are just things you can drop in the world for an action that you want the NPCs to know about. So far I'm using these for: shots being fired, shots impacting a surface, explosions, all NPC and player positions, etc.

A trail of minigun bullet impacts create "Stims" in the world that NPCs can see and hear.

The game also adds some randomness into their update timing, so it tends to spread the processing time across frames, making the game run smoother. I've yet to fully stress test this, but I've put about 50 NPCs in view at once with no problems.

My favorite example of new behavior is the "RPG Warning". When an enemy is about to fire an RPG (or other high damage weapon), they create a "RPG about to fire" Stim. If another NPC can see that, they will play an RPG warning voice line (RPG!!!) which also creates an audio stim. If another NPC sees the RPG enemy but already heard someone else yell the warning, they won't repeat it.



All of this makes it possible for the NPCs to react to things in the world. Like being shot at.



[h2]Thank You[/h2]
If you read this far, you need to be subscribed to my email list! https://clearedhotgame.com/email-list/

This is where I will release the first play test builds! I've already been interacting w some of you over email. Thanks for your thoughts and feedback, your emails are super motivating.

I hope to have a rough schedule for the beta soon.

Thank you all for your support!