How to pick up a right amount of enemy types?

Started by
12 comments, last by Fulcrum.013 5 years, 7 months ago

Hello everyone! I'm making a TPS game and struggling with the amount of enemy types. For now I got 7 of them, but Actually i don't know is it enough or should I make some more of them. I know that, on one hand, small amount of enemy types means that it will be easier to manage them and it will be easier to player to understand them all, but, on the other hand, big amount of enemy types means a big difficulty for developer and for the player. Does anyone have any suggestions about this?

Advertisement
47 minutes ago, G-Dot said:

Does anyone have any suggestions about this?

It depends from a game concepts, story and enemies nature. For example for mutants/animal etc enemies you can have a small quantity of types, but each enemy can have a his personal age and any of its parameters like strength/health/damage resistance/health regeneration and so on depens from age, like as a scale of model that steel same and have same animation, but different size.

Also quantity of types usualy have a very small fluent to programming. Most of enemies have a same AI or at least same most algos like navigation and so on. Models, animations,  and so on it just data that attached to person object and used to rendering, while AI and logic model is same for any of person and differed only by parameters value that is a abstract data to. It is not importent for algos what same value have concrete parameter, it operates with any value from allowed range.

Of course increasing number of types usualy increases a 3D modelling capacity

#define if(a) if((a) && rand()%100)

7 hours ago, Fulcrum.013 said:

It depends from a game concepts, story and enemies nature.

I understand you, but I've got a little different situation in my game. Enemies are robots and each of them have different AI behavoir, but not very complex. Also they have not many things in common: health, movement speed, amount of damage, they deal to the player and most of them, but not all, have an ability to chase player. I'm in situation, where each enemy type is very different from the others and each enemy type brings something new to the game. So how to not get confused with it? 

At your current point, the questions is, "do I have enough enemy types?"  Try working with what you have, and then you'll see what's missing.

Is currently working on a rpg/roguelike
Dungeons Under Gannar
Devblog

Well it all really depends on on the length of the game and the amount of good character you have in there. If it's going to be a long game, then you'll want to have a vast array enemies to defeat. But if it's not going to be that long, then you can have a ratio of something Iike 1:3, good guys to bad guys.

13 minutes ago, Lendrigan Games said:

Try working with what you have, and then you'll see what's missing.

That's a valid suggestion. Worry about more enemy types after you've implemented the ones you have and can experience playing against them.

-- Tom Sloper -- sloperama.com

1 hour ago, Linksys said:

Well it all really depends on on the length of the game and the amount of good character you have in there.

Actually there is only one character in my game and it is your playable character. And, sorry, but I should mention this earlier, but the game mode of my project is looking like this. You spawn on the map and you have to defeat an enemy Dropship, but It will try to protect itself by sending pods with enemies. The more damage dropship gets the more powerful enemies will be. At last 10% of it's health the boss will apear. Enemies will spawn not by "waves", but by Dropship "desicions", meaning Dropship's script will analyse battlefield and if situation is critical, It will send some more enemies.

I would think about the roles of each enemy type.  What will they bring to the game that's different to existing enemies, and what will help you to challenge the player?

 

For example, you might start off with a slow moving enemy that wanders around the level semi-randomly, gradually getting closer to the player but not specifically targeting them.  We'll call it a wanderer.  It would be very weak, and only damage the player on contact or from very close by.

The wanderer isn't really a threat by itself, but with their unpredictable movement the player will need to clear them out before they can safely navigate an area they occupy. If there is a greater threat taking focus the player may decide to risk moving close to a wanderer without clearing the area first.

 

This one enemy type isn't very interesting, the player can just take their time picking off wanderers until they're all gone. They might not even need to move much or at all. Let's fix that with another enemy type.

We want to make sure the player needs to move around, so we'll add a new enemy called a shooter.  The shooter moves relatively slowly and shoots relatively slow projectiles towards the player. Again, it isn't particularly dangerous alone, but the player will need to move around a bit to remain safe, and if they haven't cleared the area may be forced to move into space occupied by wanderers.

 

With the combination of wanderers and shooters the player can be kept a bit busier, but as long as they stay calm they shouldn't be overwhelmed unless there are very large numbers. We don't want to just swarm the player, so let's add something a little more dangerous. 

Our next enemy is the trapper.  This one is relatively fast moving, and tries to pass close by to the player. It didn't directly attack, but instead lays a corrosive chemical on the ground behind it. The chemical burns away quickly, but the player can't safely go where a trapper has gone for some time after they pass. If the player isn't careful they may be stuck in the firing line of a shooter.

 

Still, if our player stays alert and thinks about what they're doing they should be ok unless they get swarmed.  Let's make things dangerous with the stalker.  This one moves at a medium speed and damages the player badly on contact or at very close range. It can also turn invisible (or perhaps just camouflaged if you want to be a bit less nasty) for a couple of seconds, with a decent length cool down before using that ability again.

 

Now the player will sometimes be surprised by stalkers, putting them under real pressure by disrupting their careful plans.  The stalker may get the player, or might force them into a dangerous position.

 

Let's really crank the pressure up.  Let's have a kamikaze.  Moves at medium speed, generally towards the player, and is heavily armoured so that it takes a few shots to kill. If it gets close it will dash quickly towards the player and explode on contact more massive (maybe fatal!) damage. Players will really want to avoid or quickly kill these. To make it worse, even if you take these out at range shrapnel flies out and could damage a careless player.

 

Continue in that fashion, adding enemy types that create interesting effects when combined with other enemy types.

Any given enemy does not necessarily need to be a big threat alone, but later game types will be more dangerous in isolation and outright deadly in combinations.

 

//EDIT: So bringing that back to the original question of how many enemy types to have, I would say only add more if they offer a different challenge.

 

Hope that helps! :)

- Jason Astle-Adams

4 hours ago, G-Dot said:

Also they have not many things in common:

Main thing of it - robot is ground vehicle. so any robot have a same navigation and steering algo that also same for cars, tanks and any ground vehicle and vessels. Behavior difference is comes from dirrerent tasks that high level of AI sets to low levels like stearing aiming and so on algo. Also aiming algo is same for each kind of weapon. any passive  projectile and rayguns have a same algo of turret aiming. homing missiles have same algo of turret aiming but also have inflight algo that can be very similar to turret aiming. So any robot can be described as a walking vehicle and array of  installed weapons and operated by same algo where any differences is data-driven. 

#define if(a) if((a) && rand()%100)

8 hours ago, Fulcrum.013 said:

So any robot can be described as a walking vehicle and array of  installed weapons and operated by same algo where any differences is data-driven. 

So I can't disagree with you point if view, but what if robots will have close range combat?. Some of them will have an ability to dodge bullets, others will try to demolish you by quickly rushing towards you, another will try to overcome the distance with a jump and deal a radial damage on landing and so on. What should you do in this situation? I found out the best solution for me: simply create a parent class for all enemies with damaging and health and movement logic and then shaping each enemy type as a child of it by creating custom behavoir for each of them

This topic is closed to new replies.

Advertisement