Page 3 of 38
Re: A new artificial intelligent opponent - E323AI
Posted: 20 Jul 2009, 19:10
by Kloot
Looks like an elegant system, it nicely hides the complexity of updating the common tree- (or DAG-)like dependency chains between AI components. Something similar is in Spring itself actually; each world object maintains a recursive collection of listener objects that are updated upon that object's death. Good jaaab.

Re: A new artificial intelligent opponent - E323AI
Posted: 20 Jul 2009, 20:19
by imbaczek
i use boost.signals for all my generic callback, delegate and event handling needs in KPAI. you could also use libsig++.
Re: A new artificial intelligent opponent - E323AI
Posted: 21 Jul 2009, 07:12
by AF
Nifty, I myself use a message based setup, but wrapping that in a method liek that sounds like a neat idea
Re: A new artificial intelligent opponent - E323AI
Posted: 21 Jul 2009, 15:57
by 1v0ry_k1ng
or much simpler, put in a tag for transports that causes units with that tag to attempt to load enemy units with the commander=1; property.
then when they have somthing loaded move to the enemies startpos
instant comnap + bomb in AI, gg vs all other AIs (and noobs)
Re: A new artificial intelligent opponent - E323AI
Posted: 21 Jul 2009, 21:11
by Tim-the-maniac
its crashing for me at game start :/ heres infolog
http://pastebin.com/m17e0ce97
starts erroring with
Warning: AI for team 0 failed handling event with topic 1, error: -2
Re: A new artificial intelligent opponent - E323AI
Posted: 21 Jul 2009, 22:54
by eyu100
Tim-the-maniac wrote:its crashing for me at game start :/ heres infolog
http://pastebin.com/m17e0ce97
starts erroring with
Warning: AI for team 0 failed handling event with topic 1, error: -2
E323AI only works with the newest development version of Spring.
Re: A new artificial intelligent opponent - E323AI
Posted: 22 Jul 2009, 18:09
by Error323
imbaczek wrote:i use boost.signals for all my generic callback, delegate and event handling needs in KPAI. you could also use libsig++.
Ah right, something similar is achievable using that probably.
P.S. I'll be on holiday for a week, and afterwards a zillion ideas to work on :D
Re: A new artificial intelligent opponent - E323AI
Posted: 30 Jul 2009, 15:09
by Licho
Regarding unit statistics (what kills what etc) - such data are available..
There is global stats tracking system in place. Its mainly used for assesing game balance but could be used as input into AI. However afaik only CA and S44 take advantage of it.
SpringDownloader submits stats from all games to this central database.
Re: A new artificial intelligent opponent - E323AI
Posted: 02 Aug 2009, 12:20
by hoijui
ahh.. i didnt know that..
more info pls, Licho!!
this would be worth some writing in the AI pages of the Wiki.
How could we access this data?
Re: A new artificial intelligent opponent - E323AI
Posted: 02 Aug 2009, 12:50
by Error323
Yeah, I would be interested in this too. More information please! Though its a pitty BA and XTA don't use it.
Re: A new artificial intelligent opponent - E323AI
Posted: 12 Aug 2009, 22:58
by Master-Athmos
I can't get it to work currently. The AI seems to initialize just fine (and also creates those buildtree / costs logs but it doesn't move the Commander at all (neither with MA nor XTA). Using latest Spring version (beta)...
Re: A new artificial intelligent opponent - E323AI
Posted: 13 Aug 2009, 13:57
by Error323
Hi Master-Athmos,
What version of spring are you using exactly (git rev)?
Which version of E323AI are you using exactly (git rev)?
Are you running spring on windows or linux?
Could you attach the logfile of E323AI?
I have not tested E323AI with MA at all, so it could very well be possible that it doesn't work there.
Re: A new artificial intelligent opponent - E323AI
Posted: 13 Aug 2009, 14:10
by Master-Athmos
I used the latest build that buildbot provided - tried to use E323AI with two versions of the new 0.80 executables (using Windows)...
As for the AI itself I used the latest dll you linked in your opening post...
Re: A new artificial intelligent opponent - E323AI
Posted: 13 Aug 2009, 14:15
by Error323
Ah ok, well latest working verrsion in spring 0.80 is E323AI v2.11, I'm working on the windows compilation for it, just need to fix some more stuff. I'll release it today!
Re: A new artificial intelligent opponent - E323AI
Posted: 13 Aug 2009, 17:54
by Master-Athmos
Allright - if I can get it to work I'll add some videos showing it in action to the
Dot Wars AI videos...

Re: A new artificial intelligent opponent - E323AI
Posted: 13 Aug 2009, 18:09
by Error323
LOL love the dotwars, on another note I won't be releasing today I'm getting compiling errors on E323AI when compiling for windows, and I just can't fix them

Re: A new artificial intelligent opponent - E323AI
Posted: 13 Aug 2009, 19:44
by Error323
UPDATE v2.11 Thu Aug 13 19:42:46 CEST 2009
Version 2.11 (Ultralisk) is out, changelog:
- Massive refactored internals
- Lots of bugfixes (memleaks etc)
- Dynamic group merging
- Economic side also uses pathfinder now
E323AI SO/DLL:
E323AI-Ultralisk-v2.11
E323AI SRC:
E323AI@github
Thanks to kloot for compiling for windows!
Have fun!
Re: A new artificial intelligent opponent - E323AI
Posted: 13 Aug 2009, 22:15
by Master-Athmos
It crashed for me after a while:
Infolog:
Code: Select all
[ 12381] Spring 0.80+.0.0 (0.80.0-5-gc2da36c-cmake-mingw32) has crashed.
[ 12381] Exception: Breakpoint (0x80000003)
[ 12381] Exception Address: 0x77c05b61
[ 12381] DLL information:
[ 12381] 0x00400000 spring
[ 12381] 0x7c910000 ntdll
[ 12381] 0x7c800000 kernel32
[ 12381] 0x10000000 DevIL
[ 12381] 0x77be0000 MSVCRT
[ 12381] 0x01ba0000 ILU
[ 12381] 0x77da0000 ADVAPI32
[ 12381] 0x77e50000 RPCRT4
[ 12381] 0x77fc0000 Secur32
[ 12381] 0x68fc0000 GLU32
[ 12381] 0x5f0d0000 OPENGL32
[ 12381] 0x77ef0000 GDI32
[ 12381] 0x7e360000 USER32
[ 12381] 0x736d0000 DDRAW
[ 12381] 0x73b30000 DCIMAN32
[ 12381] 0x76c50000 IMAGEHLP
[ 12381] 0x6fbc0000 mingwm10
[ 12381] 0x7e670000 SHELL32
[ 12381] 0x77f40000 SHLWAPI
[ 12381] 0x71a10000 WS2_32
[ 12381] 0x71a00000 WS2HELP
[ 12381] 0x6e940000 libgcc_s_dw2-1
[ 12381] 0x01bc0000 SDL
[ 12381] 0x76af0000 WINMM
[ 12381] 0x7c340000 MSVCR71
[ 12381] 0x66fc0000 freetype6
[ 12381] 0x61b80000 zlib1
[ 12381] 0x6ed80000 glew32
[ 12381] 0x6b180000 vorbisfile
[ 12381] 0x63e00000 vorbis
[ 12381] 0x01c10000 ogg
[ 12381] 0x01c30000 OpenAL32
[ 12381] 0x76330000 IMM32
[ 12381] 0x773a0000 comctl32
[ 12381] 0x5d450000 comctl32
[ 12381] 0x746a0000 MSCTF
[ 12381] 0x10d00000 GameHook
[ 12381] 0x02a20000 lgscroll
[ 12381] 0x78130000 MSVCR80
[ 12381] 0x7c420000 MSVCP80
[ 12381] 0x77660000 NTMARTA
[ 12381] 0x774b0000 ole32
[ 12381] 0x71b70000 SAMLIB
[ 12381] 0x76f20000 WLDAP32
[ 12381] 0x75250000 msctfime
[ 12381] 0x69030000 atioglxx
[ 12381] 0x77bd0000 VERSION
[ 12381] 0x02da0000 atiadlxx
[ 12381] 0x778f0000 SETUPAPI
[ 12381] 0x76bf0000 WINTRUST
[ 12381] 0x77a50000 CRYPT32
[ 12381] 0x77af0000 MSASN1
[ 12381] 0x72c90000 wdmaud
[ 12381] 0x72c80000 msacm32
[ 12381] 0x77bb0000 MSACM32
[ 12381] 0x77ba0000 midimap
[ 12381] 0x73e70000 dsound
[ 12381] 0x76f90000 CLBCATQ
[ 12381] 0x77010000 COMRes
[ 12381] 0x770f0000 OLEAUT32
[ 12381] 0x73e40000 KsUser
[ 12381] 0x05970000 ct_oal
[ 12381] 0x02f80000 CTDPROXY
[ 12381] 0x719b0000 mswsock
[ 12381] 0x66710000 hnetcfg
[ 12381] 0x719f0000 wshtcpip
[ 12381] 0x61a40000 AIInterface
[ 12381] 0x10d10000 SkirmishAI
[ 12381] 0x02f10000 hook
[ 12381] 0x59dd0000 DBGHELP
[ 12381] Stacktrace:
[ 12381] (0) C:\WINDOWS\system32\MSVCRT.dll(assert+0x5fb) [0x77C05B61]
[ 12381] (1) D:\Spring80test\AI\Skirmish\E323\0.1\SkirmishAI.dll [0x10D378C8]
[ 12381] (2) D:\Spring80test\AI\Skirmish\E323\0.1\SkirmishAI.dll [0x10D233F1]
[ 12381] (3) D:\Spring80test\AI\Skirmish\E323\0.1\SkirmishAI.dll [0x10D11D32]
[ 12381] (4) D:\Spring80test\AI\Skirmish\E323\0.1\SkirmishAI.dll(handleEvent+0xda) [0x10D219EA]
[ 12381] (5) D:\Spring80test\spring.exe [0x00839F36]
[ 12381] (6) D:\Spring80test\spring.exe(skirmishAiCallback_Unit_CurrentCommand_getTag+0xb59a) [0x00856FFA]
[ 12381] (7) D:\Spring80test\spring.exe [0x00867659]
[ 12381] (8) D:\Spring80test\spring.exe(skirmishAiCallback_Unit_CurrentCommand_getTag+0xe8c4) [0x0085A324]
[ 12381] (9) D:\Spring80test\spring.exe [0x006AB886]
[ 12381] (10) D:\Spring80test\spring.exe [0x006AC81B]
[ 12381] (11) D:\Spring80test\spring.exe [0x006AC8C7]
[ 12381] (12) D:\Spring80test\spring.exe [0x006A80AE]
[ 12381] (13) D:\Spring80test\spring.exe [0x00752F2D]
[ 12381] (14) D:\Spring80test\spring.exe [0x00753050]
[ 12381] (15) D:\Spring80test\spring.exe [0x0075043E]
[ 12381] (16) D:\Spring80test\spring.exe [0x00756DF9]
[ 12381] (17) D:\Spring80test\spring.exe [0x007763C2]
[ 12381] (18) D:\Spring80test\spring.exe [0x007507B8]
[ 12381] (19) D:\Spring80test\spring.exe [0x00422482]
[ 12381] (20) D:\Spring80test\spring.exe [0x0042370C]
[ 12381] (21) D:\Spring80test\spring.exe [0x007E5A2A]
[ 12381] (22) D:\Spring80test\spring.exe [0x007EC827]
[ 12381] (23) D:\Spring80test\spring.exe [0x007E4855]
[ 12381] (24) D:\Spring80test\spring.exe [0x007E4D26]
[ 12381] (25) D:\Spring80test\spring.exe [0x00869DF8]
[ 12381] (26) D:\Spring80test\spring.exe [0x0040124B]
[ 12381] (27) D:\Spring80test\spring.exe [0x004012B8]
[ 12381] (28) C:\WINDOWS\system32\kernel32.dll(RegisterWaitForInputIdle+0x49) [0x7C817067]
Small note:
In MA its performance wasn't too outstanding. Will try it in XTA later...
Re: A new artificial intelligent opponent - E323AI
Posted: 13 Aug 2009, 22:45
by Error323
Hmmm I'll try to find out whats going on, there have been some changes regarding to the float3 vector. Anyway about MA I'm surprised it works even =). UnitCategorization has been tailormade to XTA so far. The categorizationtable is constructed already, but not parsed yet by the system. Once this is the case (in the nearby future) it will perform a lot better.
Although do note iirc MA doesn't allow for assisting labs? If so E323AI will not perform good anyway. It requires a different kind of A.I.
Re: A new artificial intelligent opponent - E323AI
Posted: 13 Aug 2009, 22:51
by hoijui
it is always better to incldue the whole infolog, not just the stack trace, and use pastebin and include only the link. this makes the thread less cluttered, and makes translating it on the buildbot easier.