Register    Login    Forum    Search    FAQ Awesomenauts



Post new topic Reply to topic

Author Message
 Post subject: New behaviour features in 3.0
 Post Posted: Wed Mar 02, 2016 5:52 pm 
Offline
Ronimo Team Member

Joined: Mon May 07, 2012 4:08 pm
Posts: 341
With the release of 3.0 Overdrive some behaviour conditions will be added. This should give modders some extra tools to let the bots make more informed decisions on where to attack or defend.

The in-game AI editor has a new button to show the areas around which turret can check for allies/enemies. These areas still need to be tweaked per map/turret.
Image


checkBaseHealth/checkTurretHealth

A condition check for turret or base health. Instead of comparing to a flat hp value it is possible to compare to a health percentage.

compareCounters
A condition check to compare two ai counters. The new checkTurretArea has the option to set an ai counter. With this block it will be possible to let the bot make decisions which turret to attack/defend by comparing two checkTurretArea results.

checkTurretArea
This block makes it possible to count the number of allies/enemies near one or more turrets. This block has the following variables:
minimum Count For Success: The minimum number of allies/enemies that should be found for the condition to return true.

result counter: Set the name of an ai counter and it will set the found number of allies/enemies in the counter.

TurretLocations: To make checking a specific turret compatible with all maps each turret has been assigned one of the following ids: TOP BACK, TOP FRONT, BOTTOM BACK, BOTTOM FRONT, BACK, FRONT. For example the turret closest to its own base in the top lane has the id TOP BACK. The BACK and FRONT locations means both top and bottom turrets are checked. For example setting FRONT here would mean all turrets with either TOP FRONT, BOTTOM FRONT or FRONT id will be checked. The otherway around also works where turrets placed on a map with a single lane have the BACK or FRONT id. For example the last turret on sorona is on a single lane and has the BACK id. It will be checked when checkTurretArea checks for any of the locations TOP BACK, BOTTOM BACK or BACK.

TurretTeams: Only check the turrets that belong to one of the teams set here.

Live Turrets Only: When set yes all destroyed turrets will not detect anything in their area.

surroundingGroups: Set if players(nauts) and/or creeps(all droid types) should be counted.

surroundingTeams: Set which teams should be counted.

surroundingClasses: Leave empty to check all types of nauts or droids. When set only those specific classes will be counted.

count characters out of combat: When set yes all characters that are removed from gameplay are still counted (for example a cocooned naut).

check line of sight: When set yes the turret will only count those characters that are in direct line of sight.

ignore invisibility: When set to yes all invisible characters will also be counted.
never detect invisible targets without character collision: When this is set to no and ignore invisibility is set to no, will allow the turret to detect invisible characters that collide with the turret. Invisible characters that don't collide would not be detected.


Top 
 Profile  
 
 Post subject: Re: New behaviour features in 3.0
 Post Posted: Wed Mar 02, 2016 10:41 pm 
Offline
User avatar

Joined: Mon Sep 30, 2013 12:13 am
Posts: 236
I'm genuinely surprised you guys added a new feature to the editor! I was sure you had taken AI modding for dead. Will you actively be taking feature requests or is this more of a one-off thing?

_________________
certified vaporware peddler


Top 
 Profile  
 
 Post subject: Re: New behaviour features in 3.0
 Post Posted: Wed Mar 02, 2016 10:46 pm 
Offline
User avatar

Joined: Mon Sep 02, 2013 5:16 pm
Posts: 1605
Location: Dænmårk
Iiiiiiiiiiiinteresting!

I am also interested in the answer to Chaorace's question.


Top 
 Profile  
 
 Post subject: Re: New behaviour features in 3.0
 Post Posted: Wed Mar 02, 2016 11:01 pm 
Offline
User avatar

Joined: Mon Sep 30, 2013 12:13 am
Posts: 236
What's the functional difference between the CheckCounter block and the CompareCounters block? Image

_________________
certified vaporware peddler


Top 
 Profile  
 
 Post subject: Re: New behaviour features in 3.0
 Post Posted: Wed Mar 02, 2016 11:15 pm 
Offline
User avatar

Joined: Thu Aug 08, 2013 12:59 am
Posts: 1598
I'm guessing they weren't aware (or forgot) that you can use a counter as an operand in checkCounter.


Top 
 Profile  
 
 Post subject: Re: New behaviour features in 3.0
 Post Posted: Wed Mar 02, 2016 11:20 pm 
Offline
User avatar

Joined: Mon Sep 02, 2013 5:16 pm
Posts: 1605
Location: Dænmårk
hurleybird wrote:
I'm guessing they weren't aware (or forgot) that you can use a counter as an operand in checkCounter.


On this note, something that would also be useful is to use counters in other situations than counters.

For instance using counters as an input amount when checking an area. Or health.


Top 
 Profile  
 
 Post subject: Re: New behaviour features in 3.0
 Post Posted: Wed Mar 02, 2016 11:54 pm 
Offline
User avatar

Joined: Mon Sep 30, 2013 12:13 am
Posts: 236
Anyways, if you guys are taking requests, I've got more than you could possibly ever ask for:

0) A measuring tool. Seriously, I currently have to use a special file, the debugging area visualizer, pixel counting, and a calculator to get precise measurements

1) Adding that save-to-counter feature in the new block to existing applicable blocks. For example, health/gold checks are in a stupid state right now. Why didn't the checkturrethealth block get this functionality anyways?

2) Specific naut targetting. It is currently very difficult and very hacky to ascertain simple information about the nauts participating in the current game. There is no easy way to know how many players are on each team (and how many of those players are bots). There is also no easy way to specifically say "I want to know x about naut0". Perhaps a block that behaves similarly to SelectTarget, but has a simple selector like "naut0","naut1","naut2" and a team selector box instead of a bunch of search criteria.

2.5) Target/Node Memory. A block that allows you to retarget an earlier selected target (with a memory of, say, five). Same thing for Nodes

3) The ability to get (and save to counter) absolute naut/waypoint coordinates. Positional awareness is extremely hard to get right because all we can really get right now is a best-guess (and even that isn't as simple as I'd like). An additional block for targeting nodes using coordinates would be nice as well. Having exact coordinates means that bots can be optimized, because arithmetic will be an option for a lot of simple code paths instead of casting these big area scans

4) A block for checking what map you're currently on would be nice

5) The game seems to reprocess the xml bot files every time the bot respawns. This can become a problem once AIs pass a certain complexity, causing hitching. I'm curious if the compiled AI files have the same problems, and, if not, if it would be possible to provide a means of compiling our own bots for testing purposes

Also, I see a block called "branch" now. Was this added this patch or did I just miss that in a previous patch note?

_________________
certified vaporware peddler


Top 
 Profile  
 
 Post subject: Re: New behaviour features in 3.0
 Post Posted: Thu Mar 03, 2016 5:20 pm 
Offline
Ronimo Team Member

Joined: Mon May 07, 2012 4:08 pm
Posts: 341
@chaorace We do plan to make more improvements to AI modding short term so all suggestions/features you request to improve AI modding will be added to our todo list. Although I can't promise if/when any of them will be made.

I didn't know checkCounter already existed, I will remove the compareCounters ai block because it adds nothing new.

The "branch" block comes from our internal swords & soldiers 2 editor. It does nothing but it can be used to put large blocks of logic in it which can be hidden by minimising the branch. Most logic in Awesomenauts is put behind isUpgradeEnabled or getBoolEquals so this branch won't be needed so much but it can be handy in very large behaviour systems.


Top 
 Profile  
 
 Post subject: Re: New behaviour features in 3.0
 Post Posted: Thu Mar 03, 2016 10:19 pm 
Offline
User avatar

Joined: Mon Sep 30, 2013 12:13 am
Posts: 236
Alright! Apologies for sounding so... needy. It's just that we aren't really used to new features and sometimes it takes a lot of hacky work and trial/error on our end to achieve something frustratingly simple.

Image

There's even a 7,000 KB AI file just for detecting if turrets exist, which is itself dependent upon another 817 KB AI file just for detecting what waypoint you're at on the map.

Image

Considering how much of this needs to be written by hand, I hope it's understandable why some of us might be getting a little desperate. Best wishes, and good luck with the finishing touches on 3.0!

_________________
certified vaporware peddler


Top 
 Profile  
 
 Post subject: Re: New behaviour features in 3.0
 Post Posted: Thu Jul 07, 2016 10:43 pm 
Offline
User avatar

Joined: Tue Jul 28, 2015 12:34 pm
Posts: 191
I have noticed nobody posted it in this thread yet so:

It would be really cool if you would add anything to check how much ammo currently bot holds (for Ted/Ksenia). Kek, pretty sure it should be already on your todo lists. Sorry for repeating it all over, everywhere I could.

Please (:

_________________
KsenAI | AI Build Generator (4.0.x) | Roflnauts 2 | Awesometaunts


Top 
 Profile  
 
Display posts from previous:  Sort by  
 
Post new topic Reply to topic