king reza the great Posted September 21, 2022 Report Share Posted September 21, 2022 hi there is something wrong in 0ad. idk whether its a bug or just a big weak spot? when units are fighting they will follow passive units (like passive hero) and the opponent units will kill them easily. or a player move a small part of his army then opponent units will follow them while the rest units will destroy them. players like vinme and jc abuse these weak spots and call it micro. while its not micro its just 0ad stupidity. to remove this weak spots i have 2 suggestions 1- remove passive mod from heroes (or even soldiors ). why heroes and soldiors should be passive? are they coward? 2- limit number units who follow the opponent units. or force units to attack nearby units. 3 1 Quote Link to comment Share on other sites More sharing options...
hyperion Posted September 21, 2022 Report Share Posted September 21, 2022 1 hour ago, king reza the great said: or force units to attack nearby units. just press h for halt. 1 Quote Link to comment Share on other sites More sharing options...
JC (naval supremacist) Posted September 21, 2022 Report Share Posted September 21, 2022 1* you don't need to be in passive mode to lure ennemy units 2* luring always been a tactic deployed by smart strategists on battlefields (napoleon and gengis khan) .. opposite to tactical cosmic that sends all and cross fingers 3* nobody can come with a clear line between "dance" , "micro" and moving units .. if your hero lost him self on the front lines , would you sacrifice it ? What's dance , moving the same unit 2 times per second ? Seems that moving back all the front melee is already too much dance for you 4* "dance" has been removed already some versions ago .. the 'dance' will get some damage no matter what whilst it was possible to have any unit moonwalking taking 0 damages 5* micro units is the answer that address the problem of short distance units bumping in each other. Slingers are still superior to skirmishers if the terrain is not total clear. 6* anti-"dancers" are those who are generally angry to see their op ranged units losing a battle ... " meeh, let me auto-spam units from 20 cheap wood barracks" 7* yes, "dance" is more clicks .. you can still play simcity if you think that 0ad should be nothing else that ecobotting the fastest, send all and win on auto-pilot 11 hours ago, king reza the great said: limit number units who follow the opponent units. or force units to attack nearby units. bad idea for 2 reasons : - you may want the AI to compute at each frame - instead of each command - the closest enemy unit and this for each unit .. - you really want the AI to cancel each of your command so that your units will run after the enemy hero dancing behind your lines ? 1 Quote Link to comment Share on other sites More sharing options...
king reza the great Posted September 21, 2022 Author Report Share Posted September 21, 2022 i didnt talk about dance idk why did u mention it there should b a way to cover these weak spots anyway. Quote Link to comment Share on other sites More sharing options...
Yekaterina Posted April 15, 2023 Report Share Posted April 15, 2023 What @king reza the great talks about is called hero dancing and it can be done in all alphas effectively, although the impact is lower in A26 due to slower turns and acceleration. The other dances were feasible in A25 but almost useless in A26 especially when there is lag. Quote Link to comment Share on other sites More sharing options...
wowgetoffyourcellphone Posted April 17, 2023 Report Share Posted April 17, 2023 (edited) Dunno, I think a "MaxAttackers" component would be nice for templates. Honestly seems silly that 100 archers would auto-fire at 1 dude instead of all the other dudes with swords and bows 1 meter behind that dude. Edited April 17, 2023 by wowgetoffyourcellphone 1 Quote Link to comment Share on other sites More sharing options...
Gurken Khan Posted April 17, 2023 Report Share Posted April 17, 2023 27 minutes ago, wowgetoffyourcellphone said: Dunno, I think a "MaxAttackers" component would be nice for templates. Honestly seems silly that 100 archers would auto-fire at 1 dude instead of all the other dudes with swords and bows 1 meter behind that dude. With the spread, do you have an idea how many arrows would hit that dude 1m behind the target? Quote Link to comment Share on other sites More sharing options...
wowgetoffyourcellphone Posted April 18, 2023 Report Share Posted April 18, 2023 On 16/04/2023 at 11:09 PM, Gurken Khan said: With the spread, do you have an idea how many arrows would hit that dude 1m behind the target? ok, make it 2 or 3 meters and now spread is irrelevant and my point still stands. Quote Link to comment Share on other sites More sharing options...
Gurken Khan Posted April 18, 2023 Report Share Posted April 18, 2023 4 minutes ago, wowgetoffyourcellphone said: ok, make it 2 or 3 meters and now spread is irrelevant and my point still stands. Glad for you and your point. Still would be interested in an idea of how many arrows would hit that dude 1m apart. I'd guess several factors would go into it. Quote Link to comment Share on other sites More sharing options...
wowgetoffyourcellphone Posted April 18, 2023 Report Share Posted April 18, 2023 1 minute ago, Gurken Khan said: Glad for you and your point. Still would be interested in an idea of how many arrows would hit that dude 1m apart. I'd guess several factors would go into it. Sure, but the point is that with a MaxAttackers component, if a units have a MaxAttackers of, say, 20, then the 80 other attackers will search out the next closest 4 targets instead of wasting all 100 arrows per second on the dancer. Quote Link to comment Share on other sites More sharing options...
Stan` Posted April 20, 2023 Report Share Posted April 20, 2023 On 18/04/2023 at 4:26 PM, wowgetoffyourcellphone said: Sure, but the point is that with a MaxAttackers component, if a units have a MaxAttackers of, say, 20, then the 80 other attackers will search out the next closest 4 targets instead of wasting all 100 arrows per second on the dancer. That's sounds like a generally good idea, but wouldn't people call that lag because their units do not obey them anymore? In most RPG games, units have circles, that define whether they are allowed to attack you. A bit like covalence rings, there can only be up to n enemies in each ring Battle Circle AI: Let Your Player Feel Like They're Fighting Lots of Enemies (tutsplus.com) @Freagarach added a notion of attackers in Resistance.js 0ad/binaries at master · 0ad/0ad (github.com) It's mostly used to notifiy people that their target is dead or that they are already attacking it, but I suppose it could be extended, to deny units attacking an oversolicited unit. Question is how many units per single, and whether one should take classes into account (10 archers, but no melee units attacking someone would be weird, wouldn't it) 1 Quote Link to comment Share on other sites More sharing options...
real_tabasco_sauce Posted April 20, 2023 Report Share Posted April 20, 2023 (edited) On 18/04/2023 at 7:26 AM, wowgetoffyourcellphone said: Sure, but the point is that with a MaxAttackers component, if a units have a MaxAttackers of, say, 20, then the 80 other attackers will search out the next closest 4 targets instead of wasting all 100 arrows per second on the dancer. Hmm it might be nice, but I think only for unit behavior. It would be bad if I actually click all my archers to shoot 1 unit and some of my archers to shoot a different unit. Even so, I think the unit ai should be simple and predictable, so that player inputs are more responsible for optimizing fights. IMO dancing is really not a problem at the moment. Edited April 20, 2023 by real_tabasco_sauce 2 Quote Link to comment Share on other sites More sharing options...
chrstgtr Posted April 20, 2023 Report Share Posted April 20, 2023 6 hours ago, real_tabasco_sauce said: IMO dancing is really not a problem at the moment. Agree--it hasn't been for a couple of years now. 6 hours ago, real_tabasco_sauce said: Hmm it might be nice, but I think only for unit behavior. It would be bad if I actually click all my archers to shoot 1 unit and some of my archers to shoot a different unit. Agree. This would only take away control from the player. At best, it runs the risk of automating the game. Seems like the better solution is to revisit an "attack area" feature that would provide all the same, and more, benefits to the player without automating the game. 2 Quote Link to comment Share on other sites More sharing options...
wowgetoffyourcellphone Posted April 21, 2023 Report Share Posted April 21, 2023 There's "automating the game" and then there's fixing bad unit behavior. But whatevs. 1 Quote Link to comment Share on other sites More sharing options...
a 0ad player Posted April 21, 2023 Report Share Posted April 21, 2023 If it is a low hanging fruit, a maximum attacker component combined with ranking system, militia/professional soldiers, sniper unit could be interesting to try out. Quote Link to comment Share on other sites More sharing options...
chrstgtr Posted April 21, 2023 Report Share Posted April 21, 2023 (edited) 1 hour ago, wowgetoffyourcellphone said: There's "automating the game" and then there's fixing bad unit behavior. But whatevs. Sure, but one of the insights from @real_tabasco_sauce is that this isn't necessarily "bad" behavior and the "problem" we are trying to solve doesn't really exist. I agree with him on both points. I'm just pointing out that there is potentially a better solution out there. Edited April 21, 2023 by chrstgtr 2 Quote Link to comment Share on other sites More sharing options...
Yekaterina Posted April 21, 2023 Report Share Posted April 21, 2023 The hero lure can always happen because the hero unit has too much health so all players are confident that they won't lose it in the dance. If we massively decrease the health of heroes then the potential dancer would have to consider more about whether it's worth sacrificing hero for a slight advantage in one battle. Too many people use heroes as meatshields and harassing farms / woodlines. They are almost immune to any tower or CC or fortress arrows. In my opinion, hero units should be "noble" and "respected". It's not very heroic to dance around a battlefield and running away all the time like a coward. Also it's even less honourable to sneak into enemy base alone and kill all of their unsuspecting women; Geneva Conventions fly straight out of the window. Hero dancing can be countered by sniping or just clicking attack move again. Quote Link to comment Share on other sites More sharing options...
Gurken Khan Posted April 21, 2023 Report Share Posted April 21, 2023 15 minutes ago, Helicity said: In my opinion, hero units should be "noble" and "respected". lol 15 minutes ago, Helicity said: Geneva Conventions After our time frame. Quote Link to comment Share on other sites More sharing options...
wowgetoffyourcellphone Posted April 21, 2023 Report Share Posted April 21, 2023 15 hours ago, chrstgtr said: Sure, but one of the insights from @real_tabasco_sauce is that this isn't necessarily "bad" behavior and the "problem" we are trying to solve doesn't really exist. I agree with him on both points. I'm just pointing out that there is potentially a better solution out there. I personally am not so hung up on the dancing thing. I agree, that particular issue has largely been mitigated. I just think /in general/ it would be a good thing for units, by default, to spread out their attacks and not all attack the nearest unit possible. A "MaxAttackers" component/element in the templates could be one way to do that. I agree that such a unitAI/template change should be overridable by the player if they wish to focus-fire on something. User input, to some extent, should override default behaviors. But also keep in mind, we don't allow players to set 100 gatherers onto a farm or 50 gatherers onto a tree either. They spread out. It's nearly the same concept and no one bats an eye at that. A MaxAttackers template component would work very similarly to the MaxGatherers component in that sense. It's not "automating the game" to have those things, IMHO, and generally leads to better default unit behavior. 2 Quote Link to comment Share on other sites More sharing options...
chrstgtr Posted April 21, 2023 Report Share Posted April 21, 2023 1 hour ago, wowgetoffyourcellphone said: I personally am not so hung up on the dancing thing. I agree, that particular issue has largely been mitigated. I just think /in general/ it would be a good thing for units, by default, to spread out their attacks and not all attack the nearest unit possible. A "MaxAttackers" component/element in the templates could be one way to do that. I agree that such a unitAI/template change should be overridable by the player if they wish to focus-fire on something. User input, to some extent, should override default behaviors. But also keep in mind, we don't allow players to set 100 gatherers onto a farm or 50 gatherers onto a tree either. They spread out. It's nearly the same concept and no one bats an eye at that. A MaxAttackers template component would work very similarly to the MaxGatherers component in that sense. It's not "automating the game" to have those things, IMHO, and generally leads to better default unit behavior. Yeah, I'm not entirely opposed to it. I would like just something that gives more control to the player. I also wouldn't want the max number to be set so low that it effectively automates the games. But that automating effect begins to take pretty quickly if it is intended to do anything like avoid having an entire army focus on a dancing hero. Quote Link to comment Share on other sites More sharing options...
Lion.Kanzen Posted April 21, 2023 Report Share Posted April 21, 2023 It would be interesting to be able to open tabs in the interface and indicate parameters such as which units to focus on and to be able to have options such as overkill or to keep the attacker distribution balanced. That would be useful with the battalions so that they do not become disorganized. Quote Link to comment Share on other sites More sharing options...
wowgetoffyourcellphone Posted April 21, 2023 Report Share Posted April 21, 2023 57 minutes ago, chrstgtr said: Yeah, I'm not entirely opposed to it. I would like just something that gives more control to the player. I also wouldn't want the max number to be set so low that it effectively automates the games. But that automating effect begins to take pretty quickly if it is intended to do anything like avoid having an entire army focus on a dancing hero. We could probably set MaxAttackers as some kind of ratio to size of the target, so that larger units can have more attackers targeting them (makes sense I think). But a setting of 20 MaxAttackers for infantry and cavalry could be a good starting point. It's something I'd love to be able to play around with and see if I couldn't make battles flow better and look less like a mosh pit. I could even see such a thing make battles stretch out linearly, naturally recreating what a real battle would look like. 1 Quote Link to comment Share on other sites More sharing options...
Lion.Kanzen Posted April 21, 2023 Report Share Posted April 21, 2023 21 minutes ago, wowgetoffyourcellphone said: like a mosh pit. Good point hahaha Quote Link to comment Share on other sites More sharing options...
Lion.Kanzen Posted April 21, 2023 Report Share Posted April 21, 2023 24 minutes ago, wowgetoffyourcellphone said: We could probably set MaxAttackers as some kind of ratio to size of the target, so that larger units can have more attackers targeting them (makes sense I think). But a setting of 20 MaxAttackers for infantry and cavalry could be a good starting point. It's something I'd love to be able to play around with and see if I couldn't make battles flow better and look less like a mosh pit. I could even see such a thing make battles stretch out linearly, naturally recreating what a real battle would look like. It would be excellent to assign to the melee units 3-4 units maximum, especially in battalions to this add some stay not to disorganize the formation in battle is as if the battalion was a collective unit. At least that would give a good simulation of battalions and infantry and sometimes cavalry, which can have more freedom with the formation. The sil units would be the opposite and be dispersed. Quote Link to comment Share on other sites More sharing options...
Stan` Posted April 23, 2023 Report Share Posted April 23, 2023 On 21/04/2023 at 10:17 PM, wowgetoffyourcellphone said: We could probably set MaxAttackers as some kind of ratio to size of the target, so that larger units can have more attackers targeting them (makes sense I think). But a setting of 20 MaxAttackers for infantry and cavalry could be a good starting point. It's something I'd love to be able to play around with and see if I couldn't make battles flow better and look less like a mosh pit. I could even see such a thing make battles stretch out linearly, naturally recreating what a real battle would look like. You could try this: Replace in Resistance.js Resistance.prototype.Schema = "<a:help>Controls the damage resistance of the unit.</a:help>" + "<a:example>" + "<Foundation>" + "<Damage>" + "<Hack>10.0</Hack>" + "<Pierce>0.0</Pierce>" + "<Crush>5.0</Crush>" + "</Damage>" + "<Capture>10</Capture>" + "</Foundation>" + "<Entity>" + "<Damage>" + "<Poison>5</Poison>" + "</Damage>" + "</Entity>" + "</a:example>" + "<zeroOrMore>" + "<choice>" + "<element name='Foundation' a:help='Resistance of an unfinished structure (i.e. a foundation).'>" + Resistance.prototype.BuildResistanceSchema() + "</element>" + "<element name='Entity' a:help='Resistance of an entity.'>" + Resistance.prototype.BuildResistanceSchema() + "</element>" + "</choice>" + "</zeroOrMore>"; By Resistance.prototype.Schema = "<a:help>Controls the damage resistance of the unit.</a:help>" + "<a:example>" + "<Foundation>" + "<Damage>" + "<Hack>10.0</Hack>" + "<Pierce>0.0</Pierce>" + "<Crush>5.0</Crush>" + "</Damage>" + "<Capture>10</Capture>" + "</Foundation>" + "<Entity>" + "<Damage>" + "<Poison>5</Poison>" + "</Damage>" + "</Entity>" + "<MaxAttackers>2</MaxAttackers>" + "</a:example>" + "<zeroOrMore>" + "<choice>" + "<element name='Foundation' a:help='Resistance of an unfinished structure (i.e. a foundation).'>" + Resistance.prototype.BuildResistanceSchema() + "</element>" + "<element name='Entity' a:help='Resistance of an entity.'>" + Resistance.prototype.BuildResistanceSchema() + "</element>" + "</choice>" + "</zeroOrMore>" "<optional>" + "<element name='MaxAttackers' a:help='The max number of attackers the units can have at a given time.'>" + "<ref name='nonNegativeDecimal'/>" + "</element>" + "</optional>" +; And /** * @param {number} attacker - The entity ID of the attacker to add. * @return {boolean} - Whether the attacker was added sucessfully. */ Resistance.prototype.AddAttacker = function(attacker) { if (this.attackers.has(attacker)) return false; this.attackers.add(attacker); return true; }; by /** * @param {number} attacker - The entity ID of the attacker to add. * @return {boolean} - Whether the attacker was added sucessfully. */ Resistance.prototype.AddAttacker = function(attacker) { if (this.attackers.has(attacker) || (this.template.MaxAttackers && (this.attackers.length >= (+this.template.MaxAttackers)))) return false; this.attackers.add(attacker); return true; }; The a:example, shows you how to use it. Basically add MaxAttackers at the end of the Resistance component. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.