Page 1 of 2
QAI Advanced AI Thread
Posted: 28 Mar 2006, 04:30
by QMan
Welcome to the new QAI Spring AI thread.
QAI will be a comprehensive AI suite, inlcuding unit learning based on a variety of factors, a robust economy management system, and advanced planning and attack routines.
So far, things are in a very prototype stage, and functionality is limited. Current source is
V0.03, and
DLLs.
Current status:
Overall:
-[Complete-NotTested]Mod independent
-Dynamic unit selection based on current world state
Economy:
-Reliably maintains metal and energy levels.
-Dynamic unit picker up and running for most units.
-Need to add defense buildings to dynamic unit picker.
Building Placement:
-Sector based building placement.
-Base growing as room is needed.
-[Not Started] Defense building selection and placement
-[Not Started] Wall selection and placement (dragon teeth)
Scouting:
-[Complete] Basic scouting, with sector assessment.
-[Not Started] Advanced scouting by any unit in the region.
Attacking:
-[In Progress] Sector based enemy information.
-[In Progress] Skirmish mode (outlying buildings are attacked)
-[In Progress] Selective invasion mode (certain building types attacked, such as factories, mexes, energy plants, constructor units, etc)
Posted: 28 Mar 2006, 04:51
by FizWizz
yeah, and KAI and NTAI (and SAI and AAI and this and that and the other) also claim that they will be robust, advanced, flexible, intelligent, etc.
It's good to see another AI enter the competition though, I'm looking forward to when the AI can give a good fight.
Posted: 28 Mar 2006, 04:53
by QMan
Another question:
How can I get the UnitDef from a UnitDef ID, rather than the standard unit ID assigned from a unit.
I know currently getUnitDef(int id) gets it from the unit id assigned to each new unit, and getUnitDef(string unitName) gets it from a string with the unit name.
Example: I want the UnitDef associated with ID 4, which in XTAPEV4 would be ARMACK.
-QMan
Posted: 28 Mar 2006, 07:33
by QMan
My goal is to first work out the AI economy (which is nearly done), then focus on defensive building placement (which is just starting), and lastly on scouting/attacking (which I haven't thought about at all yet).
On a side note, is there some special trick to posting a file on FileUniverse? All my attempts to use the "File Upload" buttons brought up a 404 error after submitting the file and no file appearing.
-QMan
Posted: 28 Mar 2006, 10:07
by Min3mat
get it spamming attack forces so it can be said to be a skirmish AI. in AA (best mod atm IMHO) defenses are far better with unit backup. although getting it to stop the spam when a player has a strong defenses so it starts stockpiling units and teching will be the hard part :)
Posted: 28 Mar 2006, 20:09
by AF
when the files been uploaded it should be at the top fo the latest files list and in the public section.
Also why you would want to get a untidef based on the unitdef id and not any other means I dunno but soemthing like getting the unitdeflist and then the unitdef would be array[unitdef id]
Anyways Making claims like that sint gonna get you anywhere, and remember what you first plan isnt necessarily the best way fo doing it. Look at TAI to see that, or listen to krogothe as he constantly rewrites his systems in KAI.
That and finally I am happy that Epic will be the first AI that isnt a set fo initials infront of the word AI
KAI
AAI
JCAI
OTAI
ZcAIn
SAI
NTAI
TAI
MyAI
etc.......
Posted: 28 Mar 2006, 20:18
by QMan
Anyway, I figured out the UnitDef ID thing. It was a matter of using GetUnitDefList(list) and indexing into list with the UnitDef ID.
We'll see how far I can get on my initial design, and then I'll jump into massive revisions. :)
-QMan
Posted: 28 Mar 2006, 23:28
by Veylon
Well, good luck! It takes a lot of time and imagination to do AI programming, and we could all use the challenge.
Posted: 29 Mar 2006, 19:47
by QMan
Status Updated!
Posted: 29 Mar 2006, 20:14
by AF
Another threat matrix AI! Maybe I shouldnt have suggested using threat matrixes in that first thread, then maybe it wouldnt have pervaded so many of the AI projects
Posted: 29 Mar 2006, 21:14
by Triaxx2
So, it's all AF's fault huh... Kidding. If I could ever get my AI to work I'd release it as something other than an initial followed by AI, but...
Posted: 30 Mar 2006, 03:04
by QMan
It's a very rough matrix though, brazilian battlefield is 4x4 or 8x8 depending on my sector size.
Mostly I use it to determine where the enemy base is, as well as where enemy metal extractors are in the periphery sectors.
-QMan
PS Status updated again!
Posted: 30 Mar 2006, 20:14
by AF
hmm you're working fast QMan, dont you have a job/exams todo?
And could you provide a copy of that visio document in some other format? Something you could expect anyone with Office or OpenOffice to be able to view....
Posted: 30 Mar 2006, 22:15
by QMan
I do have a job, in fact. I work as the lead simulations engineer on large project for my company. I've been spending about 4 hours a night working on the code. So far, the code is about 2000 lines long.
Oh, I also finished a bunch of the attacker code last night, but it's still buggy as heck, so I'll probably release that tonight or tomorrow.
As for the Visio thing, check out
Microsoft Office Viewers.
Posted: 31 Mar 2006, 20:15
by AF
Really you should be posting stuff to the world in a worldly format, somethign more than 1% of people can view.
That office viewer stuf only views visio documents made with visio 2002 or older, it wotn open the files in your source downlaods, adn th format is all in binary so i cant flick through in notepad++ and get the jist of it like I can with other xml based formats
Posted: 01 Apr 2006, 00:14
by QMan
They were originally for my own reference, but I decided to release them anyway.
Which of these file types would you like (or can you open?):
XML Drawing (.vdx)
GIF Image (.gif)
Visio 2002 File (.vsd)
Scalable Vector Graphics (.svg)
Webpage (.html)
On a side note, does UnitDamaged() get called:
A) MyUnit hits EnemyUnit & EnemyUnit hits MyUnit
or just
B) EnemyUnit hits MyUnit
?
-QMan
Posted: 01 Apr 2006, 01:12
by jcnossen
Why is it that almost every AI coder starts here with the idea "This is going to be my AI, and it is more advanced and more comprehensive than all your other guys are doing, even though I wrote little code for it already"?
I would say the users and other AI coders who review the algorithms and performance determine whether it is advanced or not: saying it in advance is quite pointless.
We have seen it with AF, krogothe (both have good AIs by now but also changed their attitude towards this), and now QMan...
ofcourse I'm not saying it will not be advanced, but making the claims in advance?
But good luck anyway, another AI is always nice as it can raise competition even further.
Posted: 01 Apr 2006, 02:02
by QMan
I never made any claims to the "advancedness" of the other AIs. They are also very advanced by my book. There is no such thing as a simple AI. Hell, each of the three major AIs (NTAI,OTAI,AAI) has surpassed even the original TA AI by leaps and bounds, each with their own unique perspective and algorithms, and they should be commended.
I'm not making any claims that mine is, or will be, any better than anyone else's AI algorithms. Everyone should be proud of what has been accomplished here, as the field of RTS AI is pushing the envelope as we speak (err type ;] ).
I'm in this for fun and to teach myself C++, not for any competitive reaons. If people enjoy what I have written, so much the better. :)
-QMan
PS. Much code has been written :)
Posted: 01 Apr 2006, 02:24
by jcnossen
There is no such thing as a simple AI.
So, should we call every AI an advanced AI? That would make using "advanced" a bit redundant
But I see I incorrectly judged your attitude, so I hereby correct my earlier post :)
However we did in fact had a number of people claiming their AI would be better than anyone elses in advance :)
Ofcourse AF's Epic will actually be better than anything else, everyone knows that *kuch*

Posted: 01 Apr 2006, 02:38
by Triaxx2
.gif is good.
I'd even take screenshots if you're feeling lazy. JPG format for those though.