[3.1+] NullBot: an adaptive skirmish AI

Did you create a mod, map, music, or a tool? Present them here and earn feedback!
Note: addon requests do not belong here.
Note, everything uploaded to this forum, MUST have a license!
User avatar
aubergine
Professional
Professional
Posts: 3459
Joined: 10 Oct 2010, 00:58
Contact:

Re: NullBot: yet another AI for v3.1+

Post by aubergine »

Image
"Dedicated to discovering Warzone artefacts, and sharing them freely for the benefit of the community."
-- https://warzone.atlassian.net/wiki/display/GO
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: NullBot: yet another AI for v3.1+

Post by NoQ »

tx (:

v0.22

Changes:
  • Start with a single group unless fighting at least two enemy teams;
  • Converting to new orders on master (eg., use ORDER_RTR for repair, ORDER_STOP to stop moving the main cluster while regrouping, no more "units moving into the cliff" while regrouping; doesn't affect the behaviour on v3.1);
  • A little fix in return to repair code;
  • Trying to teach him break through blocking walls, but not really too much successful;
  • Tweaks to MC personality: a bit more teching build order (FRCFR, something close to the one developed by Jack_Sheppard); now actually researches HPV and AC supercyborgs; invents VTOLs a bit earlier.
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: NullBot: yet another AI for v3.1+

Post by NoQ »

aubergine wrote:Ability to properly micromanage droids would be most important thing IMHO?
Macro >> Strategy >> Tactics >> Micro, i think, in the sense of importance. I mean, when the previous is bad, the next one won't save you.
some starcraft wiki wrote:So why is macro better? Consider pitting a micro-oriented player against a macro-oriented player both with the same amount of attention and actions per minute. Overall, the macro player will have a better economy and more units, and can usually overpower the micro player no matter how good his or her control is. Because of this, attention to macro is generally more valuable than attention to micro. Since focus on macro is the better choice, let us consider the case of two macro-oriented players with the same amount of attention. Both will amass a similarly-sized army and both will have similar economies, so who is victorious? It comes down to unit positioning and the outcome of battles; essentially micro.
Well, something like that.

We aren't really ok with macro (most of the adaptation is still lacking, especially adapting the research to the enemy choices), even though the progress here was the biggest, and there are some pretty clear ideas on how to improve it. But at least in early game, when there is not much time for adaptation yet, the macro is more or less fine.

Strategy is probably something we are lacking completely. There is no AI that knows when he should leave some tanks at the base and when it should just attack from all directions instead. Teamwork doesn't exist at all. The AIs have no idea what is a chokepoint and how and why they should protect it.

We're currently having a bit of progress with tactics, like packing units up in groups, but i have absolutely no idea on how to make AI understand the importance of things like convex vs. concave unit placement, surrounding the enemy with several groups of units, highground advantage or advantage of the pursue group over the fleeing group, and how to use them. Tactics is probably the hardest thing of those four ... but i feel as if this EggPlant thing of yours was designed to address it in the first place, with all this "divide map into squares ..." theory :?: Together with strategy, btw.

When it comes to micro, the best thing we currently have is that units are being sent to repair once reaching some damage level. We also seem to have a chance to make fire concentration to some extent* The whole idea of hit-and-run is currently lacking, and the same applies to shielding damaged units with healthy units etc. But there's something that makes me optimistic. I remember this "age of empires" game, the first one, where AI was easily able to micromanage archers (attaching axe infantry from a distance, while keeping a distance abusing its superior speed). This was back in 1997, a few years before wz2100 came into existance. I think we might be able to get a proper hit-and-run at least on this level some day.

________________
* even though i think i just broke it in the latest version, due to walls troubles (units tried to concentrate fire on a tower behind the wall but couldn't fire, so they just stood still ...
User avatar
aubergine
Professional
Professional
Posts: 3459
Joined: 10 Oct 2010, 00:58
Contact:

Re: NullBot: yet another AI for v3.1+

Post by aubergine »

Image
Attachments
WZlog-0218_223604.txt
bunch of errors in v0.22
(1.68 MiB) Downloaded 288 times
"Dedicated to discovering Warzone artefacts, and sharing them freely for the benefit of the community."
-- https://warzone.atlassian.net/wiki/display/GO
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: NullBot: yet another AI for v3.1+

Post by NoQ »

Hmm. Is your git game version up to date? Does it already have orderDroid() function merged into it? Cause i'm relying on the latest changes already (note: there is a version check down there, a workaround is used for 3.1, but not for different versions of master)
User avatar
aubergine
Professional
Professional
Posts: 3459
Joined: 10 Oct 2010, 00:58
Contact:

Re: NullBot: yet another AI for v3.1+

Post by aubergine »

I'm playing on 3.1 beta 2.

I'm on a mac so compiling is a PITA for me (can't really put a build env on this machine as I use it for work so I avoid installing too much stuff on it)
"Dedicated to discovering Warzone artefacts, and sharing them freely for the benefit of the community."
-- https://warzone.atlassian.net/wiki/display/GO
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: NullBot: yet another AI for v3.1+

Post by NoQ »

aubergine wrote:I'm playing on 3.1 beta 2.
But the log clearly says

Code: Select all

wz2100-git
:?: I'm pretty sure this line is not called at all on 3.1 beta 2 :o
User avatar
aubergine
Professional
Professional
Posts: 3459
Joined: 10 Oct 2010, 00:58
Contact:

Re: NullBot: yet another AI for v3.1+

Post by aubergine »

It's definitely wz 3.1 beta - downloaded the .dmg file from here: http://sourceforge.net/projects/warzone ... g/download
"Dedicated to discovering Warzone artefacts, and sharing them freely for the benefit of the community."
-- https://warzone.atlassian.net/wiki/display/GO
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: NullBot: yet another AI for v3.1+

Post by NoQ »

Well, as long as i won't be able to fix anything today :oops: may i ask a bit more? Probably mac builds have some trouble with version js variable? Could you please check out what is it equal to?

Code: Select all

if (on31())
    orderDroidLoc(list[ret.clusters[i][j]], DORDER_MOVE, ret.xav[ret.maxIdx], ret.yav[ret.maxIdx]);
else
    orderDroid(list[ret.clusters[i][j]], DORDER_STOP); // <--- here is the line mentioned in the log

Code: Select all

function on31() {
	return (version.indexOf("3.1")>-1);
}
User avatar
aubergine
Professional
Professional
Posts: 3459
Joined: 10 Oct 2010, 00:58
Contact:

Re: NullBot: yet another AI for v3.1+

Post by aubergine »

The mac version reports version as "TRUNK" for me! If you get chance could you update the following page with info about the version as you see it: https://warzone.atlassian.net/wiki/disp ... pi/version -- I've no idea what a proper version string will look like as all I ever see is "TRUNK".

BTW, I posted some ideas about backwards compatibility: https://warzone.atlassian.net/wiki/disp ... patibility

In terms of those new DORDER constants, would it not be better to check whether the constants are defined rather than checking version?

Example:

Code: Select all

if (!!DORDER_STOP) { // do it the new way
    orderDroid(list[ret.clusters[i][j]], DORDER_STOP);
} else { // do it the old way
    orderDroidLoc(list[ret.clusters[i][j]], DORDER_MOVE, ret.xav[ret.maxIdx], ret.yav[ret.maxIdx]);
}
"Dedicated to discovering Warzone artefacts, and sharing them freely for the benefit of the community."
-- https://warzone.atlassian.net/wiki/display/GO
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: NullBot: yet another AI for v3.1+

Post by NoQ »

Good idea! :3
Still need to report the trouble with version.
User avatar
aubergine
Professional
Professional
Posts: 3459
Joined: 10 Oct 2010, 00:58
Contact:

Re: NullBot: yet another AI for v3.1+

Post by aubergine »

"Dedicated to discovering Warzone artefacts, and sharing them freely for the benefit of the community."
-- https://warzone.atlassian.net/wiki/display/GO
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: NullBot: yet another AI for v3.1+

Post by NoQ »

v0.23

Changes:
  • No longer rely on version, but on availability of specific functions;
  • More simplification of personality selection code;
  • Adaptation rate modified again, decreased this time, so that not to move too much to the opposite direction;
  • Retreat units to repair earlier;
  • Flame AI builds generators earlier (doesn't really need an early CC)
User avatar
NoQ
Special
Special
Posts: 6226
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: NullBot: yet another AI for v3.1+

Post by NoQ »

v0.24

Changes:
  • Fix a couple of bad typos;
  • Decrease the Hover AI technology rush once hovers are reached (sell the 4th lab, don't rush for VTOLs so much, etc.) (sounds like quite an improvement)
  • MC AI no longer gets stuck with no oil and no gens at start in some cases;
User avatar
Terminator
Regular
Regular
Posts: 1077
Joined: 05 Aug 2006, 13:46
Location: Ukraine
Contact:

Re: NullBot: yet another AI for v3.1+

Post by Terminator »

I don't know but is there a script func to check game_version ? So custom scripts could use it so to execute in right game-version.
p.s. sorry for off-top
Death is the only way out... sh*t Happens !

Russian-speaking Social network Group http://vk.com/warzone2100
Post Reply