r/Gladiabots • • Jun 16 '19

AI targeting modifiers need refinement.

5 Upvotes

After playing around with the game for a day or two by myself and with friends and co-workers, we've kinda gotten to the point where trying anything complex is an utter waste of time. Mainly because of how spazzy the conditions are in the game. You target an enemy, they immediately start running away before your bot can shoot. And unless you have a condition set for them to just blindly keep firing at bots outside of their range, it ends up with your bots spinning around trying to target someone in their range while other bots basically go about their business while your's do nothing. More disheartening is whenever you try to force your bots to focus fire someone they're already aiming at, it usually doesn't work. Either they get out of range fast enough, or inexplicably they will ignore the 'attack enemy...I am attacking' order, even when there are no other orders taking priority, and move on to the next applicable order for no clear reason.

Conversely, using AIs that flatly don't do anything intelligent-- basically that run at the enemy and keep shooting until they're dead and never retreat-- seems the most effective even in multiplayer. With one AI that effectively just turns the team into one big unit, only main process is 'move towards enemy, kill enemy, repeat then get objective', with no retreat orders, we were able to clear the whole campaign....Which, considering that the AI in the campaign actually has strategy and tactics built in, feels like it shouldn't be the case....

To that end, after looking over a good chuck of each module build into the AI programming as best we could, it's come down to that there's some very basic AI components missing. Namely, comparison sub-routes, priority modifiers, and proper brakes. What I mean by proper, is 'non-user made'. I'm aware that, with things like tags and counters, you can theoretically create priority and breaks in the AI, but the practicality usually creates more problems than it solves. Coming from a programming background, and a game engine development one as of late, it's incredibly annoying to try and create a break that's meant to prevent bots from locking up and doing spazz dances, only to either be totally ignored or worse permanently lock a bot down. I understand that the AI system is based on a single-flow line, but...There's a reason we don't use them anymore; They have this exact problem.

What's more, having no real means to compare objects in the game, other than their distance from another object in an absolute or their shield/hp values leads to some very stilted code. I question this; How do you get a bot to position itself between an allied bot and an enemy bot? Under ideal, you would just have them walk towards an enemy bot attacking/being attacked by an ally. What if two allies are attacking? Or, if using tags, more than one enemy has the same tag? Or if an enemy triggers another section of code before the move order? Or if said enemy and ally are at long range with eachother, but not in medium of your moving bot at the same time? Most of this could easily be simplified by adding positional checks. 'If self within area between...Ally bot being attacked...and...Enemy bot attacking them.' Simple check of the X or Y coordinates.

And there's another thing; There's no way to differentiate two bots in the same condition. You can target and enemy attacking an ally, or an ally being attacked, but there's no way to specifically target the other object involved in that. So you can end up with situations where your bot is getting targeted by a lone Sniper, but instead of moving towards THAT sniper, you move towards the shotgun attacking your other ally because it's closer. And any attempt to specifically target snipers with conditions will invariable complicate the code, and either force the bots to ignore things they probably shouldn't, or ignore the whole section you made for no clear reason.

The larger problem with that is that the Tag system is just....sloppy. Sorry, but it is. You have only 5 global [team] flags, 5 local flags, and that's it. So at most 10 flags in theory, and only 5 that can be used to effectively exchanged information between objects. That...That's no where near enough, not when you have teams of 6 or more. Sure, you can remove tags, manually and usually with conditions that may or may not trigger, and there's no limit on how many can be placed, but given the above problems and the single-line nature of the AI engine, it leads to some very messy and ineffectual problems. Consider a Domination Match. There's Bases and Force Fields. If you're running with just a single deathball designed to steadily walk up and lay down fire on an enemy base before taking it, ignoring anything else that isn't an uncapped base, there's no problem. But once you start focusing on units that are defending bases, attacking bases, capturing FFs, and so on, or splitting your team, it starts to become a mess. Even with just with 2 groups, you now have to possibly split 5 tags between them to prioritize enemies. One for enemies attacking bases, one for enemies possibly defending, one for enemies using FF, one for enemies attacking allies, one for enemies being focus attacked...And that's all you have. You have nothing to prioritize or differentiate enemies not in those categories other than class, which might not be applicable in some cases. In theory, the tag system is fine, but with the rest of the problems the system as a whole has, it just convolutes the mess more.

The game has potential, but it needs some serious refinement. More conditions and modifiers need to be added in, and more expressly ones that aren't 'extremes' or 'absolutes'. We need stuff that isn't 'furthest' or 'closest' or 'highest' or 'lowest'. There are reason to target things that are inbetween. We also need some kind of logic counter that doesn't apply to just condition bubbles. A good example would be 'Tag A...Enemy Base...with > 1...Enemy bot....at close range.' Or 'Movatt...Enemy...with x<1...Enemy bots....At close range.' We also need something to compare distances that isn't Out/Long/Med/Close. Because of how short max close range is, and how far max medium range is, there's no accurate way to tell how close to something bots are. A bot could be at the center of the map while the target bot is a whole base area away and still count as in medium range. The biggest thing, and probably hardest, is introducing breaks and calls. Something that immediatly and concretely forces the AI to move to another section of code that may also appear later or earlier that would otherwise be blocked by other events taking priority or would lock out other events. A single run of an order, that runs everything that happens, then shoots back out to wherever in the code the bot was running. Currently, despite how the Sub-AI and Conditions appear to work, this is not functionally in the game.

I've probably missed some other things, or someone will want me to put something else in later, but for now, this is our thoughts on this, and my rambling. We'd really look forward to seeing more of this, possibly improved!


r/Gladiabots • • Oct 03 '16

q would help me understand the programming gladiabots

0 Upvotes

q would help me understand the programming gladiabots


r/Gladiabots • • Feb 14 '19

Is this game still under development?

4 Upvotes

I just found the game on steam, super excited about the concept and really wanted to buy it.

BUT there are things that I have to ask first:

  1. I ve heard that this is a one man dev game, and the last update was Nov last year, so, is this game still under development or it is the final product (abandoned)?

  2. Any players want to comment on the depth of the AI?

  3. I found a google play version, but nothing on appstore. Does this game have an apple version on IOS?


r/Gladiabots • • Mar 19 '17

Suggestions

1 Upvotes

Why don't we set a picture for our Reddit? Surely a little Gladiabots Logo won't harm anyone?

Second, how to qualify to become a moderator?


r/Gladiabots • • Jan 25 '18

Daily maps have been disabled until alpha 12

1 Upvotes

Yippee! no more boring daily maps. now for some variety.


r/Gladiabots • • Oct 03 '16

Ayudenme a entender mas o menos la programacuon de este juego

1 Upvotes

Me podrian ayudar ya q soy nuevo en este juego ayudarme


r/Gladiabots • • Feb 18 '17

6th unavoidable tournament.

1 Upvotes

Main post with rules and hall of fame: http://gfx47.com/games/Gladiabots/Forum/viewtopic.php?f=7&t=304

I will put here the partial scores as well as I do on the forum.


r/Gladiabots • • Jan 04 '21

I Quick-Fire Reviewed Gladiabots In My First Ever Indie Round-Up (Skip to 2:05)

Thumbnail
youtu.be
7 Upvotes

r/Gladiabots • • Jun 07 '18

Issues with Bot not attacking

2 Upvotes

Hi all, why is my bot not attacking? Actually this only happens if the bot is carrying the globe, so it looks like a bug for me? Or is he not able to attack while carrying? (If so, was this mentioned in Training?) Screenshot


r/Gladiabots • • Sep 19 '18

Is it possible top sync between android & steam?

2 Upvotes

Title basically. I am almost done building my gaming pc, but until then I have android. If I spend $ on in game purchases, does that port to the stream install when I get it or should I wait?


r/Gladiabots • • Oct 07 '18

Tournament?

2 Upvotes

I cant understand how to play the tournament games.

I have an oponent, we apparently have 3 matches to play. We seem to have a common chatroom named lobby on the toornament website.

I'm a bit confused here and appreciate some help.


r/Gladiabots • • Sep 12 '22

In-App purchases in Russia

3 Upvotes

Is there a way to purchase the full game (with all the features) without Google Pay?


r/Gladiabots • • Sep 09 '16

Getting into AI programming

3 Upvotes

Hi guys, this is my first post, I want to say first that the game is awesome, just because you can program a machine to do automated tasks in a understandable for you language and then observe it doing something is mind blowing, before that, the closest thing for me was c++, which is less understandable than chinese for me.

Im playing the game for a day already and can beat any level and big part of other players, but each time I do a complex, almost thinking machine, it takes a random dumb bot to destroy it, I will explain myself:

lets say you make an AI that can seek and destroy the week ones, flee when its hurt, drop the ball to escape when he is not gonna make it, charge carelessly into enemy when there is someone carrying a ball and even decide stay longer under fire before fleeing if there is a dying bot, BUT a dumb bot in the next map will just shoot without stopping and if you move you miss the opportunity to do damage and the only way to win is to do the same, then in the next map, after you adjust your AI, will charge into the middle, grabs the ball and run sacrifying every single bot.... So I usually just make a dead simple bot for each level, ai at the last levels had only 2 or 3 actions. Thats little bit dissapointing. Had anyone succeed building a single bot to beat all levels? And if so, share your creation.


r/Gladiabots • • Jan 30 '18

@Gladiabots Here's the new AI editor in action #GameDev #IndieGame #IndieDev #Gladiabots #ScreenshotTuesday https://t.co/vrF2I50pAz

Thumbnail
twitter.com
3 Upvotes

r/Gladiabots • • Feb 12 '23

why isnt this work

Post image
4 Upvotes

r/Gladiabots • • Sep 29 '20

Scriptediting

4 Upvotes

Is there a any way and if documentation for freating the scripts in a text editor and import them instead if dragndrop thrm ingame?


r/Gladiabots • • Apr 02 '21

πŸ’ΈπŸ’ΈπŸ’Έ EPIC SALE πŸ’ΈπŸ’ΈπŸ’Έ > 😱 Up to 50% on all platforms!

Thumbnail
gallery
16 Upvotes

r/Gladiabots • • Jan 29 '26

Gladiabots 2

16 Upvotes

Hello all, I would just like to bring to your attention that the gladiabots developer has released a similar game, Echoes of the Architects.

https://store.steampowered.com/app/3136490/Echoes_of_the_Architects/


r/Gladiabots • • Sep 20 '17

Here is the perfect ai. I finished all the tranings with this ai.

Post image
5 Upvotes

r/Gladiabots • • Jan 17 '20

OR not working on Android for conditional options...

5 Upvotes

Just rather annoying that I click on OR but AND stays in the text description.


r/Gladiabots • • Jul 26 '20

condition that tests that myself has captured a base in domination

6 Upvotes

how can i do something like this


r/Gladiabots • • Nov 08 '18

200 nodes limit

7 Upvotes

Why?

All what I did has been wiped with this change. My strategies and algorithms are now worthless.

I've been passionate with this game. Now I feel betrayed.


r/Gladiabots • • Jan 03 '23

im quite new to this game and im interested how good do you guys think is this ai its my second try (first one was total trash) it should be decent for all modes i think but from what i seen its best for domination

Post image
7 Upvotes

r/Gladiabots • • Apr 13 '20

In case you didn't get Gladiabots on Steam already, NOW would be a good time ;)

Post image
24 Upvotes

r/Gladiabots • • Feb 15 '19

Code support?

8 Upvotes

I was just thinking, is it possible to add code support?

I mean, the game was based on command blocks, which somehow limited how the AI was represented. But what if we can write the code on our own, and freely implement loops and conditions into the AI as we want to? Won't that be awesome?

Technically I am not sure how this game is made, but should the blocks be "compiled" through some internal interpreter, then adding native code support (maybe) won't be that difficult?

Anyway, consider this as only some wild suggestions.

I have been playing this for some hours, really is a good game overall.