Hash Rush Update — Monsters of Hermeia

Hash Rush
VZ Games
Published in
9 min readSep 28, 2020

Hello everyone,

Today we are releasing the latest update to Hash Rush — and this will be a big one. We’ve given this update the title ‘Monster of Hermania’ as we are heavily reworking the Crystal Scourge and its phases of resistance.

If you’ve been playing Hash Rush (until now) you’ll probably have noticed that though the phases of resistance do provide you with an interesting challenge, it can become repetitive and predictable, regardless of whether you play on offense or defense. What’s more, some AI decisions leave a lot to be desired — hence our focus for the last few weeks — improving the entire system.

Broken down, the update consists of improvements to the following areas:

  • Improving the Monsters
  • Improving the Spawn locations
  • Giving the monster spawners more variety
  • Improving the world map

We’ll go through each point now!

Improving the Monsters

The first part of this has already been deployed to the game, that is changing the Teribis from melee to ranged. This gives the armies of the Crystal Scourge much more variety and gives the players a much better challenge — without destroying the balance entirely of course.

Beyond this small change, we’ve been focusing on improving the AI of the monsters. As an early beta player, you may have noticed that when your base is attacked, some of the monsters will ignore your watchtowers and combat units and walk towards their destination, even if you were attacking them. Naturally this was not intended behavior and it was something that needed fixing, however if you — the reader — have had any experience in working with game AI then you’ll know that if something sounds simple, then it’s going to be the total opposite.

Talking to our combat AI developer we gave him the initial requirement of:

  • When unit A attacks unit B, unit B should respond and attack it back.

This may sound simple, however it only works on 1 on 1 combat. Why’s that you ask? If we were to follow and implement this requirement to the letter what would happen if we had:

  • Monster 1 (let’s call this M1),
  • Ernack Archer 1 (A1),
  • Ernack Archer 2 (A2),

Now, with the combat rules implemented ‘exactly’ as written and the 2 Ernack Archers attack the single monster, this would happen:

  • Unit A1 enters combat first and attacks M1.
  • M1 begins to move towards unit A1
  • While M1 is moving towards A1, unit A2 enters combat and attacks M1
  • If the rule was implemented strictly, M1 would then turn towards unit A2.
  • If A1 and A2 were to attack at the same time, then M1 would be constantly changing its direction from A1 to A2.
  • Now imagine if you flanked M1, sending A1 and A2 to attack from both sides. The result would be that M1 would stay in between the attacking two Archers as it would constantly change its movement direction as it gets hit by the arrows.

That is a simple case, but it shows you that taking the requirement ‘when a unit is attacked, it should target the unit that is attacking it’ is not as simple as it sounds as there are many cases were exceptions need to be made.

This is not a unique problem to Hash Rush as pretty much every game that has combat verse an AI will have to tackle it. Most commonly it is tackled with an aggro system (otherwise known as a ‘threat’ system).

This system triggers by assigning points to all units in combat based on parameters set by the developers. Common parameters tend to be, what the unit DPS, armor, health, and so on are. The unit with the most aggro is the one that should be targeted. In general, this is the system that is used by most MMOs and there is even an AI pattern called Utility AI (or Utility system) that does this, simple right?

Well, remember that line we wrote ‘if something sounds simple, then it’s going to be the total opposite’? This comes into play again!

In an RTS, using just this would make the combat quite predictable, and in a strategy game, predictable combat is the first step to the game failing. What we needed was to include facts like: how easily a unit can kill another unit, how close the units are, were the units are already engaged in combat, is the unit being attacked by someone else, and much more.

Believe it or not, but the points above are actually the simple ones, the harder parts fall under ‘fear and choice’.

Consider a combat situation, you have an army of Ernacks and they’re in a prolonged fight against the Crystal Titan and it’s elite guards. In this situation, the Titan will probably have the highest aggro value, by all of the rules above, your units would swarm the Titan. However, if you think about it for a few minutes you probably notice a weakness in this. Each unit is different, some are weaker, some are stronger, and in combat, some will be damaged by the enemies. You would not want your weakest units to charge at the Titan screaming “LEEEROOOOY JENKINS” and ultimately dying. So in this case, we want the units to pick their target not only based on the aggro, but also based on some common sense. The strongest units should target the strongest enemies and the weaker ones should go after enemies that won’t 1-hit-KO them!

What we’ve described above is still part of Utility AI as it allows the object that it is assigned to to make very fine grained decisions (such as who to attack) based on how we develop the AI.

This piece was written up to really show you how far you need to go to make the AI decent. Since Hash Rush is a PvE focused RTS game, the AI is one of the most, if not the most, important mechanics of the game. Without it, there is no strategy in Real Time Strategy!

The icing on the cake on why this can take a long time to perfect is, once you have all of your parameters set up, linked, assigned to the proper objects, you then need to consider just how important each parameter is (assign a weight value). If the value is 1, it is the most important parameter, if 0.1 then the least (0 would mean ignore). This phase requires a lot of trial and error, of course we have our balancer, Mark, who is amazing at predicting and theorizing how it should work, but this only gives us a starting point. We then need to fire up the game, play through it, watch how the units behave in combat, and then optimize the weight system.

So, now you know what we’ve been doing to improve the AI of the monsters, and this brings us nicely to the end of our ‘how we improved the monsters’ section.

Improving the Spawn Locations

The next most important part is the areas that the monsters spawn. Looking at the game (before this update), you’ll see that it’s rather boring as we have the Crystal Outposts scattered around the world and they just spawn the monsters.

To make this more interesting, we are now assigning the spawn areas to one of two types of base types.

  • The Main Base (there is only one of these)
  • Mini Bases

Main Base

The main base is the big one. This is the area directly controlled by the Crystal Fiend, the boss of each planet, has multiple buildings, and is the only location with the Citadel, the main fortress of the Crystal Scourge, making it the most challenging location in the game.

If the player manages to defeat the Crystal Fiend and destroy the Citadel, they will have defeated the Crystal Scourge on that planet and will then be given a choice of 3 new planets to move to. It’s important to know that each of these new planets will have their own mutators that modify a part of the game (e.g. your resource gathering rates) and a different AI level.

Mini Base

The mini bases will take over from the previous random spawn points. These are bases that are similar to the main base, but will not have the Fiend and the Citadel.

It is important to know that both bases will have their own defenders that do not take part in the phases of resistance (think of them as dedicated defenders), but the buildings that make up the base do take part in the resistance phases and will spawn monsters that will attack the player.

This takes us nicely to the final point, the new buildings, giving the monster spawners more variety.

New Crystal Scourge Buildings

In order to make a base (mini or main) we need a variety of buildings, not just the regular Crystal Outposts. This update will introduce 7 new buildings that all have all spawn specific monsters.

Citadel

This is the main fortress of the Crystal Scourge, think of it as the opposite of the player’s Voyager’s Bastion. It will:

  • Spawns the Crystal Fiend
  • Grants GP to the player when destroyed
  • When destroyed it will give the player the victory screen and prompt them to choose their next planet.
  • Will be developed with more functionality in the future!

Please note that this building is currently in the game as a place holder, the game will be updated at a later date.

Fishers Nest

If you have been with us for a while this building may be familiar to you as it made its first appearance in our pre-alpha! This is building will:

  • Spawn Fishers only
  • Grants GP to the player when destroyed

Crystal Scourge Spire

This is the reworked building that is currently in the game, however it has been slightly changed so that it:

  • Spawns the Teribis
  • Takes part in the Resistance Phases
  • Grants GP to the player when destroyed

Crystal Scourge Burrow

Similar to the Spire, this building will:

  • Spawn the Ursara
  • Takes part in the Resistance Phases
  • Grants GP to the player when destroyed

Corrupted Stump

Similar to the Fishers Nest, older players will find this building familiar as it was used in the original dungeon system, however, it has now been modified to:

  • Spawn Slashers and Spitters
  • Takes part in the Resistance Phases
  • Grants GP to the player when destroyed

Corrupted Root

A mobile defensive hybrid unit-building for the Crystal Scourge. Though it counts as a defensive opponent, it can move by burrowing underground and popping up directly under the player’s armies.

Like the other buildings it will also grant GP to the player when destroyed.

Improving the World Map

Last but not least, we’ve made some major changes to the world map that impacts where the enemies attack from.

That said, we are only going to mention that we have changed this and not go into too much detail. Why’s that you ask? Well it’s because (right now) we want to let you (our players) discover the more interesting changes yourself and not spoil the new system for you, also this is a feature that is constantly changing and so any information that we give in this post may be outdated a few versions from now.

What we will tell you is that:

  1. The northern expansion now has more monsters defending it and also two buildings that will spawn attackers.
  2. Expect to be attacked from all directions, not just from the east.
  3. We have removed the phases of resistance icons
  4. The power of the attackers will scale in accordance to the player’s power.

Ok, that is that for this update breakdown, it has been a long write up, but then again this is a big update to the game!

We hope that you’ll enjoy this new and improved Crystal Scourge, but please do note that we are still going to be fine tuning the system, especially the AI. So, if you experience some strange behavior from the units, please do join our Discord server and report it to us. Only with your help can make a really powerful AI!

--

--

Hash Rush
VZ Games

An online sci-fi/fantasy RTS set in the fictional Hermeian galaxy. https://www.hashrush.com