NTai Toolkit 0.3 - Page 5

NTai Toolkit 0.3

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

Moderators: hoijui, Moderators

User avatar
1v0ry_k1ng
Posts: 4656
Joined: 10 Mar 2006, 10:24

Post by 1v0ry_k1ng »

Image

if its any help thats a good initial build order for XTA.
User avatar
Lindir The Green
Posts: 815
Joined: 04 May 2005, 15:09

Post by Lindir The Green »

I don't have enough control with just the config to do anything like that...

But I've been perfecting its build order for like a year, and I think that it's decent.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

your build order isnt srictly a build order because it encompasses more than 1 unit. Tasklists in NTai are assigned to A unit, in the singular.

However I see no bug reports from your 1v0ry saying exactly what happened. I can only guess you saved while spring was running and expected NTai to switch configs midgame which is silly.

If you change a config and save it you have to restart spring in order to see the results.
User avatar
Jomel
Posts: 3
Joined: 14 Jan 2007, 17:55

Post by Jomel »

I've been trying to make it play NanoBlobs, but I'm having various problems.
  • It doesn't seem to want to scout (despite setting scouters), though it does occasionally send a wolf (flying NanoBlob scout) straight off the edge of the map, and you can see it flying out to infinity if you turn the camera. That's probably a Spring bug though :|
  • It refuses to attack (despite setting attackers), even if you attack it a little to jolt it, though this might be due to the lack of scouting (I thought you'd added a maphack though?).
  • If set to build 20 sheep, the lord would build one and then just stay there with his arm glowing until you manually moved the sheep out of the way, after which he'd build another (in the same place). Surely he could have just put the next one somewhere else?! Manually shift-alt-dragging a grid of sheep to build (as a human) works perfectly.
  • Similarly, when building autofacs on repeat the lord manages to build a couple, but still won't bother moving from his current position so will give up after building about 4. While this may be linked to spacing values, spacing values shouldn't prevent builders from moving into empty space around them?
  • I wanted to get the lord and sheep to spread out a little (to fix the above problem, and so the base is less clogged up), but b_randmove doesn't seem to do anything.
  • I wanted the sheep to help each other build things so I set them to b_guard_like_con, which worked fairly well, except you'd get loops of them all guarding each other and so doing nothing. b_guard_like_con would be much more useful if it only guarded active constructors (and passed on to the next item in the tasklist if there were no active constructors). Unfortunately by default several sheep all set to build autofacs will each build their own autofac, rather than assisting each other.
  • It recognised sheep as being b_power, but I couldn't get b_rules to do anything, so any power balance is going to be pretty tentative.
Anywhere here's my current best attempt. Slowly, inefficiently makes a base, and will defend a little, but won't even consider attacking. Simply makes 5 b_power per autofac, since I can't get b_rules to work. Needs lots of improvement, but may vaguely help someone...
http:/ jomelweb.tripod.com/nanoblobs03series.tdf.txt
Instructions: start a NanoBlobs game with NTai so it generates the necessary blank config files, then replace NTai/configs/nanoblobs03series.tdf with the download (make sure to remove the .txt extension).
(n.b. I don't really plan to maintain this...)

FYI here is a log from it running (including an incidence of a wolf disappearing off the edge of the map around 9:08 ): http:/ jomelweb.tripod.com/01-18-2007_2037_0_XE9.3.txt
Corresponding replay is here: http:/ jomelweb.tripod.com/070118-Mars-0.74b2-0.zip

Also a few bugs with the Toolkit v0.232 (which is a great idea):
  • It saves the attackers field as e.g. "attackers=archerdemonknight;" instead of "attackers=archer,demon,knight;", and also occasionally puts a spurious comma after an equals sign.
  • It crashes (DirectoryNotFoundException) if you open a config from the configs folder instead of the root NTai folder (I know this is mentioned on the Quick Help page, but it would make things simpler if you caught the error and explained).
  • It crashes (NullReferenceException) if you leave the units page without selecting a unit. Could fix this by just autoselecting the first unit.
  • Similarly, it crashes if you enter then leave the units page before loading a config (as there are no units to select).
P.S. I had to de-link the URLs in this post since "new users aren't allowed to post links" :evil:

P.P.S. I'm quite new to Spring, NanoBlobs, NTai and its Toolkit, so please forgive me if I make stupid mistakes!
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

There are a few issues.

Nanoblobz suffers greatly because most of the units are nonblocking and thus they inherit a huge gigantic bug in spring todo with blocking maps thats being ignored.

And I ahve a version fo toolkit here with soem bgus fixed but without an NTai worth going with it there sint a point of releasing it atm. I'm working on a custom building placement algorithm which should clear up the building placement issues.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Just a word up

I would release NTai recompiled but I am still having issues with building placement. At the moment this is how its looking:

http://img95.imageshack.us/my.php?image ... ing3vl.png

The green circles should not overlap.
User avatar
Lindir The Green
Posts: 815
Joined: 04 May 2005, 15:09

Post by Lindir The Green »

:o

That's not good.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Ok Fixed that.

The building placement algorithm works and NTai is building EVERYTHIGN its told to when possible, the only problems are:

- Lag spikes placing buildings, the algorithm needs to be moved to a seperate thread.

- Water building placement handling.

- Attacking is somewhat borked atm, aka it never sends units off to attack.

- Geothermal and mex spot reserving on the buildmap
penticrack
Posts: 27
Joined: 31 Dec 2006, 13:22

Post by penticrack »

hm , fixed? sounds good, but i cant find a new version of ur great AI making tool. i need it for custom mods :)
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

I tried to upload a beta version of toolkit 0.24 (just the GUI program).

NTai atm needs to have its new building placement algorithm threaded, otherwise it suffers from intense lagspikes when placing buildings.
penticrack
Posts: 27
Joined: 31 Dec 2006, 13:22

Post by penticrack »

sounds good, that u r on it.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Update:

NTai's main grid management classes are now thread safe, and I have managed to move a lot of code around to take advantage of this. Threaded construction is now possible, and has already built a URC reactor, however here are as always teething troubles which I need to sort out.

I'll also upload a beta version of Toolkit 0.24 (just the program no NTai dll) for people to look around.
Sahtor
Posts: 7
Joined: 17 Sep 2006, 17:03

Post by Sahtor »

is NTai going to be released as ntai.so for linux?
penticrack
Posts: 27
Joined: 31 Dec 2006, 13:22

Post by penticrack »

AF wrote:Update:

NTai's main grid management classes are now thread safe, and I have managed to move a lot of code around to take advantage of this. Threaded construction is now possible, and has already built a URC reactor, however here are as always teething troubles which I need to sort out.

I'll also upload a beta version of Toolkit 0.24 (just the program no NTai dll) for people to look around.
hm without NTai.dll we can´t use it until recompile...right?
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Yes technically you cant test or generate enw cnfigs if I release just the c# program.

As for linux there are several issues:

A: I dont have linux (well, I have ubuntu but no networking, its just a vanilla OS off fo the CD with no way of getting new stuff onto it and not wifi drivers)

B: Nobody has come forward to ask for source to try to compile a linux version.

C: Nobody has even attempted to create Toolkit.mono yet. Without a mono version of NTai Toolkit there's no point in an NTai.so unless windows users make configs.

D: NTai isn't intended to be used as a skirmish AI for people to play against at the moment because there are no configs.[/ b] What I have released to date since XE9RC22 has been to encourage people to create configs and refine and share them between eachother, aswell as identify issues with the tools available for their improvement.
Kloot
Spring Developer
Posts: 1867
Joined: 08 Oct 2006, 16:58

Post by Kloot »

A Linux version would be good to complement the rather meagre assortment of AIs there (AAI/KAI/TSI if it's recompiled). Windows users at least get RAI too, but the Linux AI department is just really short-changed ATM.

(Plus, more people playing/able to play NTAI means more people willing to make configs for it.)
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

NTai was ported originally by Tobi (who mostly just changed include headers so they where case sensitive).

Since then I've not used any platform specific APIs that I'm aware of. Since the last NTai.so compilation I've only added my own code, and I've made use of the boost library specifically to keep platform portability, namely boost::shared-ptr and boost::thread/boost::thread::mutex/boost::thread::mutex::scoped_lock.


At the moment I see two problems with NTai on my machine.

Firstly in order to accomodate the threaded section I had to change my build function to operate in two stages, one preparing the build action and one that recieves the position from the thread.

This is a problem as this code was hurriedly copied in order to test the threaded portion. Whatsmore this moved code was originally in the Factor class, which was totally rewritten in XE9(except for the CBuild() function) as CManufacturer, which in my latest builds has again be made obsolete by my enw task system (except CBuild() function). So this CBuild() function I've split into two needs a lot of work to bring it into line.

Secondly, attacking didnt seem to work, and when I look closer, I see that all the unit types have efficiency values of 10, which is the minimum/default value. This could explain the problem as the thrat matrix is always empty as a result of this. Because the threat matrix is empty the attack routine simply decides not to bother and gives up.

In order to alleviate this problem temporarily ti may be best to just sue the UnitDef::power value spring uses to target units, which is a static value primarily based on cost (energy/k +metal IIRC where k isa constant I've forgotten that I know is less than 40 (40 is the value KAI used that I pinched *heehee*, its defined as ECON_RATIO where generally 1 metal == 40 energy for the vast majority of mods)).

However the redesigning of NTai and the movement of the codebase from a monolithic design to a highly modular design is going well. My new task system is entirely composed of object derived from the IModule class, and I've eradicated 8 or 9 obsolete classes, enums and definitions.

To date my scouting system is starting to crumble as its dependencies are made obsolete, as of the toolkit testbuilds the maphack turned the scouter class into a glorified raider class with its visit each mex behaviour. Atm its not a particularly nice looking behaviour. From now on I reccomend users dont set scouters, and try not to build scouters at all save as attack units so that they accompany attack groups.

I apologize if I seem incomprehensible in any of the above. I'm using IE6 atm as I'm in university and it has no spellchecker?!
McLoud
Posts: 36
Joined: 03 Sep 2006, 22:31

Post by McLoud »

I think it may rum over mono, but for that you must make a pure assembly (no mixed native/managed garbage, VS.Net has mixed building enabled by default). I was looking into it bu life got in the way (was was that quote again? life is what happens when you are busy making plans?)
User avatar
Fat Zombie
Posts: 61
Joined: 31 May 2006, 19:16

Post by Fat Zombie »

Hello there.

I'm not experienced at all with any sort of AI config, but I downloaded this and tried it in order to create an AI config for my fave mod, EE. However!
I seem to be having a problem at the first step. The "start the mod with the config" step. In so much that as soon as the game starts, it crashes to desktop saying "incorrect AI dll" and pointing to the NTai.dll file.

Could someone please tell me what obvious thing I am not doing; also, since you are more experienced, could anyone provide a decent EE AI config? Thank you very much.
tombom
Posts: 1933
Joined: 18 Dec 2005, 20:21

Post by tombom »

Fat Zombie wrote:Hello there.

I'm not experienced at all with any sort of AI config, but I downloaded this and tried it in order to create an AI config for my fave mod, EE. However!
I seem to be having a problem at the first step. The "start the mod with the config" step. In so much that as soon as the game starts, it crashes to desktop saying "incorrect AI dll" and pointing to the NTai.dll file.

Could someone please tell me what obvious thing I am not doing; also, since you are more experienced, could anyone provide a decent EE AI config? Thank you very much.
The current version of NTai that you can download hasn't been compiled for 0.74b3 or whatever version we're on. AF is working on some more improvements and stuff before he releases the next version.

This is a somewhat working config.
Post Reply

Return to “AI”