I don't know how tagging works anymore.

User avatar
drartimus
Algorithm
Algorithm
Posts: 84

I don't know how tagging works anymore.

Post#1 » 18 Feb 2018, 19:05

For TL;DR, go to bold part. If this is covered, please post links.

My AIs have evolved through several versions of the game and I just noticed my bots not behaving as expected. My bots use tagging, in a mixed leader fashion. If my primary leader is doing something I want higher in priority than tagging, I have a succession of next leaders to do tagging. I was having pretty good success, but it took a while to get there.

What I relied on was tagging happened if I wasn't already attacking or moving on a tag. If a tag was tagged, it happened on later branches, and earlier branches executed on the tags. That doesn't seem to happen that way now, or at least not immediately.

I read a little about "instant tagging" but not much on how bots behave differently. I get that tagging no longer takes an execution tick, but the flow doesn't seem to reset, it seems to resume after the tag action. Is this correct? I almost think this is a bug in the logical flow. I wonder if instead of continued branch execution after tag actions, that the execution flow should start over.

If this is expected, I guess I just need to rearrange is all.
"If it acts like it's not running your code, it's probably not running your code." -- me, I say this all the GD time!

User avatar
GFX47
Dev Team
Posts: 2597

Re: I don't know how tagging works anymore.

Post#2 » 18 Feb 2018, 19:14

drartimus wrote:I get that tagging no longer takes an execution tick, but the flow doesn't seem to reset, it seems to resume after the tag action. Is this correct?


Yes, as requested by the community.

User avatar
drartimus
Algorithm
Algorithm
Posts: 84

Re: I don't know how tagging works anymore.

Post#3 » 18 Feb 2018, 20:52

Ehh, I missed the conversation, taking time away from the game will do that. If it's a popular move, I guess I can't say much to change it. Too bad, I liked the challenge and balance that the overthinking bots should have to worry about the more reactivate bots. But...

<just joking, everyone, don't whine if you can't take it>
Image
</just joking, everyone, don't whine if you can't take it>

I think I'm safe, I did that in tags, what's the worst reaction that can happen?
"If it acts like it's not running your code, it's probably not running your code." -- me, I say this all the GD time!

sollniss
Automaton
Automaton
Posts: 164

Re: I don't know how tagging works anymore.

Post#4 » 18 Feb 2018, 21:31

Tags were close to completely useless before they were instant. Now you can do some really nice magic with them.

User avatar
GFX47
Dev Team
Posts: 2597

Re: I don't know how tagging works anymore.

Post#5 » 18 Feb 2018, 23:32

Does anyone really use them since the update?

WASP103
Script
Script
Posts: 36

Re: I don't know how tagging works anymore.

Post#6 » 19 Feb 2018, 00:32

I do. And now that I begin to understand how they work, it's really where the magic happens <3

pier4r
Skynet
Skynet
Posts: 3190

Re: I don't know how tagging works anymore.

Post#7 » 19 Feb 2018, 18:57

GFX47 wrote:Does anyone really use them since the update?


If, if, I find the time to play again (and edit the wiki, and the tournaments, and write some info in the forum), one thing that is great with tagging until the range is better is to tell the bot "ok you advanced enough". Without tags I could do one step "more", now with tags I can do maybe 2 or 3 steps. This may be lethal with the sniper.
http://www.reddit.com/r/Gladiabots/wiki/players/pier4r_nvidia_shield_k1 -> Gladiabots CHAT, stats, insights and more ;

mcompany
Autonomous Entity
Autonomous Entity
Posts: 865

Re: I don't know how tagging works anymore.

Post#8 » 19 Feb 2018, 19:14

sollniss wrote:Tags were close to completely useless before they were instant. Now you can do some really nice magic with them.

Exactly this. There basically was no point in using tags for anything unless it was 100% impossible to do something on a guess without tags the way they were previously
GFX47 wrote:Does anyone really use them since the update?

Well, I converted my moving system to use tags to decide who to move to before checking any logic in order for the bot to not have any conflicts of guessing my next target, and I was going to do the same for all of my attacking nodes before I stopped playing and switched games (to polytopia)... so I'd say, I'm abusing/going to abuse tags A LOT

Jeffrey Harpen
Algorithm
Algorithm
Posts: 99

Re: I don't know how tagging works anymore.

Post#9 » 20 Feb 2018, 00:02

sollniss wrote:Tags were close to completely useless before they were instant.

I disagree, they were quite useful for me.
On the other hand I haven't used them much, because "thinking" was taking too much time, so it seems they became even more useful in instant version. But that's what I have to find out yet, because actually I haven't tried them since the change. ;)

User avatar
drartimus
Algorithm
Algorithm
Posts: 84

Re: I don't know how tagging works anymore.

Post#10 » 20 Feb 2018, 06:00

I used them to coordinate attacks, and collect resources at the end of the game faster (divide and conquer). They were also useful for marking enemies that focused on carrying (and dropping) resources, as well as marking flee happy bots that like to stay out of range.

I feel like tags added a nice dynamic to a leader bot, but instant tags totally erases that.
"If it acts like it's not running your code, it's probably not running your code." -- me, I say this all the GD time!

WASP103
Script
Script
Posts: 36

Re: I don't know how tagging works anymore.

Post#11 » 20 Feb 2018, 09:52

Instant tags add so much more, potentially. Once you get the hang of it.

Instant tagging made the order of execution for tags a bit different, IMHO. For example the command that puts a tag last, wins.
It took me 4 days to understand and learn to appreciate the way tags work with instant tagging. and I've even sent a bug report with the exact same findings you have now. But believe me, once you understand the basics, you'll love the system.

Things to keep in mind: There's not really a "priority" in tags anymore. All possible tags get executed. Still in left to right order, but it feels like now the last gets precedence over the first. So if you tag a resource with Team A and later use Team A Marker to tag a Foe, only the foe gets tagged.

That leads me to my next tip. Don't waste time on doing "Team Tag" actions. Always use "Add Team Tag" instead. Saves you a lot of hassle from later rewriting. And this way you can add tags to enemies, allies, resources, bases, and each one of them can have a set of Team tags without interfering :)

GL&HF everyone <3


Edit:
On a side note, even though it was a challenge and a lot of fun for me, I still consider it a bad UX for new players to be threwn into undocumented behaviour like that. Maybe a new Tutorial mission or two about tags could totally make things clear. <3

mcompany
Autonomous Entity
Autonomous Entity
Posts: 865

Re: I don't know how tagging works anymore. (Part 1)

Post#12 » 23 Feb 2018, 11:47

drartimus wrote:
mcompany wrote:I'm going to ignore this for now, because I already have a massive rant on how your wrong about tags that I need to type up. But quite simply, I will say that your issue with tags is less to do with things being removed,and is more of a problem of "the rules changed, and now we're adjusting"...

This is an example of what I'm unimpressed with. I'm fine if you disagree, but don't say you're going to ignore it, tell me I'm wrong with no counter response, deflect to a larger issue, then promise to give me a spray about the item you're ignoring, in a time that's more convenient to you. Just stick with your original statement, put a pin in it and talk about it in a separate thread. If it's a good discussion, I'll be there. I'm ready to respond about how changes to the game that break stable AIs is not a good thing.
mcompany wrote:Once again, I think you are severely missing the problem of why the old tagging system was bad and how impossible it was to use, but that's a topic for a different thread.

Ok, mcompany, tell me WHY you think I'm wrong, don't just hit me in the face and then say you'll explain to me later why I deserved it. Or just don't bash someone in the first place if you're not serious about explaining yourself.

Ok, yeah, I'm somewhat am just trying to "spray about the item [I'm] ignoring, in a time that's more convenient to [me]". To be honest, I simply get bored of typing out large responses (or writing them), and was just going to lazily wait until something more was stated on tags before I wrote something. I also considered that I initially might've misread whether or not you changed your mind about thinking that tags needed to go back to how they used to be and decided to not write up a post like this after rereading your messages with such a post pretty much reacting to a message that no one sent. But I guess my initial thoughts was right and I'm being asked to explain why the old system was bad. So first and foremost:
drartimus wrote:They were ordered, for like a year, some mob got the dev to change how the execution flow works. :lol:

I'm glad you say that. As this is actually true, so I guess I will give history on tags as they were not very popular since they was initially put in the game (6.1.x). Also note that I won't go into any depth into the history right now (though most of it can be seen from the links)
1.
Before tags were put into the game, there was a node that was basically a mix between "isAttacking", "isMovingTo", and "isFleeingFrom" called currently targeted. This was taken out for 6.1 because they were considered an old hack that made the game more confusing. This lead to some considerations on formerly requesting that currently targeted be brought back in the game (even before version 6.1 went public), such as this thread. The first note of instant tags was also around this pretty much the post after revealing that currently targeteed would be gone (in order to make an accurate replacement so that it wasn't nearly impossible to do anything with tags.

Even with my own sort of secret tests I did through 6.1.1 and 6.1.2, I noticed more and more that the leader system I used was occasionally better running the exact same AI, only without code to make the tags that had my leader system work in the first place. Even by the end of the release candidate versions, most of my leader system stopped tagging itself at the beginning of a match on most maps because I needed the extra time to attack first. Due note that some of my thoughts on the matter started to get shared here or here

2.
6.1.3 is released publicly tagging is used by many players anyways, despite many attempts to request that currently target be put back in the game. some players gets used to the system (like me who starts to say my strategies here or here. However, during this time, I became more and more wary that the tags was holding my AIs back andI became annoyed at trying to solve issues with optimizing tags. So, I a last ditch effort, I quit tags and switched to making subtrees up to 192 nodes large to partially simulate "health+shield" (with a few adjustments for ranges) in order to have an instant system that was reliable enough to avoid many target switching problems. Dur note that this AI started off well, however it became increasingly impossible to keep up with this AI as doing any minor edits or remakes to add in additional situations would have taken a ton of extra work. And so I pretty much quit, not wanting to go back to the tagging system which I was already convinced was even harder to make into a usable system, and not wanting to edit 192 nodes (something I summarize here)

3.
Version 7 starts being made as a release candidate. Currently targeted finally got a good replacement in the form of "isAttacking". Like 6.1, this gets massive reactions almost immediately with it pretty much being a massive praise on being able to use a system that was nearly impossible to optimize well. (Just check all of the release candidate 7-7.8 threads. If it isn't about fixing a bug, it's saying "yay, we can do currently targeted now"). Also note that for version 7.x, Unlocking stuff was based on your xp level (lvl 2 got shotgun, 3 got action filters, 4 got machine gun, 5 got bot tags, 6 got sniper, 7 got team tags). I start mentioning that I stopped using tags during 6.1.3 because of the issues I faced and how they aren't a sizable advantage. It also becomes more and more noticeable in the old problems that lvl 1-5 players had has primarily due to not having a sniper (not so much about tags; just search "sniper"). More and more tasks divert away from using tags, and it becomes more and more normalized to say that tags aren't a real loss compared to lvl 6's snipers. And eventually, it became advice to tell people to not care about tagging compared to snipers, and eventually, to ignore tags altogether until you're AI was fully built up

4.
Which leads us to your accusation. Since 7.x,, there has been very rare talk of instant tags until [urlhttps://forum.gladiabots.com/viewtopic.php?f=2&t=806]this[/url]. There was talk of making counting nodes (because counting with tags was so hard and unbearable that it was rarely worth it, and even then you have to find a million and one ways to do it without putting yourself at risk to being massively under attack). And even then, very few cared about tags besides decorators to the point where the talk on the chat pretty much became "either tags should be instant, or remove, because the current state just makes it impossible for the lower leagues to use, and a higher barrier to facing the higher league players".

Now, bare in mind, that I'm not arguing anything in this post (yet). It is currently 2:44 am here and I need some sleep. But here is some context for when I actually explain just how useless tags became in the old system and why instant tagging has been better

User avatar
drartimus
Algorithm
Algorithm
Posts: 84

Re: I don't know how tagging works anymore.

Post#13 » 23 Feb 2018, 16:04

Fantastic! What a great read of Gladiabot history. Thanks for the recap, I didn't know.

I am interested in how it was decided that in instant tagging, execution flow continues after the tag action, and not just start over from the beginning, like the rest of the actions? I'm thinking that was a more logical step, but I might be missing something.

Alpha 12 has not been kind to my AIs, the first problem I encountered was my nodes were subtlely repositioned, and the differing heights between connectors and conditions impacted my logic flow, thus altering my AI. I've made a feature request about making them the same height, but it took me two days just to space out my nodes to prevent it from happening again. Still don't know if I broke anything.

I saw exploding walls was taken back, so I had to remove some pusher logic. Wasn't too bad, but now I wonder if wall range conditions are useful for anything now.

Then all the campaigns changed and my spreadsheet of timings and results went out the window. I had tracked the progress of my logic changes and was bummed to start over. I'm barely into chapter 3 again, then I notice my tags going haywire.

I had built several key behaviors around tags, tracking opportune targets, ignoring escapees dancing in and out of range, marking resource carriers (and droppers), and optimizing resource harvesting. It really sucked that my implementation became unreliable in ways that I could observe and not knowing all the other ways I didn't see yet.

I have split leader logic, if the primary is busy, he doesn't stop to tag, someone less busy takes over. With instant tagging, that too will probably go out the window. I might have to do a line of succession to designate a single, but rotatable leader.

Thanks for the read. It's 8a for me, and I need to go to work!
"If it acts like it's not running your code, it's probably not running your code." -- me, I say this all the GD time!

pier4r
Skynet
Skynet
Posts: 3190

Re: I don't know how tagging works anymore.

Post#14 » 23 Feb 2018, 17:42

Nice post mcompany.

I have to say, my AI is still far away to be cleaned up up and ready to be upgraded to alpha 12.1 logic (tags, filters, etc..) but so far - likely because no one else is using the new features much - I do not feel a big disadvantages using tags.

Anyway I see that instant tags (not yet used) may bring a ton of new strategies, as more dynamic identification of enemy groups or part of the map that is more or less danger free.
http://www.reddit.com/r/Gladiabots/wiki/players/pier4r_nvidia_shield_k1 -> Gladiabots CHAT, stats, insights and more ;

mcompany
Autonomous Entity
Autonomous Entity
Posts: 865

Re: I don't know how tagging works anymore. (Part 2)

Post#15 » 25 Feb 2018, 10:49

So, now after a whole day gap, and after we've got out of the way the history of how tags came to be and the context of how the came to be considered useless, I'm back for part 2. Here is where I'm here to actually argue some points of why the old tagging system was bad, and why the current way of doing tags is better. Now If I'm correct, there are 2 main parts to the argument for tags wasting a whole tick
1.
drartimus wrote:Too bad, I liked the challenge and balance that the overthinking bots should have to worry about the more reactivate bots

odomobo wrote:The fact that tagging currently takes a tick seems fine to me, because it's something under direct control of the player. "I will spend 5 ticks at start setting these tags, and a max of 4 more ticks throughout the course of the game."

Theoretically, The old system had a challenge of allowing yourself access to a better thought process while risking having your bots be forced to idle while dealing out those tags. However, most of the uses of tags were better off tagless, and as sollniss stated earlier, tags were nearly useless at a high level before the update to be instant. So let's go over some of the old uses of tags to consider how useful they actually were

Leader system: Well, before we even argue it's uses in the old system, we must first understand that even tagless, leader systems have to deal with more problems than it can handle. The main one being a problem I've known about since 6.1.x: bots can't easily share data. No matter how good your leader picks it's target, it still could never have any reassurance that it's pick was even slightly useful. This is some that needs to be done by a group of bots, not just one. To add the old tagging system on top of that, there is still the already mentioned problem that on many of the maps, you woul dnot have the option of starting with the leader system active. More specifically, on Mind Game, CoD, or Barred, the old tagging system would have meant that you couldn't designate your leaders until late into the battle because you need to be attacking immediately, you couldn't set up tags at all on SYP because you need to be on guard at all times for a resource rush (which is made easier on that map than on any other non random map), you couldn't tag your leaders until late into Lake Rushtown (unless you are actively giving your opponent the middle resource) because you need to race to the center of the map to either get the middle resource or hopefully kill the enemy shotgun, you couldn't immediately tag yourself on The Seven Wonders without forcing yourself to lose ground because you will need to deal with attacking second on a map where your close to being in the middle of long range, and pretty much all of the other maps don't matter on the delay of setting up because you start too far away. On top of that, if you need to replace a leader mid battle, you would have needed to find time to interrupt your actions mid battle just so that you can update your positions, which means you are losing even more ground against a tagless bot. Not worth it in most cases.

Focus fire: One idea you might have is to use tags to target a specific bot so, that you maximize the damage on who you attack. However, I was already finding somewhat solutions to that during 5.2 and 5.3. All you need to do to more likely have focus fire and pick vulnerable bots is attack the lowest shield enemy. Don't like that solution? Not specific enough for you? Just use the action filter "isAllyAttacking". Combine that with lowest shield or lowest health+shield or closest (or now closest to allies) and you have a good enough "close enough" that is 100% tagless, which also means that you freed up a lot of time that you could spend get closer to your opponent or just plain and simply attacking. If anything, you might want to just use tags to designate what to not attack.
However, even then, focus fire is not always a good thing unless you are about to kill. Spreading your damage could potentially lead to a lot of suppressant fire that can stop your opponent's attempts at focus firing at you. So even if you did design a good system with tags to get a good enemy (which might leave too much time for your opponents to capitalize and try to get a better position or more resources), you still need to worry about when to focus fire.

Speed up resource collection: You really aren't speeding it up by much, not to mention that this isn't that much of a big deal simply because this isn't something you do mid battle, but instead after a battle is already basically won

State machines/tracking bots: This is where you get to some of the only uses of tags that actually lasted to version 11. However, I will say, state machines for "self" has some of the same problems, if not more, than the leader system. Not only do some state machines might need to set mulitple tags, but it may need to untag several things. And untagging is much harder than tagging simply because you need to avoid many possibilities of loops that leave you idle for full seconds, which means any systems that untag either almost never tag in the first place, untags so little that you forget that you have a way to get rid of the tag, or is pretty much is guaranteed to not win you games. This is also why older systems of counting the enemy bots counted everything very early and then used giant crazy web structures that took ages to create in order just to know how many of them was doing very simple actions. Quite simply, if you managed to get a system like this going, you have either been in the top ten for a long time, or you pretty much haven't really fought grand master league players that much. There's no real in between.

Decorators: The only widespread use of tags. Here is the only moment where one can argue that there's a level of strategy for tags (that isn't top player exclusive) with said strategy being deciding when to go back to your (likely tagless) generic AI. If anything, besides decorators, I wouldn't be surprised if only close 5 players throughout the history of 7.x to 11.x were notable in grand master, master, or platinum leagues and had any real notable uses of tags in their AIs. During the history of of 7.x to 11.x, the top players have always been half and half on even being map specific, with many of the top ten not having any sort of decorators at all. And now that it's random maps only, any argument about decorators is irrelevant

So an extra strategy to the game with tags being the way they used to be? Yeah, right. Completely ignoring their usage was definitively some noteworthy strategy addition worth keeping, right? Now, this can definitely go up up for debate, but there pretty much was no valid usage of tags that wasn't 100% top player exclusive, and tags somewhat started becoming a red herring for new players to the point where most on the chat (especially from players like Revenge) could agree that nothing important would be loss if tags would have been completely removed. So no, with a vastly greater number of strategies and ideas that has been opened with tags being instant, there is no way that the old system was better

2.
drartimus wrote:When I discovered my pre Alpha12 AIs were misbehaving, there was no way I was going into multiplayer until I fixed it. This is a prime example of what will hurt online play. How many times will people come back if their AIs can't survive a new release? Sure it's an alpha, sure it doesn't happen often, but when I pay to play a game, it better not arbitrarily invalidate my work (that I've invested months into).

Yes, you've invested months into this game. Yes, you paid to start playing. That doesn't mean that any massive change is a bad thing simply because it messed with your work .I'm sure there are plenty of fighting games where a player might spend hours a day for months practicing a combo, only for a new update, or worse a brand new version of the game that changes their character enough that most of their work is invalidated. Hell, with real programming languages, this is very much likely to happen unless you restrict yourself to an older version of the language (which might then mean possibilities for some things not being as polished as the latest version and others not being as fast). I'm sorry, but at the end of the day, the real question isn't whether or not you are forced to redo your AIs, but whether or not what you change your AIs to is more usable than what they started off as. There's why many of the major changes since the very first version has happened, and that's why the now small player base is even still here. Otherwise, there's no point in continuing to play if the game isn't fun. Now yes, there was a sizable downswing. But let's be honest: even despite the fact that players like me, who has been against tags since the very beginning, has basically stopped playing because of the work necessary to combine my AIs into massive tag based machines, we still have been having a minor up cycle in players and some of the players that flat out stopped playing around the time of the bot stats changing are starting to become more active in the game. So really doubt this is as much of a problem for the game as it is just a personal problem for you.

Btw: other massive or minor noteworthy changes in the past
5.2 -> 5.3: bot class limitations, which pretty much started the era of generic AIs as generic AIs stood no chance with the lack of filters and the strength of the bot classes
6.0 -> 6.1.3: currently targeted removed, destroying most AIs as everyone struggles to catch up. At most, people only complained about currently targeted, and eventually accepted tags despite being worse than currently targeted
6.1.3 -> 7.x: currently targeted added back in which even more action filters. Everyone converts massively tag ingrained AIs to tagless.
7.x -> 8.x: machine gun got a minor change, meaning everyone had to adjust to the machine gun that now had more of it's own personality that was different from assault
8.x -> 9.x: moving to "all", which lead to many different adjustments to AIs (particularly retreats)
9.x -> 10.x: the AI checks based on angle instead of left to right, breaking many, many different AIs while everyone learns to adjust
10.2: counting nodes, meaning massive improvements for tagless AIs and tag based AIs having to do a massive makeover to upgrade
10.x -> 11.x: massive changes to bot class stats. Nearly everyone had to redo parts of their AIs to make up for it.

pier4r
Skynet
Skynet
Posts: 3190

Re: I don't know how tagging works anymore. (Part 2)

Post#16 » 25 Feb 2018, 12:26

mcompany wrote:6.1.3 -> 7.x: currently targeted added back in which even more action filters. Everyone converts massively tag ingrained AIs to tagless.
7.x -> 8.x: machine gun got a minor change, meaning everyone had to adjust to the machine gun that now had more of it's own personality that was different from assault
8.x -> 9.x: moving to "all", which lead to many different adjustments to AIs (particularly retreats)
9.x -> 10.x: the AI checks based on angle instead of left to right, breaking many, many different AIs while everyone learns to adjust
10.2: counting nodes, meaning massive improvements for tagless AIs and tag based AIs having to do a massive makeover to upgrade
10.x -> 11.x: massive changes to bot class stats. Nearly everyone had to redo parts of their AIs to make up for it.


Nice. History ftw. And thanks to this I remember that I played seldomly through alpha 9 and alpha 10 with counting.

Also let's add the new iteration.
4.x : first version with multiplayer (IIRC). Games were deployed and picked at will, no leagues
5.x-5.2 : multiplayer with random maps selected by the server. Leagues were developed server side. First done manually by GFX, then automated. No special bots limits. A lot of map specific AIs developed (see nullpointer topic in strategies). Assault completely useless.
5.2-5.3.1: added limit on special classes to avoid assault being useless. Added some filters.
5.3.1 - 6.x: added subroutines and tags, removed currently targeted.
6.x - 7.x: aside from what stated above, massive changes in leagues.
11.x ->12.x : instant tags, random maps based on same starting location but resource locations randomized and always odd (it is a massive development change for AIs), ghosts of players and new matchmaking (helps development), more info of the enemy AI in the debug window (helps development), massive improvements of the AI editor (helps development), anything else I am missing?

Note: I still have buggy nodes considering tags left from 6.1.3 . I remember I reworked a lot to fit the missing currently targeted, then I used tags in 7.x but without real good results. Around Feb/March 2017 started to remove them (and the work is still not finished) after mcompany had good results being tagless. Keeping tags is pretty hard on maintenance.

So currently, with very little time, I have an AI that is mostly done for alpha 7 and 8 that I want to clean up and upgrade to bot stats of alpha 12. Then I want to use the new filters and counting. Then, only then, I may consider using tags again. But the clean up process may need around 5000 games. After that, 5000 games more and I'll dominate.

This, assuming that the game won't massively change again ( only alpha 8 was not a massive game changer)
http://www.reddit.com/r/Gladiabots/wiki/players/pier4r_nvidia_shield_k1 -> Gladiabots CHAT, stats, insights and more ;

User avatar
drartimus
Algorithm
Algorithm
Posts: 84

Re: I don't know how tagging works anymore. (Part 2)

Post#17 » 26 Feb 2018, 09:07

Very nice post, it was well worth being a two parter.

mcompany wrote:...No matter how good your leader picks it's target, it still could never have any reassurance that it's pick was even slightly useful...

I ran into this too. At best my leader(s) were influencers. My best luck was each bot had its own targetting and attack, but let itself be influenced into following the leader in hopes that other bots also were influenced, so as to better improve killing a single enemy. I was developing a tagless system to do the same (a lot like you suggest), but had a perfectly working tag system that was getting the job done. ;) Luckily I had well organized subtrees that I could just disable. This Alpha12 is making me reflect on which modular designs have survived and which didn't. (I'm trying to come around.)

mcompany wrote:...there is still the already mentioned problem that on many of the maps, you woul dnot have the option of starting with the leader system active. More specifically, on Mind Game, CoD, or Barred, the old tagging system would have meant that you couldn't designate your leaders until late into the battle because you need to be attacking immediately...

This I liked about tags. Old tags were a double edge sword. That's pretty rare in a game to have a feature that's a simple concept, yet hard to wield for a novice and effective to use for the well practiced, without adding a bunch of BS limitations to it. The only limitations were a max of 5 tags (unless you combo them to make a bitfield, A=1 B=2, AB=3, C=4, AC=5...), and that it took a tick to process, but that limitation was the same for all actions. It was a simple rule to grasp about how the game works. Now it's all actions work "this way," but tag actions don't take a tick, and processing resumes right after, not reset. Not a fan of sideways, one-off exceptions. It's a code smell, usually indicating an inflexible design.

As for initial reactivity in a match, this was also a great balance of thinking too much and getting shot to pieces vs not synergizing an efficient attack to save bots now and not have everyone weak later. It was fantastic that tags aren't always better. This made the game dynamic. Instant tags guts that out.

One solution to the close quarter starting maps like Barred was to make tag participation optional, based on how many enemies were either in immediate range, or acting on the bot. Bots would resume when they were healthy and not swarmed. This game is very flexible, bots don't have to go all in on one strategy, even during a match.

mcompany wrote:...you couldn't tag your leaders until late into Lake Rushtown...

No disagreement. Tagging leaders was expense (and should be), and optional. However, leaders can be based on explicit things like class, or by who's not busy attacking, taking fire, or scoring (that leaves idle, moving, or what most bots do, deciding what to do), or in my case both. One leader means you have to build a succession, which can also be expensive. Again, features like tags with natural strengths and weakness should be celebrated in a game like this, not held in disdain. If your AI is complex, it should cost you at least a little. And I'm talking more than maintainability. In any fighting game, hesitation should be expensive.

mcompany wrote:...Focus fire: One idea you might have is to use tags to target a specific bot so, that you maximize the damage on who you attack. However, I was already finding somewhat solutions to that during 5.2 and 5.3. All you need to do to more likely have focus fire and pick vulnerable bots is attack the lowest shield ...

I like that you can implement coordinated attacks with or without tags. That's one of the most fascinating things about programming is that so often there are multiple ways to skin the same cat. Picking the best one boils down to requirements (speed to market, hardware constraints, response time, scalability, etc). I suppose instant tags don't necessarily impede this, but I like that if it's hard to do one way, try another. That's what programming is like every day. Taking away the processing delay just for tags and no other actions to make tagging more advantageous is just lazy, in my opinion. I consider it bending the physics of the game for an unworthy special case, and I don't like it a lot for that reason. I agree, instant tags are more powerful than pre-Alpha12 tags, but at the cost of the game's consistency. It's like a cheat code. I think it degrades the game's quality.

mcompany wrote:...Speed up resource collection: You really aren't speeding it up by much, not to mention that this isn't that much of a big deal simply because this isn't something you do mid battle, but instead after a battle is already basically won...

Not true in all cases. If I have a bot or two, or more who are opportunistic scorers (meaning they can switch between attacking and scoring) I don't want both of them going for the same resource. You think that's only for the end of the game? My AIs can win a game without killing all of the enemy. This gives me a greater chance at victory if I face an equal or maybe stronger opponent, where it should go down as a draw because time runs out, but I "stole" resources earlier when enough enemy bots were retreating or out of range from my scorers.

mcompany wrote:...State machines...

I found state based AIs to be a steep slippery slope. I suppose with instant tags, not so much. I still say thinking too long in battle should get you shot. Bots can be reactive and think, you just have to build the AI to be flexible.

mcompany wrote:And untagging is much harder than tagging simply because you need to avoid many possibilities of loops that leave you idle for full seconds, which means any systems that untag either almost never tag in the first place, untags so little that you forget that you have a way to get rid of the tag, or is pretty much is guaranteed to not win you games.

I agree about the difficultly and debugging it takes for untagging to be accurate (I find to be a hook for the feature, not a turn off), but I disagree about the guaranteed no win part. If you're losing, it means you have an AI to fix. If you have bots that have contradictory rules about tagging and untagging, it's not the tag's fault, it's the implementer. If you leave a bot tagged that confuses or makes another bot inefficient for some reason, that's an AI design problem, not tag one. If you waste too much time tagging/untagging and get shot up, that's a flaw with priorities, not tags. In all cases, they aren't problems with the tag feature that make you lose all the time, they're opportunities to improve your AI. (I know I used it, I don't like the "problems are opportunities phrase," like I don't have an eating problem, I have an eating opportunity. 8-) But it fits here.)

mcompany wrote:Decorators...

Honestly, I didn't follow your points very well. That might just be me.

mcompany wrote:...And now that it's random maps only, any argument about decorators is irrelevant

Are you saying that random maps make decorators irrelevant? I would disagree with that, based on how I've use tags to mark enemies based on their observed behavior (scorer, retreater, etc). Maybe "decorators" means something else to me.

mcompany wrote:Yes, you've invested months into this game. Yes, you paid to start playing. That doesn't mean that any massive change is a bad thing simply because it messed with your work ...

If the change was for the better (benefiting everyone), I don't disagree. Random maps for example, that affected everyone the same, no advantage. If you built AIs specifically for maps, you gambled on maps staying stable, which if you played the game enough, you knew maps could change. Who gambled on tags being overhauled? That was an integral part of several of my AIs. It was like if counting was changed (granted that's a later feature, but it would still hurt).

mcompany wrote:Hell, with real programming languages, this is very much likely to happen unless you restrict yourself to an older version of the language (which might then mean possibilities for some things not being as polished as the latest version and others not being as fast).

Important difference that invalidates your point, languages do version breaking changes (Python, PHP, Golang) and upgrading is not imposed. If a vendor's update breaks you code, you wouldn't want to go to production with it, would you? If it's a patch that fixes a vulnerability, but breaks something else (*cough* Apple, *cough* root access, https://www.wired.com/story/macos-update-undoes-apple-root-bug-patch/) then it was a shit release. Stability for languages and OS architectures is based on pinning to versions and upgrading (or not) is your choice. This is not an option in Gladiabots, or most online games for that matter. Some games deal with restricting users to playing other users who match expansion packs and so forth, but this game ain't one of them.

mcompany wrote:So really doubt this is as much of a problem for the game as it is just a personal problem for you.

I've seen fledgling games on steam go belly up for making breaking changes to their game play (I was a huge early adopter of RoboCraft, and it went to shit when they lost sight of their original vision). I doubt Gladiabots is impervious to the same thing. If mainstream players have to deal with their AIs becoming invalid one too many times, they'll lose interest. I'm not the only one to experience it. Knowing this is "Alpha" is what gives it a free pass for me, but how many strikes are others willing to give?

You are very much welcome to your opinions. I like hearing them. It opens a good discussion that I hope is informative to GFX47. If the new tagging works for you and many others, then I'm probably an annoying minority.

Thanks for the change log notes, you too peir4r. Is there a thread where those are captured? It'd probably be best as a readonly thread (for those with rights) without too much commentary in it. I suppose climbing through the releases in trello works too.
"If it acts like it's not running your code, it's probably not running your code." -- me, I say this all the GD time!

pier4r
Skynet
Skynet
Posts: 3190

Re: I don't know how tagging works anymore. (Part 2)

Post#18 » 26 Feb 2018, 14:49

I am going to comment on some passages that I find really unpleasant. The rest more or less is ok.

drartimus wrote:The only limitations were a max of 5 tags (unless you combo them to make a bitfield, A=1 B=2, AB=3, C=4, AC=5...), and that it took a tick to process, but that limitation was the same for all actions. It was a simple rule to grasp about how the game works. Now it's all actions work "this way," but tag actions don't take a tick, and processing resumes right after, not reset. Not a fan of sideways, one-off exceptions. It's a code smell, usually indicating an inflexible design.

I find your approach not that flexible. For my perspective it is like your are saying "either it is so, as I know it is right, or it is wrong".
Why should tags take necessarily time like the other actions? Who decides this? We can use many models of decisions. I always consider that GFX can decide and that's it, it is his game. Also I know from previous discussions in the request subsection that instant tags were asked by many.
I understand that you may find then inconsistent, but it is not that you view is THE view. Your view is a view on the topic.
In terms of "realism" (although trying to fit the concept of realism in gladiabots is absurd) one can say that physical actions takes time to be applied and measured. While computations (tags) go way faster and they are "instant" by comparison.

If the change was for the better (benefiting everyone), I don't disagree.

And who says that instant tags are not benefitting everyone? They are there for everyone. Even if you don't like them, it doesn't mean that everyone dislikes them. Again the same monoview approach. It doesn't work in this way.
Otherwise I can say "no, you are wrong", to which you reply "well, I don't find it nice, could you at least elaborate?" and I reply "Nah, you are wrong, I say so, that's enough". It is not really open to discussion when you disguise "I say so, therefore it is so" in your messages.
Also as you request sources when someone states something, you should care to follow your preachment as well. When you say something like "if the change brings benefits to many", impling that the change is not bringing benefit at all, your should source that many have complained about it, but as you know well , you can't because here people are eager to use tags. So there is mostly no complain.

If a vendor's update breaks you code, you wouldn't want to go to production with it, would you?

Easy to answer as you do.
Important difference that invalidates your point: you don't use alpha products in production.
Also I find the comparison with writing software a red herring.
First and foremost, whatever the language used, there are shittons of bad software products that are sold and productive (Oracle says hi, the video game crash of the 1983 says also hi). So it does not matter that "at work we do so", because work environments may produce bad results due to the common practice of cutting corners to save time and money.
Second Gladiabots is not a language to develop "real" software. At most one produces decision trees. So I find the comparison quite misleading. Please avoid it, use a better one.


If the new tagging works for you and many others, then I'm probably an annoying minority.

According to what I read on telegram and here on the forum (no, I am not going to source it. I know I should to make my argument more solid, but no time), I can say that people are complaining that there are not enough tags, not that they are instant. So I guess you are a vocal minority. And vocal minorities appears bigger than they are. (Nonetheless, everyone should have the right to express their view)

Thanks for the change log notes, you too peir4r. Is there a thread where those are captured?

Good question. Actually I think it is missing and wouldn't be bad to open a wiki page on it.
http://www.reddit.com/r/Gladiabots/wiki/players/pier4r_nvidia_shield_k1 -> Gladiabots CHAT, stats, insights and more ;

mcompany
Autonomous Entity
Autonomous Entity
Posts: 865

Re: I don't know how tagging works anymore. (Part 2)

Post#19 » 27 Feb 2018, 05:32

drartimus wrote:This I liked about tags. Old tags were a double edge sword. That's pretty rare in a game to have a feature that's a simple concept, yet hard to wield for a novice and effective to use for the well practiced, without adding a bunch of BS limitations to it. The only limitations were a max of 5 tags (unless you combo them to make a bitfield, A=1 B=2, AB=3, C=4, AC=5...), and that it took a tick to process, but that limitation was the same for all actions. It was a simple rule to grasp about how the game works. Now it's all actions work "this way," but tag actions don't take a tick, and processing resumes right after, not reset. Not a fan of sideways, one-off exceptions. It's a code smell, usually indicating an inflexible design.

First, let's address the elephant in the room that I keep making the mistake of ignoring: why would resetting back to the beginning be better than continuing where you left off? Because that sounds like it would lead to even more problems, and all around lead to everyone being forced to use spaghetti code. How would you debug such repeating code? How would you stop infinite loops? How would you avoid the problem of checking nodes that would be guaranteed to be useless? In the new layout I will be using for my AIs, every single tick my would AI will reset on at least 3 different occasions. The first is to choose what I'm moving to next, the second, for what I'm attacking next, and the third for deciding whether or not I'm even attacking in the first place. And that doesn't include all of the times where I need to clear all of the tags so that I can even do any of that. Why the hell would it be better to go through my useless subtrees for "if enemy doesn't exist" or "check an order I don't need to check" over 5 times just to protect your AIs when simply left to right would be easier to design around, easier to debug, and would still be instant in order to actually make tags useful?

Secondly, it is somewhat rarely that such a double edge sword at the extreme that tags have in gladiabots has been good in any game, as most players was told to stay away from tags entirely and that even the top players didn't see much use for tags besides very specific situations that had to be optimized like crazy to even compete. So, no, I can't say that a double edge sword is good just for the sake of being a double edge sword unless there is actual utility for such a sword. That usually smells of less options, which usually leads to inflexible design (similar to 6.1.3)

drartimus wrote:
mcompany wrote:...there is still the already mentioned problem that on many of the maps, you would not have the option of starting with the leader system active. More specifically, on Mind Game, CoD, or Barred, the old tagging system would have meant that you couldn't designate your leaders until late into the battle because you need to be attacking immediately...

As for initial reactivity in a match, this was also a great balance of thinking too much and getting shot to pieces vs not synergizing an efficient attack to save bots now and not have everyone weak later. It was fantastic that tags aren't always better. This made the game dynamic. Instant tags guts that out.

One solution to the close quarter starting maps like Barred was to make tag participation optional, based on how many enemies were either in immediate range, or acting on the bot. Bots would resume when they were healthy and not swarmed. This game is very flexible, bots don't have to go all in on one strategy, even during a match.

First of all, I'm talking mostly with a generic AI, if you want to use decorators or completely separate AIs then we start to get into a very different territory. Secondly, especially towards the top, tags are never useful in Mind Game because there is no room for resetting to a neutral state due to being a 2v2, and on CoD, most of the time, the opening was the only meaningful part of this battle, meaning that generically, if you somehow managed to find a way to know "when they are healthy and not swarmed" (which already sounds like a very grueling task), you would still not have any proper logic to fight the opening and would basically have to be lucky to not end the opening with a 7 vs 6 or 7 vs 5 battle. so it's still 2 different maps that tagging would do anything for at all, and that focusing so much time on tags would hurt the time spent making sure other portions of the AI worked in more time crucial situations.

drartimus wrote:
mcompany wrote:...you couldn't tag your leaders until late into Lake Rushtown...

No disagreement. Tagging leaders was expense (and should be), and optional. However, leaders can be based on explicit things like class, or by who's not busy attacking, taking fire, or scoring (that leaves idle, moving, or what most bots do, deciding what to do), or in my case both. One leader means you have to build a succession, which can also be expensive. Again, features like tags with natural strengths and weakness should be celebrated in a game like this, not held in disdain. If your AI is complex, it should cost you at least a little. And I'm talking more than maintainability. In any fighting game, hesitation should be expensive.

Except that once again, I can once again understand most of that stuff tagless using action filters, and there's no incentive to use tags at all. Why use a leader system that's already bound to many of the problems I've already detailed if it is both incredibly slow and can be covered tagless? What natural strength does tags have if they are covered with a close enough degree of accuracy without any of the drawbacks? If we are to keep randomly throwing out fighting game analogies, it would seem to me that you are arguing that it's perfectly fine to expect a low tier that's completely overshadowed by a different character to not get patched in any way where there's almost no incentive to use said low tier

drartimus wrote:
mcompany wrote:...Focus fire: One idea you might have is to use tags to target a specific bot so, that you maximize the damage on who you attack. However, I was already finding somewhat solutions to that during 5.2 and 5.3. All you need to do to more likely have focus fire and pick vulnerable bots is attack the lowest shield ...

I like that you can implement coordinated attacks with or without tags. That's one of the most fascinating things about programming is that so often there are multiple ways to skin the same cat. Picking the best one boils down to requirements (speed to market, hardware constraints, response time, scalability, etc). I suppose instant tags don't necessarily impede this, but I like that if it's hard to do one way, try another. That's what programming is like every day. Taking away the processing delay just for tags and no other actions to make tagging more advantageous is just lazy, in my opinion. I consider it bending the physics of the game for an unworthy special case, and I don't like it a lot for that reason. I agree, instant tags are more powerful than pre-Alpha12 tags, but at the cost of the game's consistency. It's like a cheat code. I think it degrades the game's quality.

I would say that the full paragraph here is just the main idea the whole debate. However, right now, we are arguing the supporting clauses, not the main idea. Arguments that you think such a change is lazy has no relevance to the point at hand that you are responding to, and in general, is unnecessary as we already current know with both your argument and my argument is.
Anyways, this still doesn't address my point. I can still have a really good focus fire without tags, so why should I use tags for this? It is guaranteed to slow me down, it has a high likelihood to interrupt my attacking process, and it has a high likelihood to not even stay consistent across multiple ticks. Why would tags even be an option here?

drartimus wrote:
mcompany wrote:...Speed up resource collection: You really aren't speeding it up by much, not to mention that this isn't that much of a big deal simply because this isn't something you do mid battle, but instead after a battle is already basically won...

Not true in all cases. If I have a bot or two, or more who are opportunistic scorers (meaning they can switch between attacking and scoring) I don't want both of them going for the same resource. You think that's only for the end of the game? My AIs can win a game without killing all of the enemy. This gives me a greater chance at victory if I face an equal or maybe stronger opponent, where it should go down as a draw because time runs out, but I "stole" resources earlier when enough enemy bots were retreating or out of range from my scorers.

You're assuming that your opponent wouldn't be able to kill you before time ran out. Besides SYP, that's not a safe assumption to make, especially against more aggressive players. You are also assuming that such moments that need tags to speed it up would be often enough to care about optimizing, which is definitely not the case (and remember, premature optimization is the root of all evil).

drartimus wrote:
mcompany wrote:And untagging is much harder than tagging simply because you need to avoid many possibilities of loops that leave you idle for full seconds, which means any systems that untag either almost never tag in the first place, untags so little that you forget that you have a way to get rid of the tag, or is pretty much is guaranteed to not win you games.

I agree about the difficultly and debugging it takes for untagging to be accurate (I find to be a hook for the feature, not a turn off), but I disagree about the guaranteed no win part. If you're losing, it means you have an AI to fix. If you have bots that have contradictory rules about tagging and untagging, it's not the tag's fault, it's the implementer. If you leave a bot tagged that confuses or makes another bot inefficient for some reason, that's an AI design problem, not tag one. If you waste too much time tagging/untagging and get shot up, that's a flaw with priorities, not tags. In all cases, they aren't problems with the tag feature that make you lose all the time, they're opportunities to improve your AI. (I know I used it, I don't like the "problems are opportunities phrase," like I don't have an eating problem, I have an eating opportunity. 8-) But it fits here.)

Except that if it is highly likely that untagging will lead to lots of problems, one can't exactly say that untagging is a very viable solution. In order words, you are changing my sentence to being "which means any systems that untag either almost never tag in the first place, untags so little that you forget that you have a way to get rid of the tag, or is pretty much is guaranteed to not win you games since you didn't do one of the first two things." You added so many more words but didn't change a single bit of the meaning.

drartimus wrote:
mcompany wrote:Decorators...

Honestly, I didn't follow your points very well. That might just be me.

mcompany wrote:...And now that it's random maps only, any argument about decorators is irrelevant

Are you saying that random maps make decorators irrelevant? I would disagree with that, based on how I've use tags to mark enemies based on their observed behavior (scorer, retreater, etc). Maybe "decorators" means something else to me.

I think the trusty dusty pier handbook might help you out here, but I feel like copying and pasting Wozza today

In short, what has been considered as the decorator pattern in Gladiabots is a system at the beginning of the AI to set up the generic AI for the rest of the match. This usually means all actions built for the opening of a match and any other tags that will remain untouched for the entire rest of the match. Decorator systems is also how counting was done pre-10.2.

drartimus wrote:
mcompany wrote:Yes, you've invested months into this game. Yes, you paid to start playing. That doesn't mean that any massive change is a bad thing simply because it messed with your work ...

If the change was for the better (benefiting everyone), I don't disagree. Random maps for example, that affected everyone the same, no advantage. If you built AIs specifically for maps, you gambled on maps staying stable, which if you played the game enough, you knew maps could change. Who gambled on tags being overhauled? That was an integral part of several of my AIs. It was like if counting was changed (granted that's a later feature, but it would still hurt).

I gambled on tags getting overhauled since 6.1.3. I'm still partially gambling on the bot class limit being changed (and have been since 5.3). And my AIs was able to adapt pretty well to the bot class changes. It's called change. It happens. Also, no one gambled on 6.1.3, and loss of old AIs still wasn't the primary issue, but instead it was the loss of specifically currently targeted and the overall loss in quality that everyone's AIs had even if they fully optimized

drartimus wrote:
mcompany wrote:Hell, with real programming languages, this is very much likely to happen unless you restrict yourself to an older version of the language (which might then mean possibilities for some things not being as polished as the latest version and others not being as fast).

Important difference that invalidates your point, languages do version breaking changes (Python, PHP, Golang) and upgrading is not imposed. If a vendor's update breaks you code, you wouldn't want to go to production with it, would you? If it's a patch that fixes a vulnerability, but breaks something else (*cough* Apple, *cough* root access, https://www.wired.com/story/macos-update-undoes-apple-root-bug-patch/) then it was a shit release. Stability for languages and OS architectures is based on pinning to versions and upgrading (or not) is your choice. This is not an option in Gladiabots, or most online games for that matter. Some games deal with restricting users to playing other users who match expansion packs and so forth, but this game ain't one of them.

First of all, your example is apples to oranges. You are comparing a security update to an OS that was forgotten on the next highest version of the OS itself to a change in how a programming language might operate some of it's systems. Why not compare stuff like converting from ActionScript 2 to ActionScript 3? Or from any version of flash programming to HTML5? Those are changes that completely invalidates the previous work with massive conversions, but can at the end of the day lead towards easier work that can be done to work code. Not only that, but once again, my argument is still that for online games and gladiabots, the issue isn't whether or not something massive have changed, but specifically whether or not that massive change has led to a better system. As I'm trying to argue, 90% of the uses of tags on the previous system was either possible tagless, or was just plain impossible to realistically win with, and the last 10% was pretty much only used at the top, and only by 3-5 players of said top.

drartimus wrote:
mcompany wrote:So really doubt this is as much of a problem for the game as it is just a personal problem for you.

I've seen fledgling games on steam go belly up for making breaking changes to their game play (I was a huge early adopter of RoboCraft, and it went to shit when they lost sight of their original vision). I doubt Gladiabots is impervious to the same thing. If mainstream players have to deal with their AIs becoming invalid one too many times, they'll lose interest. I'm not the only one to experience it. Knowing this is "Alpha" is what gives it a free pass for me, but how many strikes are others willing to give?

What you are missing here is the players would would rather their AIs be invalidated than be on the old system. What you are missing here is all of the people who enjoys the challenge of adapting to a new system. What you are missing here are the people like my friends who have specifically told me that they don't play the game because of the lack of proper variables and lack of proper math. I think you are the very smallest of a minority here

pier4r wrote:
drartimus wrote:Thanks for the change log notes, you too peir4r. Is there a thread where those are captured?

Good question. Actually I think it is missing and wouldn't be bad to open a wiki page on it.

There is a wiki page on it. Though I think LuBeNo left before version 12 was even announced, so I might need to update it.

pier4r
Skynet
Skynet
Posts: 3190

Re: I don't know how tagging works anymore. (Part 2)

Post#20 » 28 Feb 2018, 15:13

mcompany wrote:
pier4r wrote:
drartimus wrote:Thanks for the change log notes, you too peir4r. Is there a thread where those are captured?

Good question. Actually I think it is missing and wouldn't be bad to open a wiki page on it.

There is a wiki page on it. Though I think LuBeNo left before version 12 was even announced, so I might need to update it.


Great so let's fill it!
http://www.reddit.com/r/Gladiabots/wiki/players/pier4r_nvidia_shield_k1 -> Gladiabots CHAT, stats, insights and more ;

Return to “Questions”

Who is online

Users browsing this forum: Google [Bot] and 2 guests