Loading...
  OR  Zero-K Name:    Password:   

New Dodge Widgets

23 posts, 2075 views
Post comment
Filter:    Player:  
Page of 2 (23 records)
sort
3 years ago
I made two dodge widgets, one that cannot see visible enemy projectiles and one that can (yes I still found a way to do it). Usually I would be happy to announce a new feature but I'm not puplishing it and not using it against human players currently because it is very unclear to me if this is now seen as allowed or as good or what. I also experimented with weaker versions so that "a human can reasonably replicate it". If enough people are interested, I might share it.

I would also like to acknowledge USrankPetTurtle as a pioneer of autododging. His Dodge AI mod is good work.

Players can already dodge shots manually and raiders already dodge skirmishers automatically. I had to learn the hard way that even Warriors(=Reavers) already dodge Buoy shots automatically, but only if they have a fight(=attack move) command or (an attack command and move state >= maneuver). More autododging would also solve the recent complaints about Merl(=Impaler), Bulkhead and artillery spam. If ZK truly aims to automize tedious micro and have some projectile physics, more autododging is a natural consequence.
+6 / -0
Dodge feature sounds very much in the spirit of ZK. Should make using artillery require more attention to get results and make it less of a nuisance to fight against.

Looking ahead for funsies, it might even make a minigame where you identify which radar blips are units by shooting at them with Slings and seeing which ones move. With that automated one could even make it a widget to tag which unidentified radar blips have not been observed to move yet, and then ignore known mobile blips automatically similar to the anti-bait filter to automate using that information.
+3 / -0

3 years ago
I agree that it does sound like ZK, although if it was going to end up being implemented, it should probably be the weaker version, so it isn't overpowered, because then everything else would have to be buffed so it can hit things. The question is, when would units automatically dodge and when would they not? I think that if a unit is on hold position, then obviously it wouldn't dodge, and if it was not on hold position, then it would automatically dodge, but would it dodge while moving towards where you told it to move? I think that maybe it wouldn't, unless you used attack move or something.
+3 / -0
3 years ago
I think it should be implemented for all units period. Players shouldn't be expected to memorize which units will auto dodge. Since raiders and many skirmishers auto dodge, all units should auto dodge and the unit behavior settings should allow players to select how they want individual units to behave under different circumstances and with different commands.
+2 / -0
3 years ago
Probably should depend on units involved. Some projectiles are instant hits and not dodgable, others are homing and can only be dodged by retreating or advancing out of min/max range. Some units are too slow to dodge.
+0 / -0
3 years ago
Unless the strong version takes up too much processing power, publish the strong one. Less micro os always better. Balancing may be required, but that is not a reason to use the weaker one.
+1 / -1


3 years ago
> Projectile physics
> Community helpfully create AI widgets that undercut projectile physics by making all units dodge projectiles.
> Game crunches CPU simulating both projectile physics and unit dodging AI
> Units on both sides just twitching around and missing all their shots uselessly
> "wave of the future"
> ZK is now dance simulator K
+5 / -1

3 years ago
DErankBrackman I appreciate your work in making these widgets, it probably took a while to program.

However, I don't think this should be used in the main game as it will turn ZK into as USrank[GBC]1v0ry_k1ng masterfully put it, "dance simulator K". I think microing units is fun, but for the people that don't, there's always the option of complete focus on macro. It's a trade-off - time spent microing units can help you win an engagement, but if you forget about macro, you might be excessing metal and lose the chance to churn out a large army and overwhelm the enemy elsewhere.

In summary, I think the dodging automation is where it needs to be currently. You could have a dodge mod which is essentially ZK, but with this dodge widget enabled. I know you mean well, it's just that I think it wouldn't be good for the main game.
+5 / -0
3 years ago
Thinking that the current state is just right is a common psychological fallacy that I often suffern from myself. To avoid it, I ask myself: If the current autododging did not exist, would we want to add it? If more autododging had always existed, would we want to remove it?

I think that the balance of a strategy game should not become dysfunctional by playing it at a lower speed. This means that balancing by APM is bad. It does not let the player play the actual game but instead fight the GUI. If we want a raider to dodge a projectile, we have to make the raider fast enough. If we want a riot to be hit by a projectile, we have to make the projectile fast enough. I don't like that riots can already dodge skirmisher shots. And they already do so automatically. I think the solution is not to remove the automization but to make skirmisher shots faster or riot movement slower.

While I do enjoy to micro my units closely, I often find myself in a position where this is not worth my APM. I don't like that my units take shots that I know exactly how to avoid, but I can just not click fast enough. Autododging does not take all micro away. Manual dodging is still superior because you can consider more information for where to move your units. Even if you have the APM I think that ZK offers more interesting decisions to make. I find the dancing beautiful.
+3 / -0
Thanks for making the thread. I am not directly interested in AI widgets for latency reasons that I have written about elsewhere, but the design thoughts behind them can be useful. This sort of thing should be a gadget. USrankPetTurtle opened a PR for a gadget and we're slowly polishing it up. You could help it along here: https://github.com/ZeroK-RTS/Zero-K/pull/4486

The dodge AI that doesn't see enemy projectiles sounds interesting. Perhaps it is a basis for a PR to tactical AI. You could expand on the theory behind it.

I don't doubt you found a way for widgets to read enemy projectiles. I recall that PLrankAdminSprung did a relatively simple block that should at least make it obvious that the block is intentional, and not something to work around. Perhaps you could write a PR to make the block stronger or more obvious.

I expect that the full power of dodge AI would not improve ZK. I think it would take a lot of design work (not technical work) to find a good level and adapt the overall design and balance. There are a few things to get out of the way if part of that work is going to happen in this thread.
quote:
If ZK truly aims to automize tedious micro and have some projectile physics, more autododging is a natural consequence.

Arguing from the "true goal" of anything sounds highly fallacious to me. Having projectile physics, or even automating tedious micro, are not terminal goals of ZK. Something closer to a "true goal" would be "enjoyment for the players", but chasing this definition becomes increasingly fuzzy and abstract. Which set of players? What sort of game? What is the niche of ZK? I think we can only ever state instrumental goals, and if some perfect chain of logic leads to a contradiction between instrumental goals and significant feelings/feedback, then the instrumental goal was an inaccurate approximation of whatever it is that really matters. There are few axioms here.

quote:
I think that the balance of a strategy game should not become dysfunctional by playing it at a lower speed. This means that balancing by APM is bad. It does not let the player play the actual game but instead fight the GUI.

This is a decent guiding principal for simpler matters, but no heuristic deals with all cases and I think we've ended up in such a case. The chain of logic you lay out is not absolute, in that I think it works for central examples but is susceptible to edge cases. For example, if ZK only became dysfunctional at one frame every 10 seconds, and had no dysfunction before this point, then nobody would care and I don't think you could conclude "balancing by APM is bad".

quote:
If we want a raider to dodge a projectile, we have to make the raider fast enough. If we want a riot to be hit by a projectile, we have to make the projectile fast enough. I don't like that riots can already dodge skirmisher shots. And they already do so automatically. I think the solution is not to remove the automization but to make skirmisher shots faster or riot movement slower.

The problem here, where this detracts from fun, is that balance at perfect dodge automation doesn't sound like much fun. Just consider how fast a projectile has to be, or poorly a riot has to maneuver, to hit all the time against perfect dodging. Now consider what happens if raiders are balanced by their ability to dodge such speedy projectiles.
  • How superhuman do raiders need to be to dodge projectiles that are fast enough to hit superhuman riots? Are players even allowed to manually control their raiders anymore and expect them to kill skirmishers?
  • How unmaneuverable do riots have to be to be consistently hit by skirmishers? Do riots feel at all responsive and fun to use at this level of maneuverability?
This feeds into the broader idea of poorly designed automation inadvertently removing player interaction and strategic choices. Even if a game has a lot of options at perfect play (ignoring how little sense this makes), the UI can support those choices to different extents and thus skew what is actually available to players.

Essentially, I disagree about the existence of this safety rail in the design of Zero-K:
quote:
Autododging does not take all micro away. Manual dodging is still superior because you can consider more information for where to move your units. Even if you have the APM I think that ZK offers more interesting decisions to make. I find the dancing beautiful.

With powerful enough dodging I fear we could stumble in areas where a lot of meaningful micro is removed.

To be concrete, consider Glaive and Ronin. With Glaive you have the choice of whether to run right at the Ronin, to close distance quickly, or to dodge a bit to take fewer casualties. There is also the option of running past the Ronin, either with a bit of dodging, or as fast as possible. The best option depends on strategic factors. What is close to the Ronin? Can they retreat to safety? How valuable is a Ronin compared to a Glaive? Do the Glaives need to finish the Ronin quickly and go do something else? Players can currently implement the subtleties of these considerations with Move commands, and use Attack Move to implement the common option of fighting the Ronin safely.

Now consider the world where Ronin projectiles are fast enough to hit perfectly dodging Reavers. Glaives have perfect dodge AI too, so their Attack Move still implements "fight Ronin safely" and Move still implements "move without worrying about damage", but how are people meant to implement "move past Ronin safely" if doing so with a basic Move command now requires superhuman APM? An obvious approach is to add a Dodge Move command that dodges without trying to fight enemies. This seems bad in itself because I see value in the simplicity of having a few powerful commands, but it also doesn't even capture the lost strategic depth. With Dodge Move we have these three options:
  • Fight the Ronin safely,
  • Move somewhere safely, and
  • Move somewhere directly,
but the shades of decision making between them have been lost.

Currently, Move with manual dodging allows you to dial in the tradeoff between moving somewhere directly and dodging projectiles. This is why Attack Move does not play the game for you. It is a good way to let people implement the common choices in complex situations, but it is a blunt instrument. Players with attention to spare should get more out of attending to a battle because there are decisions to make in the battle. These decisions can be so subtle and arise so rapidly that simply saying "Attack Move towards X", or even "Dodge Move towards X", is inadequate to communicate them.

I want the kinds of tactical and strategic subtleties that are going to require above-average APM at high level play. It's just a fact of information theory that specifying particular choices at a certain rate in a large space of choices is going to require some minimum rate of information flow from players to the game. In this sense, the purpose of things like line move and Attack Move is to compress the information flow by exploiting the form of common decisions. The goal is to give most players access to a decent chunk of the typical decisions in their tactical decision making toolbox. It also lets all players implement less precise versions of "fight safely" when their attention is required elsewhere, rather than making the whole "fight safely" cluster in decision-space contingent on direct attention.

Anyway, back to the topic. I don't want manual dodging to become obsolete because no system of flavoured Move commands can so smoothly implement as many subtleties of decision making as are already available with the current UI. 'Smoothly' is important because the game has to feel good to actually play. Also, I'm not saying anyone wants to make manual dodging obsolete, but I'm trying to build a theory behind what to do here, and it should have something in it that informs where to draw the line.

This is all why I think dodge AI will take a lot of work. Barging ahead with powerful dodge AI and rebalancing everything would take a lot of time and create a long period of instability. We would probably discover the limits in during the process. But rather than throw everything on its head, I'd like to start with some sort of theory of the limits. This could be informed by early tweaking and testing, but that requires quite a bit of time too.

In the end, I'm probably looking for unit AI that is about as good as the average player devoting their focus to a common task. This way people are free to manually diverge from this behaviour without paying a massive cost in unit effectiveness. One idea I've been playing with is to look at the assumption that unit AI knows everything that happens ingame. Maybe dodge AI could be configured with some implicit inbuilt reaction time and imprecise read of projectile positions and velocities. Players can't perfectly predict where a projectile will land or react instantly, so perhaps some broadly applied imperfection is a good basis for dodge AI that retains manual commands and unit responsiveness.
+10 / -0

3 years ago
quote:
In the end, I'm probably looking for unit AI that is about as good as the average player devoting their focus to a common task.


Shouldn't it be slightly worse than the average player's skill? Because at some point, the dodge AI is going to be playing a big part of the game for some people, and it overall would make it so you don't have to be as good at macro.
I might be understanding this wrong, but I understood it as someone will click near the enemies with their units, and then they can go pay attention to something else and the AI will do it for them, but not super well.
+1 / -0


3 years ago
quote:
With powerful enough dodging I fear we could stumble in areas where a lot of meaningful micro is removed.


This just about TL;DRs it for me (despite having read thoroughly and appreciating you putting the time into writing that, GF).

Essentially I don't appreciate the ongoing compulsion to code the existing gameplay away. The end product exists in a niche that I don't want to tread near with a hazmat suit.
+2 / -0
3 years ago
Now one could see any further discussion as useless because the decision has been made. On the other hand, AUrankAdminGoogleFrog is not against weak forms of autododging, so some insight is to be gained about where to draw the line. Knowing that this thread becomes longer than my dodge program code within exactly this sentence, I will first comment on things where I don't agree with you AUrankAdminGoogleFrog and then on things where I do agree with you.

It happens much more often to me that I don't dodge a projectile that I could have absolutely dodged with my human dodge abilities if I had not been busy elsewhere than that I want a special nuance between dodging and not dodging. Even if I want a nuance, it will only become difficult in the case of strong autododging, but that's already the case currently if I try to dodge Buoy shots manually with Reavers compared to a fight command. In the case of weak autododging, I can still move manually in the rare case that I really want a nuance. Therefore I think having nuances is mostly a weak artificial argument.

The stronger though less rational argument against autododging imo is that direct interaction with physics is fun. This has to be weighed against the unfun of having your stupid units shot unnecessarily and the fun in other decisions that dodge APM can be used for instead. There is a dependency on game size: For few units, manual dodging is fun. For many units, it's tedious. This gave me the random idea of a building that improves autododging in the mid-lategame but I'm very unsure about that.

quote:
For example, if ZK only became dysfunctional at one frame every 10 seconds, and had no dysfunction before this point, then nobody would care and I don't think you could conclude "balancing by APM is bad".
I currently don't know a case where the principle that balancing by APM is bad would be violated. If the game has a possible exploit that only works in one frame every 10s, I would actually call this dysfunctional balance. If on the other hand, the game as a whole becomes dysfunctional for one frame every 10s for example by freezing, then this does not make balance dysfunctional.

I expected the latency argument and have therefore made a variant that does not suffer from latency already months ago. I call it "Coherent Random Dodge". This is the one that does not see any projectiles. So I guess this should be ok.
[Spoiler]
I agree that some kind of imperfect autododging is a possible way. We don't necessarily have to make units more powerful to make microing less tedious. I experimented with different projectile recognition delays and excluding projectiles above certain speeds and I think this is a good approach. The delay could even include a latency compensation. The only thing we should be careful about here is to not arbitrarily break the symmetry between what a player and a widget can do. We need a well reasoned principle for this line and, as you explained AUrankAdminGoogleFrog, it should be what a player can do who devotes their focus to a task. I'm not sure if it should be exactly an average player - maybe rather a player who knows what they are doing about repetitive tasks without being perfect at complex tasks. Maybe it also doesn't matter how we call such a player and we should rather look at the concrete implementation. In the end I think that the different goals for and against it can be combined by weak autododging.
+1 / -0
I think this is going to be more argumentative than necessary, but I don't know what else to write. Since you said you will write about disagreements then agreements, I will take everything up to "I agree" in your last paragraph as something you think you disagree with me about.

quote:
It happens much more often to me that I don't dodge a projectile that I could have absolutely dodged with my human dodge abilities if I had not been busy elsewhere than that I want a special nuance between dodging and not dodging. Even if I want a nuance, it will only become difficult in the case of strong autododging, but that's already the case currently if I try to dodge Buoy shots manually with Reavers compared to a fight command. In the case of weak autododging, I can still move manually in the rare case that I really want a nuance. Therefore I think having nuances is mostly a weak artificial argument.

Up until "Therefore..." you seem to be summarising my post, with the addition of concrete examples based on you as a player. I don't doubt that there is variation among players in skill at dodging Buoys and desire for tactical nuance. That said, I would be wary about so strongly claiming that you want as little nuance as you imply. Sources of fun are tricky to pin down, even under introspection. Also, don't read too much into how Buoy and Reaver are currently implemented, doing that would amount to assuming that the game as it exists is perfect.

I don't see where the last sentence comes from. What is 'having nuance' a weak 'artificial' argument for/against? My post was mostly about full strength dodge AI. The relevant chain of logic is:
  • A lot of people like the tactical nuance in ZK.
  • Tactical nuance requires some minimum command bandwidth from player to game.
  • Manual Move commands provide this bandwidth, special flavours of Attack Move do not.
  • Strong dodge AI makes manual Move commands obsolete compared to potential new flavours of Attack Move.
  • Therefore strong dodge AI removes tactical nuance.
  • Therefore strong dodge AI would be bad for the game.
I don't see you substantially interacting with any of the steps here. Are you saying the argument is 'artificial' in the strawman sense? In which case, I wrote:
quote:
Also, I'm not saying anyone wants to make manual dodging obsolete, but I'm trying to build a theory behind what to do here, and it should have something in it that informs where to draw the line.

Essentially, I expect people writing dodge AI will try to make it as strong as possible in the absence of any other guidance. This is my impression from previous threads.

Are we actually just in the following situation?
  • I perceive you pulling hard in a direction along a policy continuum.
  • Therefore I think you want the most extreme end of that continuum.
  • Therefore I write posts about how the extreme end of that continuum is bad.
  • You see this as a stawman of your real position, which is a relatively small step from the current policy.
Your last paragraph seems to imply that this is the situation. If it is, then please check that you are not accidentally trying to prove more than you need. I think I am much more amenable to being argued to a local policy change than being argued (seemingly) arbitrarily far in a policy direction.

quote:
The stronger though less rational argument against autododging...

That isn't what 'rational' means, and my post is not an exhaustive collection of arguments about dodging. I have barely scratched the surface of arguments that can be made from the perspective of "fun", but these are trickier to make.

quote:
This gave me the random idea of a building that improves autododging in the mid-lategame but I'm very unsure about that.

I am very sure that it is against the spirit of ZK to tie unit intelligence to assets within the game.

quote:
I currently don't know a case where the principle that balancing by APM is bad would be violated. If the game has a possible exploit that only works in one frame every 10s, I would actually call this dysfunctional balance. If on the other hand, the game as a whole becomes dysfunctional for one frame every 10s for example by freezing, then this does not make balance dysfunctional.
I was just giving an example. My claim was: that "balancing by APM is bad." does not follow from (forall [speeds] "the balance of a strategy game should not become dysfunctional by playing it at [speed]."). I stand by my counterexample of nobody caring if the lower speed turns out to be 10s a frame. Or to put it another way, I think statements that hinge on the truth value of "the balance of a strategy game should not become dysfunctional by playing it at 10s a frame." are irrelevant.

quote:
I expected the latency argument and have therefore made a variant that does not suffer from latency already months ago. I call it "Coherent Random Dodge". This is the one that does not see any projectiles. So I guess this should be ok.

Bluntly, I don't think that it is possible to truly deal with the latency issue of widgets. On a practical level, I shudder at the thought of maintaining code that approaches better-and-better latency handling. Also, not seeing any projectiles is not quite the end goal either.
+4 / -0
2 years ago
So what should be done now?

I think I can at least already publish the weakest form of autododging without projectile knowledge, a Coherent Random Dodge version, under GNU GPL v2:
Idle unselected uncloaked mobile units that are not queued to be transported except Fencer/Crab/Nimbus/Bulkhead/Emissary/Tremor/builders dodge on a line perpendicular to the line to the next enemy. It is certainly inferior to "what a human can possibly do" or what a "player devoting their focus to a common task" can do. There is a stable version and a latest version. The latest version doesn't move units that are queued to be transported but is not so well tested for bugs.
+1 / -0


2 years ago
As I think I've said (but maybe elsewhere), the next step is a vertical slice on Impaler in the ongoing PR. I think Impaler is the least controversial recipient of dodging, so we can use it to live test and work out unexpected kinks in the AI or UX of units dodging.

Here is the PR, it's mostly a bunch of polish and configuration at this point: https://github.com/ZeroK-RTS/Zero-K/pull/4486
+0 / -0
2 years ago
quote:
doesn't move units that are queued to be transported

Sorry if I'm just being thick here, but... Why is this desirable?
+1 / -0
2 years ago
not sure what dodging means exactly, but I'm really sick of how dumb units are sometimes, while zero-k is advertised as alleviating the need for micro. too often the units just stand still while getting shot at, instead of running away or trying to engage (pretty sure in warcraft 3 the units would just run the opposite direction if something was attacking them and they couldnt fight back. other times they do try to fight back, but just end up chasing units that outrange and/or outspeed them or run into porc.
units running around in circles already look silly. and then there's the whole artillery getting nerfed thing.
I dont want full blown 'AI plays the game for you', but the above issues need to be fixed.
+0 / -0

2 years ago
?

Yes units are dumb sometimes, but you have to know when to manually control your units, and when to let the AI control your units, manually is always better, but you can't control multiple things at once very easily if you want to do anything manually, so using the AI is good sometimes.

I think the AI is mostly good, you just have to know how to use it (I don't).

Now it is true that if a unit is getting shot at, but can't see the other unit, it won't dodge, but if it did then artillery would be overpowered.

Speaking of micro, a good example of micro by @Godde

+1 / -0
2 years ago
quote:
quote:
doesn't move units that are queued to be transported

Sorry if I'm just being thick here, but... Why is this desirable?
Transporters are not able to pick up units that are dodging around.
+1 / -0
Page of 2 (23 records)