NTai XE10.1b - Page 39

NTai XE10.1b

Here is where ideas can be collected for the skirmish AI in development

Moderators: hoijui, Moderators

Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

That's why I asked you to do it :wink:

But I'll interpret your prev post as a "go ahead" and will patch it up sometime before 0.73.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

Patched, also fixed 2 division by zero crashes.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

will that code work in 0.72b1? aka the bit you add to the beginning isnt added and thus it' the same string as you gave the engine?
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

Sorry, I even broke it a bit more by applying a big patch that breaks the AI interface (yes again).

(NTAI changes: added CNTai::EnemyDamaged() function)

The good news is that we already created a release branch (branches/taspring_0.73, see ML for details) so it probably won't be really long before 0.73 anymore. So maybe you can just wait with a new NTAI. Unless you really feel like fixing up NTAI for 0.73 and releasing another one for 0.72 in the next few weeks of course.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

I'm going todo a little bughunting with metatags for a few hours.

I'm surprised nobody picked up the logging mistake that displayed semicolons in the metatag error message..
[00:05] < Frame: 150 >hmm canbuild() == false for ":armap" on the ARMCOM
[00:05] < Frame: 150 >hmm canbuild() == false for ":corap" on the ARMCOM
[00:05] < Frame: 150 > error with metatag!!!!!!! :: b_metatag_failed :: l1air
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

metatags are fixed
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

RC23 is in the svn complete with a few fixes including the metatag fix and a fix for efficiency value warnings.

The AA buildtree now works but it not very well. It was designed for an earleir build of NTai and since then a lot has changed for which egarwaen couldnt anticipate as he couldnt test out the buildtree and make changes while metatags where broken.

I can only imagine that Arghs nanoblobz buildtree and Lindirs XTA tree updates would be commited otherwise RC23 is done and will be with the next spring release.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

http://cs.selu.edu/~ssmith/BB/viewtopic.php?p=2547#2547

For those of you making buildtrees, or crashes, extract that to your aidll/globalai/ folder over an existing RC22 installation. It includes a few bugfixes from tobi and fixed metatags.

Metalmakers are also now higher up the chain of rules than mexes as requested by lindir.
User avatar
Argh
Posts: 10920
Joined: 21 Feb 2005, 03:38

Post by Argh »

Hey AF... I'm getting down to brass tacks with NTAI's current features... and I have some problems:

1. I don't seem to see Sheep guard AutoFacs, even then repair=true. What's up with that?

2. I saw the Task List thingie, and made a bunch of Tasks. However, it appears that giving the AutoFac 20 different Tasks that are like this:

Wolf, repeat

... results in the "repeat" getting skipped over :P Then the darn thing picks another task list! Oh, noes! This isn't what I wanted... I wanted it to repeat the same task list, over and over again...



Basically, I was hoping to get the Sheep to behave in more human-like ways, taking back the advantage from human players who use Sheep to make their AutoFacs go faster. I was going to make AutoFacs pick a buildtree at random... with a large enough number of weighted choices so that, for example, a lot've AutoFacs pick to build Wolves all the time- which is a real must, if NTAI is going to even have a chance of competing with human players.

Thus far, the results of my experiments have been very discouraging. Because NTAI doesn't seem to have a way to limit the number of units (other than through the "solounit" function), eventually you end up with these useless, undefended AI bases, full of Sheep and AutoFacs, but not pumping out combat units efficiently. Human players (at least... good ones) know that there are certain ratios at which adding another "helper" Sheep to an AutoFac isn't really useful, for example- a good case-in-point is an AutoFac building Archers, where adding Sheep really doesn't speed the AutoFac up much. However, an AutoFac building Wolves can be sped up just a wee bit, and of course it matters a huge amount for Knights, etc.

I guess I could just scrap this idea and let Sheep do a lot've repairs mixed with build-orders, and keep hashing it until it feels good again, but I have this sinking feeling that it'll end up with the same problems as the previous versions, where the AI just never ends up building in a concentrated enough way to give it a decisive unit advantage. For example, it's well-nigh impossible, thus far, to make it build a flood of Knights.

And, last but not least... what are all of these weird other things in Lindir's file... and why aren't they documented... it's kind've hard to make things when I don't even know what features are available, lol... please, update yer documentation for 0.73b, because from what I've gathered thus far, NTAI has become far more flexible... but it's kind've worthless if users don't know that ;)


Ah... and lastly... I have discovered that if Sheep are set on Patrols that take them through random parts of a base, then they auto-assist the AutoFacs enough that they will pretty closely simulate a human. Is there any way to set this up with NTAI at the moment?
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

The problem so much is added and I have no effective tools fo tracking the changes save SVN commits, whcih have onyl been started recently.

You'll ahve to ask us what a tag does and write it down else your liable to have huge swathes of features completely forgotten. The human mind can only keep track fo 7 things at any one time and NTai is a very large project considering the size of Spring AI's and a lot of work gets done on it.

Two issues I will comemnt on.

Patrols::

Earlier on around XE8, back when you where working on nanoblboz 0.3 something and where still working on buildtrees, remember when I added the random movement? Around that time I had a few ideas and got very excited about them but then came a huge stumbling block. They involved patrols. The problem there isnt immediate, but think it through, a ptrol requires patrol points, but where do you put the points?? aka how do you automatically generate a patrol route without causing huge traffic jams and ramming units into buildings and mex spots and other focal points.

Units repairing and guarding

You see here I coem to another stumbling block. I have no algorithm that tells me how effective helping a cosntruction item will be and if it should be done or not. The only meaningful check I can think of is an antistall algorithm which is already done, or a tiem absed system that filters out additions ocne the time increase becomes minimal, however that would have one or two issues with it, aswell as requiring a system not planned untill XE10 to support it (a system intended to replace the existing system and resulting in a major rewrite and refactoring even larger than the XE7.5->XE8 transition and possibly even calling for a new project name(not Epic, thats something else)), and that system is months away.

So really I need help here. And while its nice to know the issues, there just isnt any motivation to put in the concentration to solving those problems when its required elsewhere.


So if you could com up with a basic algorithm telling a construction unit which factory to guard taking into account time then that would be very helpful indeed, lindir has been wanting such a thing for a while but I'm simply not motivated to do it right now, I have too much todo to think about a major burst on NTai by myself.


As for repeating buildtrees, you can pretty much ingore the repeat keyword, just never use the dont_repeat keyword or it'll fall out of the loop and do nothing. If anything I prefer that behaviour, as does lindir. The simple fix here is to copy paste the 'wolf,' part over and over again.
1. I don't seem to see Sheep guard AutoFacs, even then repair=true. What's up with that?
repair=true? hmmmm I dont get that. the keywords for guarding things might eb worth looking at. b_guardian for example being a repair nearby thigns untill there's nothing left to repair.

Also have you tried turning off the interpolation routine that inserts a certain keywordinbetween every single entry you define?

If you do nothing then wolf, wolf, wolf, becomes:

wolf, b_rule_extreme_nofact, wolf, b_rule_extreme_nofact, wolf,etc....

There's also a tag that can change the b_rule_extreme_nofact to something else.

I also suggest you look at the commander textfile in XTA buildtree for the keywords that temporarily disable and enable the inteprolation.

But putting in the equivilant of single word buildtrees is a bad idea, NTai was designed for buildtrees not build words.


However i find mass producing sheep and building the units with sheep works alright for previous incarnations fo your buildtrees. Perhaps the emphasis on emulating human style play has lead you to disconnect with the advantages NTai has in managing mobile units as if they themselves are factories able to define how they're distributed by moving around and grouping together.


But I cant really say much more as I have yet to try out NTai with your latest copy of nanoblobz. Also make sure you're using the XE9.23 build for buildtree makers.
User avatar
Argh
Posts: 10920
Joined: 21 Feb 2005, 03:38

Post by Argh »

Basically, I think I got it solved, anyhow.

Firstly... I set up the AutoFacs with repeats of 1000 times. That way... when they start making units, they just keep going.

Secondly, I took out the B_RANDMOVEs for some (but not all) of the Sheep buildtrees. This helped considerably with the "Sheep wandering around, doing nothing directly useful" problem.

Thirdly, I re-tweaked the Lord's buildtree, which is still a very complex, layered mess, because the Lord's order-of-build during the very early game is so critical to prevent NTAI from presenting no challenge to players whatsoever (the "kill 'em off with Wolves" newbie strat, which I never want an AI to fall for).

Pretty much... I think I've got it. Last considerations are tweaks on how often (and when) Demons will get built... they're sooo important for late-game defense-busting, but are soooo useless for early-game econ. establishment and positional warfare. Still, though, with minor changes, I've been able to get past this hump, and I think that newbies will find NTAI moderately challenging (which is all I want from it at this point- people need a good trainer). I will do the last tweaks on the Lord's buildtree and email you the new files...


As for documentation... um... well... if you write code, and nobody knows what it does, but if they don't know what it does, they can't use it properly... how many people are going to use it? That's precisely what happens when an undocumented feature is written ;) I know it sucks to have to take some time to document things, but... well... I have been doing lots of it within NanoBlobs, and it is a better "product" as a result, and I am sure NTAI would be, too. I know you're busy with a million things at once- everybody who is developing actively for Spring and taking care of all of our RL things is, too. But NTAI's massive feature list, even from what I can see from Lindir's notes, is full of things that don't work any more, or work, but aren't explained.

I mean, what the heck is "b_rule_extreme_nofact"? Does that turn a rule off, or on? What does that rule do? When users can't find an answer for these questions, whether or not a feature is available is kind've moot. Even crappy, one-liner documentation of the command-list is better than none at all. Lindir, if you're around, maybe we can all get this straightened out a bit, and write up a proper doc... again, from what I can see, NTAI's sophistication is much larger than I think most people are aware of... it's really a question of getting people to understand its features well enough to build custom versions of rulesets for their mods.
Quantum_Menace
Posts: 5
Joined: 16 Aug 2006, 14:57

Post by Quantum_Menace »

I used that update, and the AI is working now. Thanks!
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Yes that update was compiled without SSE instructions for people whose cpus dont support that featureset.

b_rule_extreme_nofact is b_rule_extreme but it doesnt execute any storage or factory rules.


Also testing nanoblobz with my bounty patched version of spring I took a few minutes to run a test on building units with masses of helpers.

It seems that a unit is produced every 32 frames and you can never make it any faster than that no matter how many builders help, which makes sense considering how construction works in spring and provides an easy failsafe for the maximum n# units helping build wolves.

Right now I aint going to add it just yet.

However before the usage of svn commits was started, I had to tell lindir and egarwaen about all the features and so they'll all be in emails with NTai build attachments. I've asked lindir many times to compile all these into a changelog but he hasnt and I can understand why....
User avatar
Argh
Posts: 10920
Joined: 21 Feb 2005, 03:38

Post by Argh »

AF: go here to get the latest buildtree for NanoBlobs 0.6... it's really quite something if it's not crushed instantly. I think it's about as good as it's going to get at the moment :-) This is definately the version I'd like to see in 0.73b, if at all possible.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

You forgot tor emove capital letters in your filenames

Autofac1.txt will only work on windows, under linux it'll give a "cannon find autofac1.txt" error. All filenames, unitnames, tags everything in NTai are forced to lowercase for consistency, so nothing in NTai should be uppercase.

I now have a big problem with tortoise svn and Lord.txt and lord.txt and how they both exist in the svn yet they cannot exist at the same time on my windows system without overwritting eachother in a case isnensitive file system which means I have no commit access to the nanoblobz buildtree untill someone else fixes it for me else every commit will give an error emssage.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

I assume you somehow fixed it already? (Dont see uppercase things in nanoblobz03series anymore)
User avatar
Argh
Posts: 10920
Joined: 21 Feb 2005, 03:38

Post by Argh »

AF:

NP, I'll fix it.


....

Fixed, go download it again from the same link.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

I manually renamed and then attempted to fix it myself in svn, and it appears to have worked.
User avatar
1v0ry_k1ng
Posts: 4656
Joined: 10 Mar 2006, 10:24

Post by 1v0ry_k1ng »

i think the next ntai version should have a shorter name. how effective is NTAI at EE?
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

NTai discussion happens at Epic think tank forum and the NTai forum at smoths forum now. All further bug reports suggestions and requests should be made there and not here

http://smoth.darkstars.co.uk/BB/

If you read that forum you'll find the future status of NTai is there for you to choose in a poll along with what will happen to numerous other projects of mine todo with spring.

Here si the link to the Design Paradigm thread:
http://cs.selu.edu/~ssmith/BB/viewtopic.php?t=438

The next version will simply be a bugfix version for 0.73 so people can continue to use NTai (since its the only AI flexible enough to work with nanoblobz).
Post Reply

Return to “AI”