Combat balance
ACIIL opened this issue ยท 6 comments
This has been a problem creeping up over the years as i watch how GOG improves combat.
Probability the easiest to say for my first paragraph. Would you make settings to slow down mobs? Minecraft combat is not designed for quick encounters, even with better armor. The mobs melee cannot miss, they hit in range, they do not suffer whiffs when they also cannot be kitted.
You need to balance mob's aggro by chunk distance, and how they chase like a arrow towards the player, and they chase faster then a player doing his own business paying attention.
Swords are (without the sweep buff), are a tiny ray cast forward, thus aggressive groups of mobs cannot be controlled. The swords short attack range feels too small compared to the mobs ability to get in range and strike instantly. Balance around the knockback from the player, andtoo the player, causing confusion.
Yes mods like slashBlade fixes everything related to sword strikes, but it is not like GOG has handicaps for new worlds. And keeping mobs in stun combos just to deal with them after hours of gameplay is not fun.
My guess how to fix GOG combat? 1) Always an audio warning when a creature is tracking the player and before they attack. Using sounds is not hard compared to visuals GOG has already programmed. 2) Balance combat against the pitiful range and strike width of minecraft swords. 3) balance mobs speed against the player's speed and movement limitations. 4) balance around knock back and how is confuses ranging for the next strike.
I sense GOG will always be built around an ideal world of combat (like a modern action game), versus the reality that minecraft combat is horrible. Please work within the system and let the players choose how to balance, off of a extensive set of configs like Lycanites mobs , in the config.
Actually saying Lycanites mobs got me thinking, could GOG be an addon that uses the spawn and combat setting mechanics there?
Probability the easiest to say for my first paragraph. Would you make settings to slow down mobs? Minecraft combat is not designed for quick encounters, even with better armor. The mobs melee cannot miss, they hit in range, they do not suffer whiffs when they also cannot be kitted.
Sure. I will try to add the ability to adjust attack and movement speed through the config in the next update. I am not sure if it is possible as speed in Minecraft is extremely sensitive when it comes to values as it requires decimal values; decimal values not being possible through the config at least in these configs as far as I know.
If I can, I will close this issue.
You need to balance mob's aggro by chunk distance, and how they chase like a arrow towards the player, and they chase faster then a player doing his own business paying attention.
Swords are (without the sweep buff), are a tiny ray cast forward, thus aggressive groups of mobs cannot be controlled. The swords short attack range feels too small compared to the mobs ability to get in range and strike instantly. Balance around the knockback from the player, andtoo the player, causing confusion.
I never understood the difficulty people have about the mod. Swords are extremely effective when one gets the timing/pace down to the point you can stunlock mobs. That is why I have been steady experimenting with the AI to counter this.
Yes mods like slashBlade fixes everything related to sword strikes, but it is not like GOG has handicaps for new worlds. And keeping mobs in stun combos just to deal with them after hours of gameplay is not fun.
I am not sure what you meant by stun combos. If you mean stun combos through slashBlade then yeah, it is not fun.
I could never really see the enjoyment of using slashBlade as the weapons feel OP. I can only guess it was designed for PVP uses.
My guess how to fix GOG combat? 1) Always an audio warning when a creature is tracking the player and before they attack. Using sounds is not hard compared to visuals GOG has already programmed. 2) Balance combat against the pitiful range and strike width of minecraft swords. 3) balance mobs speed against the player's speed and movement limitations. 4) balance around knock back and how is confuses ranging for the next strike.
-
It's the assets which are the problem. I cannot even fathom what sounds I should put in. I have had this problem for 4 years now and yet to find a solution.
-
I am not sure if I need to. As I have said; swords are effective. Too effective. I guess it comes down to how one plays. Unless I can see or understand a different perspective, I cannot understand how to improve this.
-
Their speed is relative to the mobs found in vanilla Minecraft. The fact is the player can always outrun the mobs unless they are buffed with Speed.
-
Not sure about knockback. If you meant the 100% knockback resistance I am not sure how to balance this.
I sense GOG will always be built around an ideal world of combat (like a modern action game), versus the reality that minecraft combat is horrible. Please work within the system and let the players choose how to balance, off of a extensive set of configs like Lycanites mobs , in the config.
I have never tried Lycanites so I do not know how the configs works there.
Actually saying Lycanites mobs got me thinking, could GOG be an addon that uses the spawn and combat setting mechanics there?
If you are asking if GoG was an addon to Lycanites, no.
If you are asking if GoG can be an addon to Lycanites, no.
My issue consists of combat balance and settings. Fixing it requires me understanding the rules that you use to balance the game, such that i can make a targeted solution here in this post.
[ Yes some things here are padded and can be ignored, like backing code on another open mob api]
You are in control. You return to improve GOG time-and-again. Do you need a refeshed mind to find direction? Lets see if this discussion will help. You always let us know what you are unsure about coding. I don't think it stopped you from improving, which is wonderful!
Swords are effective. Relative to how simple minecraft combat is, that is exactly what they do. But there is more to combat than swords and numbers. I'll write this in the perceptive of how mechanics are and study you judging the mechanics, and maybe something will be realized that will improve combat.
Minecraft combat is simple, we can break attack relations. I cannot label everything i'm sure to forget as i write this hour long writeup for the sole purpose helping GOG.
Lets Observe certain minecraft combat systems:
The player. The mob. The mob count. The attack range. Attack time. Attack damage. Movement speed. etc...
Combat:
Melee.
Range.
magic.
buff-debuffs.
enchantments.
Hit immunity. (time after damage immune)
Knockback.
Damage avoidance.
. . . .
Players:
May aggro and attack mobs.
Can miss melee.
Can miss range.
React to what they see and hear. Need line of sight or sounds.
Can have a range of attack and defense values.
Has buffs.
Affected by knockback.
Have limited stamina. Everything they do costs stamina.
Must find breaks in combat to regenerate.
Can try to disengage.
Can uses blocks and entities to control mobs.
Can go anywhere.
Can spawn anywhere (new game).
There is one player. (standard singleplayer)
Can move in all directions.
. . . .
Mobs:
Will attack player in range.
Cannot miss melee.
Can miss ranged.
Awareness by radius && line of sight.
Will Aggro by distance.
Will not remove arggo and let the target live.
Affected by knockback.
Stats for attack and armor are predetermined.
Buffs are predetermined
Limit controlling blocks and entities against players.
Has no stamina system.
Does not needs breaks.
Spawns many.
Spawns with rules. By biome, by lights, etc.
Spawns in limited chunk range around player.
Can only move forward, follow pathing direction, or try to dodge.
. . . .
Here are some interactions that minecraft combat consists off (for both):
Heading towards the target and hitting attack in range.
Attacks can me migrated by armor or dodging, or protection buffs.
Players can dodge ranged, mobs can dodge ranged.
players can miss (melee), mobs cannot miss (melee).
Players can abuse terrain and mechanics.
Players can abuse mob AI.
Mobs can abuse player stamina and attention.
Some details to consider about the terrain:
Terrain shape: flat, irregular, height, drops.
Observe:
Irregular terrain affects players moment.
Irregular terrain does not affect mob pathing and movement.
high terrain (+2 blocks offset or blocking) blocks players awareness
high terrain (+2 blocks offset or blocking) does not block mobs awareness
Here where GOG handles combat and breaks norms and can be improved, by pulling above:
Players React to what they see and hear. Need line of sight or sounds.
Players have limited stamina. Everything they do costs stamina.
Players Must find breaks in combat to regenerate.
Players Can spawn anywhere (new game).
Mobs Awareness by radius && line of sight.
Mobs will Aggro by distance.
Mobs Will not remove arggo and let the target live.
Mobs Spawns with rules. By biome, by lights, etc.
Mobs Can only move forward, follow pathing direction, or do dodge movement.
Mobs can abuse player stamina and attention.
Mobs Spawns in limited chunk range around player.
Attacks can me migrated by armor or dodging, or buffs.
Players can dodge ranged, mobs can dodge ranged.
players can miss (melee), mobs cannot miss (melee).
What of the above list do you see important? For me:
Mobs must spawn a respectful distance from player and not arggro no longer than a distance of a standard mob, and the same rules holding arggro as the players runs.
Mobs aggro range and tracking must not exceed minecraft default mobs.
Combat cannot be a forward rush and attack in range.
Attacks cannot simply be trades between armor and damage in range.
Combat needs to show how duelists are attacking or failing, to be exploited.
Combat must respect the lower bounds of stats a player can have, and...
Players must be able to disengage and hid by abusing terrain mechanics, by...
Respecting hunger as player's stamina limitations.
Players must regenerate in peace without a mob hounding them once they find a space zone, and get out of the safe zone. (Such as a dirt hole).
A Players must be aware when a fight will happen.
A player can be safe on the surface when exploring in daylight within the bounds of a few chunks moved in time.
Mobs can only ambush when the player is moving and not paying attention.
Respecting a idling player when the mob spawned distance was far.
What can GOG change?
- In terms of combat speed: Avoid combat trades with melee, allow mobs to melee miss. Make attacks focus on damage alpha, revise and respect knockback such that high alpha damage helps the mob and not the rapidly attacking player who hits, pushes the mob back, and is safe. At the same time allow knockback to create space.
- Improve how a newly spawned mob aggro, zombies and such do not care until the player is in range for a sort time, GOG makes arggo instant and they move much faster than normal mobs, silently. This defaults to ambush like gameplay when the problem originates to sounds not yet implemented.
- respect a 2 chunk boundary for mob spawns.
- respect that players can abuse the terrain and mechanics , but allow mobs to fallback when they cannot pathfind or trade hits. Right now mobs are direct arrows and just want to trade hits, becoming an effective sword kill and GOG expands the problem by high HP and duel times in such simple combat.
- Mob difficulty should scale by conditions not related to biome surface. Scale by events, such as distance moved in time (ignore running over chunks towards players who found a home and is idling), or scaling but time and calendar. (I like that scroll protection item, but its designed for adventuring, maybe i missed something for base protection). I understand you been revising spawning rules.
- Mobs rewards on death by how mob scaled to player. Detect easy kills by death time or dps done to mobs. I understand you can now track and control HP loss on mobs.
I Should just move this post out of issues. But combat balance is a persistent issue and the discussion should separate from the forums.
I've heard quite a few of those critiques from others as well. Mainly that tough mobs are fun but people like smart, cunning and tricky AI's which increase the difficulty as opposed to larger raw numbers that make it difficult.
The problem with that though, is making fun and smart AI's is pretty difficult for anyone, it's rare to see mods tote much more then the default AI. It's also no secret that Silentine is inexperienced and short on time, so we have to take that in account as well.
I'm going to proceed to vomit out random ideas and areas off the top of my head that might be simple to implement.
Sounds / Assets:
- We actually had a guy a while back offer to make a sounds for everything. I'm not sure what become of that, but I'm sure in the least we could find others willing to contribute assets like that to the project. Just like you have me here helping with coding I'd bet if we asked around we could find a sound guy to help out as well. If nothing else I'd bet people could point us in the right direction. Even if you don't like the direction of the sounds, I'd figure having a base and seeing what other people would do with the project would give you inspiration.
Miss Chance / RPG elements:
- I've seen this done before in other mods. If you take a look at that Shincolle mod and play around with you'll see they have all sorts of little RNG elements like that. Things like miss, dodge, critical, double hit and specials. I'm not sure if much of that fits into GOG though... but it could be done and could spice up the combat quite a bit there. Think things like scaling difficulty for mobs, like as you level up or the new mobs that spawn get stronger. Or say you defeat the wither and or a boss and all the mobs permanently get stronger. There is also the weighted area dificulty that minecraft does, that the longer a player stays in an area the stronger vanilla mobs get, that actually sounds more reasonable there, like as you start out in an area GOG mobs start out wimpy but slowly get beefier, I think we could tie Boss spawns with that as well, like the higher rank mobs won't spawn until your local area difficulty / timer tics up.
Stamina
- This might be easy to establish as well. Like mobs would start out with 100% stamina, and gain bonus movement, bonus attack speed, and bonus damage - or the opposite, they lose those stats if they lose stamina. So say attacking would quickly deplete their stamina just like the player sort of does, with the wind up on weapons. Moving would slowly deplete it as well, simulating them running and eventually tiring out, and they would have to stand still to regenerate it. We could also tie other effects to is as well, like they have a higher chance to apply a debuff with full stamina or the get a weakness debuff if they're exhausted.
Specials / AI
- This is where it would start getting really tricky and time consuming. I doubt we could actually set up a smart AI but we can do the next best thing and setup RNG or conditional triggers like a stamina factor or ability cooldowns. What could the specials be? Well we've done a few before but something like mobs leaping / lunging towards the player, like the werecat did. Just setup little conditional things to keep the combat fresh and keep the player on guard and paying attention. For example we could have the mob attempt to windup and charge a powerful attack or spell, denoted by an animation and the player would have to cancel it or dodge it or - be punished, say getting smacked with a giant fireball, weapon whirlwind, etc. Not too original but perhaps more mobs disengaging from combat, perhaps to channel a buffing spell, summoning extra mobs. Like take the anubis for example, instead of skeletons being summoned at levels of health she would have to actively start channeling to summon them. Maybe melee guys could disarm you if they get their special off, shield blocking idk. Again, a lot of work but every little thing would probably go further then flat raw numbers making them tougher.
Sound pack? Actually a few years back i made and posted a simple chip-tune effect pack on the gog forums thread and it was linked on the OP. I think it lost support after a sound code revision and got eaten in the history. I can restore it on dropbox or something.
Lately i found the Coros Mods: Zombie Awareness is linking into the GOG mobs with some user tweaks. Now you would think given that mod's hunting awareness would be chaos and even more deadly, but there are bright sides i am finding as i mess the the config: With this mod they make a alert noise when noticing the player. Their attention span appears more linked on the zombie senses instead of raw chase. This addresses some things in my above posts.
As i learn how to tinker with zombie awareness more and if settings are possible, i will dump a config set with Zombie awareness that GOG users can use, or a guide. Mind you, the config will need to be easy to find on the wiki or curse after this to help everyone who wants to tinker the gog settings.
Sorry for my late reply. Seeing such a wall of text is intimidating :)). I tend to spend too much time into replying which is why I tend to avoid doing so.
What can GOG change?
- In terms of combat speed: Avoid combat trades with melee, allow mobs to melee miss. Make attacks focus on damage alpha, revise and respect knockback such that high alpha damage helps the mob and not the rapidly attacking player who hits, pushes the mob back, and is safe. At the same time allow knockback to create space.
Basically, an RPG.
I can see your point but as I have said, I already feel the mod is easy enough. To add the potential of missing and restoring the default knock back would make the mod a breeze especially during end game.
I would have to considerably increase the default damage and health values.
- Improve how a newly spawned mob aggro, zombies and such do not care until the player is in range for a sort time, GOG makes arggo instant and they move much faster than normal mobs, silently. This defaults to ambush like gameplay when the problem originates to sounds not yet implemented.
Really? As far as I know they instantly go aggro the moment the player is within range (40 blocks). GoG mobs have similar range (44 blocks). I checked the gamepedia entry to make sure.
The silence though is an issue. It has always been implemented but the problem is I have never found any decent sounds to fit the roll.
- respect a 2 chunk boundary for mob spawns.
I do not even know how mobs spawn in this mod. All I do know is that it is a ton of guesswork and patchy coding.
- respect that players can abuse the terrain and mechanics , but allow mobs to fallback when they cannot pathfind or trade hits. Right now mobs are direct arrows and just want to trade hits, becoming an effective sword kill and GOG expands the problem by high HP and duel times in such simple combat.
No idea how to implement this. Pathfinding and such is out of my league.
- Mob difficulty should scale by conditions not related to biome surface. Scale by events, such as distance moved in time (ignore running over chunks towards players who found a home and is idling), or scaling but time and calendar. (I like that scroll protection item, but its designed for adventuring, maybe i missed something for base protection). I understand you been revising spawning rules.
Another suggestion have no idea how implement. It would be good as it would prevent players from rage quitting during the first hours of gameplay.
The Scroll Protection items is used for bases, not adventuring. It would be OP if it was otherwise.
- Mobs rewards on death by how mob scaled to player. Detect easy kills by death time or dps done to mobs. I understand you can now track and control HP loss on mobs.
I like this. Problem is as it stands there are not enough items to reward.
Item rewards have always been an issue with this mod. I generally dislike adding new items due to the amount of items provided by other mods and that items I make could never be on par with items from some mods.
Sounds / Assets:
- We actually had a guy a while back offer to make a sounds for everything. I'm not sure what become of that, but I'm sure in the least we could find others willing to contribute assets like that to the project. Just like you have me here helping with coding I'd bet if we asked around we could find a sound guy to help out as well. If nothing else I'd bet people could point us in the right direction. Even if you don't like the direction of the sounds, I'd figure having a base and seeing what other people would do with the project would give you inspiration.
In the past 2-3 people contributed soundpacks. I think they were swallowed up in the past posts. I might look for them in the earlier posts in the thread.
I also made a soundpack but never updated the resource file for it. I guess I forgot all about it and got lazy. Here is the link to it.
I might update it for the latest version coming up. I never included it directly because it was not the type of sounds I was looking for (just hearing that soundpack makes me cringe).
Miss Chance / RPG elements:
- I've seen this done before in other mods. If you take a look at that Shincolle mod and play around with you'll see they have all sorts of little RNG elements like that. Things like miss, dodge, critical, double hit and specials. I'm not sure if much of that fits into GOG though... but it could be done and could spice up the combat quite a bit there. Think things like scaling difficulty for mobs, like as you level up or the new mobs that spawn get stronger. Or say you defeat the wither and or a boss and all the mobs permanently get stronger. There is also the weighted area dificulty that minecraft does, that the longer a player stays in an area the stronger vanilla mobs get, that actually sounds more reasonable there, like as you start out in an area GOG mobs start out wimpy but slowly get beefier, I think we could tie Boss spawns with that as well, like the higher rank mobs won't spawn until your local area difficulty / timer tics up.
I was not aware that there was a weighted area difficulty in vanilla Minecraft.
I have no idea how to implement events but I can understand what you are suggesting. It feels similar to how Terraria progresses.
Stamina
- This might be easy to establish as well. Like mobs would start out with 100% stamina, and gain bonus movement, bonus attack speed, and bonus damage - or the opposite, they lose those stats if they lose stamina. So say attacking would quickly deplete their stamina just like the player sort of does, with the wind up on weapons. Moving would slowly deplete it as well, simulating them running and eventually tiring out, and they would have to stand still to regenerate it. We could also tie other effects to is as well, like they have a higher chance to apply a debuff with full stamina or the get a weakness debuff if they're exhausted.
That would be great to implement. It feels like developing an actual game from scratch by adding a brand new attribute.
For some reason, it never dawned to me to add a contained stamina attribute. I guess I was limiting myself to the values available in Minecraft itself.
Specials / AI
- This is where it would start getting really tricky and time consuming. I doubt we could actually set up a smart AI but we can do the next best thing and setup RNG or conditional triggers like a stamina factor or ability cooldowns. What could the specials be? Well we've done a few before but something like mobs leaping / lunging towards the player, like the werecat did. Just setup little conditional things to keep the combat fresh and keep the player on guard and paying attention. For example we could have the mob attempt to windup and charge a powerful attack or spell, denoted by an animation and the player would have to cancel it or dodge it or - be punished, say getting smacked with a giant fireball, weapon whirlwind, etc. Not too original but perhaps more mobs disengaging from combat, perhaps to channel a buffing spell, summoning extra mobs. Like take the anubis for example, instead of skeletons being summoned at levels of health she would have to actively start channeling to summon them. Maybe melee guys could disarm you if they get their special off, shield blocking idk. Again, a lot of work but every little thing would probably go further then flat raw numbers making them tougher.
I have tried implementing this in the past but it has always been health based. I never considered making a new value for it.
I have been working on this gradually. Thanks to the code you have provided (especially the detection code) I have managed to implement a few new things.
It would be nice to implement animations for skills. Not even animations; poses alone would be enough. I did try making death poses but I could never figure out how to link the entity with the model file. I tried, but with no success.