Enemy Classification and Restriction on Specific Waves

To somewhat curb the frequency of epic waves, a overhaul/rework of the wave generation might be needed. With this, most waves will now be independent on minibosses for these to be difficult.

Here’s my suggestion.


I(A) - Classify both enemies and restrict enemy class that appear on every wave. These will be classified internally.

Enemies are classified into there categories (based on my experience):

  1. Normal - only shoots downward on its attack. Can appear in any wave without restriction.
  2. Periodic - attacks periodically.
  3. Random - shoots at random directions (360°)
  4. Aim - aims at the player on its attack.
  5. Proximity - has an atttack that blocks the player’s path/reacts on players movement.
  6. Counter - triggers an attack when hit or killed.
  7. Miniboss - takes more time to kill than normal breeds and has more difficult attack patterns.
  8. Quasiboss - takes more time to kill than a miniboss and has much more difficult attack patterns. This doesn’t exists yet and some suggestions might actually belong on this group.

Enemies like Cowards and Slobs shouldn’t appear on Pulsating/Palpitating Grid as this wave will now restrict miniboss, quasidoboss, counter and aim class enemies to appear.

Note: Some waves has special positions where specific or more difficult enemy classes are placed. These positions are immune on enemy class restriction. And to be honest, minibosses and quasibosses should only appear on these positions. Examples are Three-Ring Circus, Dazzling Coordination and Chickenaut Quartet (Wheel of Fortune still has its restriction).

Alternative classification by @EmeraldPlay

I(B) - Instead of classifying enemies, a survey can be done asking users what breed shouldn’t be allowed in a specific wave.


II - Classify what % should each breed appear. For example, a Coward breed will only appear on at least 60% difficulty. It shouldn’t appear on a mission that has 50% difficulty on max unless SSH (or the like) is equipped.


III - % Difficulty determines the probability of an enemy to attack and the speed range of their projectiles fired. This will probably remedy the perception that much faster bullets are easier to dodge and slower bullets.

  • On 0% difficulty, there’s a chance that a chicken will attack within 30 seconds at 10 to 15 unit speed.
  • On 50% difficulty, there’s a chance that a chicken will attack within 20 seconds at 8 to 20 unit speed.
  • On 100% difficulty, there’s a chance that a chicken will attack within 12 seconds at 6 to 25 unit speed.

Figures are of course not on scale and only give examples of application. Equipped difficulty will no longer increase projectile speed but rather its speed range.


IV - Wave variations should be classified as a single wave itself, which changes defending on difficulty equipped. Example: Palpitating Grid will appear instead of Pulsating Grid on SSH.


This can be applied much, much later on Early Access as there’s still many enemy types that might be added on the game, either suggested by users or even provided by iA himself.

Suggestions and objections are appreciated. I might be wrong on some, most or even all parts. :flop:

11 Likes

While the idea carries a lot of merit, I feel it’s a bit of a big shot to rework the entire wave generation system from the ground up to add enemy classes, percentage calcs, generation restrictions and more, in essence having to remake or at the very least reprogram nearly every wave in the game and redo how most of the difficulty system works, all to reduce the frequency of Epic Waves.
While yes, I do believe the game would benefit from a system like this, I think applying it would prove to be much more trouble than it may be worth, since slapping an overhaul to how waves are generated means there’s going to be a tidal wave of not only bugs and glitches to stomp out, but possibly also compatibility issues with other parts of the game.

5 Likes

The classification seems to be more like:

Chicks (Normal, Ninja, Pirate)
Elite Chicks (Assassin, Berserk)
Chickens (CI4 and Military breeds + Proximity Egg Chickens + Pilot??)
Metal Chickens (CI4, CI5, Military)
Elite Chickens (Coward, Toxic)
UFOs (Chick, Chicken)
Minibosses (Chickenaut, Armored, Slob + special Gatling Gun)

5 Likes

I classify them based on their attack patterns. For example, the wave Corridor Shooter that has cowards and assassins are both annoying to deal with more than when it has berserks and toxics. Although, that works quite better.

I’m thinking that instead classifying them, a survey can be done instead in which what enemy breed shouldn’t be allowed on a specific wave. All waves are listed there, and any user can answer it (one form per account).

I added your suggestion in OP, thanks.

1 Like

I do think that it is way too early for a wave generation overhaul. New enemy breeds might be added on the game later on and might pose the same problem (and bugs) just like currently. This can be applied when EA is almost finished.

1 Like

I do however also see merit in doing an overhaul in the here and now, as opposed to near completion. CIU is a beast of a game, and it’s only gonna get bigger. The pro of overhauling the system now is that future waves will be made with it in mind, and there would be much less past waves to change when the overhaul hits. Doing it near the end of development would probably single-handedly extend development by months.

1 Like

That’s impressively close :+1: .

What follows is a technical explanation of what goes on behind the scenes.

Each enemy instance can be one of 3 categories: barrier, poultry, or miniboss (this is decided programmatically for each wave, the random generator doesn’t come into play at this stage). Each category is divided into tiers (what @EmeraldPlay calls “classification” above). Some enemy types are shared between categories (e.g. UFOs can appear either in the “poultry” or in the “miniboss” category).

For a given difficulty, each tier has a specific probability (weight) of being selected with respect to other tiers. After the tier is randomly selected, an enemy type within that tier is also randomly selected. Each enemy type also has an assigned weight (when I “prevent cowards from spawning”, what I’m really doing is setting their weight to zero). In a similar way, entire tiers can be excluded (or amplified) on a per-wave basis.

Example: This is the graph for the poultry category. X axis is difficulty (the lighter part is 0%-100%, graph goes up to 150% or so), Y is the relative frequency (appearance probability) of each tier. Tier colors are: red=chicks, yellow=chickens, green=metals, aquamarine=elites, cyan=saucers, blue=minibosses.

image

You can see that for 0% difficulty, only enemies from the “chick” tier can ever be selected, whereas for a 140% mission, only “metals” or above.

19 Likes

Based on the graph above, now I see why that there’s some instances that a chick-only wave can appear on 100% difficulty and even a miniboss-only wave in 50% and below. This is based on some posts in the Epic and Interesting Waves topic. Pretty much cherry-picked as mostly the most frustrating waves are posted and the dealable ones aren’t. Although I honestly think anything 101% and above is reasonable enough to be unfair.

My point is, I think that minibosses should only spawn in specific or limited positions and shouldn’t be on ordinary waves, with the exception of UFO’s since they’re also at Poultry category.

Examples:

  • The three center chickens in The Three-Ring Circus.
  • Leading chicken in Chicken Interception
  • Chickens protected by bubbles in The Bubble Bath
  • Each segment point in Chick Loop
  • The four main chickens in Chickenaut Quartet

I’ve actually seen a suggestion like this before.

Chickens, even chicks can actually work well in higher difficulties by making them attack much more frequently at various speeds. Just like how CI1 and CI2 works. This shoud be applied in minibosses with periodic attacks as well. Projectile speed modifiers can be removed on equipable difficulties since % increase already does it.

3 Likes

This already happens. What you’re probably referring to is the fact that minibosses can also (rarely) spawn in positions meant for regular poultry (because they also appear as a tier in the poultry category). Which can easily be tweaked.

On the other hand, given that recruits have now played 1.1M+ missions total, it’s easy to cherry-pick cases where the randomizer has been less than favourable. But how frequent are these cases?

Note that selecting a miniboss doesn’t mean it will appear everywhere. It needs to also go through the pattern maker (the part of the generator which decides how enemy types alternate within a block), or it must trigger the “all enemies are the same” condition (which is currently set to 10%).

5 Likes