Page 1 of 1
Message to AI Creaters
Posted: 08 Nov 2005, 12:47
by DeathHawk
ok we have a bunch of working AIs each doin differnt things which is good.
Why dont all you guys have a go at building One AI all together like compromise betweens yas work together be a team.
Think of what An AI can do with all of you working together u guys can make it happen an Ai that can learn, an AI that can give us players a run for our money.
All you guys have to to do it get together and comprmise and keep adding to it making it smarter stronger and Suprising.
What you say???
Posted: 08 Nov 2005, 12:54
by AlienDNA
Don't forget that testing different AI's against eachother might give some really interesting results as well. From what I've been reading, all the developers take a good look at the code behing all those AI's, and they all learn from that. So I'd say that it's good to have multiple AI's going, because they can be tested against eachother, which will eventually show which one is best. Multiple AI's isn't as bad as you might think, as long as the developers interact, and they do.
Posted: 08 Nov 2005, 13:05
by submarine
i dont think there would be any benefit at all;
each ai is based on a different philosophy and we all code in a very different way. there is very few common ground as there aren´t any rules how to make an ai. its not about just putting together several parts...
i often discuss things with zaphod; but aftwerwards our implementations might look completely different
Posted: 08 Nov 2005, 20:19
by Caydr
Here here. Everyone work together, we'll have the best AI going.
Posted: 08 Nov 2005, 20:46
by AF
The whole point of it was competition. This was even envisaged by SJ when he decided to write the AI interface for a dll rather than have a single AI incorporated into spring.
Posted: 08 Nov 2005, 23:16
by hrmph
As long as the AI coders share information between each other (which is what is happening btw), this benefit is reached even with having multiple AIs in development.
Posted: 08 Nov 2005, 23:45
by jcnossen
The non-coders must also understand that experimentation is a big part of creating an AI, and it doesn't really matter if we do this together in a big project or seperate on our own, as long as we can see why eachothers experiments have failed/succeeded.
Posted: 09 Nov 2005, 00:50
by Caydr
A little while back I saw Alantai say he didn't want to "steal" a bunch of code from JCAI. If a segment of JCAI is better than what he's got, and he feels obligated NOT to use it, how is that furthering development?
Posted: 09 Nov 2005, 09:55
by Maelstrom
Its only Atlanti that has adversions to that. Most coders are fine with ripping off someone elses work. Means less work for them

. And you cant say that the metal handler class used by most, if not all AI's is not ripped code.
Posted: 09 Nov 2005, 11:48
by Triaxx2
I have no aversions, though I typically ask, and add Credits. *grins* I have a feeeling my credit list is going to be larger than the rest of my AI.
Posted: 09 Nov 2005, 20:28
by AF
To date I have multiple copies of NTAI, the experimental NTAI, the pure bred public release betas.
Then there are the cross hybrids. NTAI's using JCAI attack code or JCAI building placement or JCAI scouting. If you notice the onyl thign from JCAI that has stuck in the final release is the TGA code and a few things such as uchar and uint declarations.
This taught me a lot about JCAI's strong points and weak points.
Other things hwoever. Zaphods logging code. I refused to use it because I had already planned a more sophisticated logging system with html, and thigns I saw as essential such as a timestamp showing ingame time, and mapdetails.
Overrall I havent had much other use for code taking other than cains metal class.
So I do not have aversions, however I do find that there's either no point as the code does not perform to expectations or features specific to NTAI are required.
Posted: 10 Nov 2005, 03:58
by daraknor
I have been thinking about architecting a modular AI out. They already have some modularity, but I was thinking about going a level of decision making abstraction higher.
Here are the AI styles that I know about in development or use:
Recipe production list with single path for attack
Recipe production with basic logic tests (if metal > 100 then something)
Any others on the list?
What am I thinking of would be an AI that could make logical generalizations, and based on those generalizations decide what to do. It would also be nice to scout and keep statistics, and use those features for making decisions.
It could learn for itself which unit combinations are effective against others if it can record the members of a small battle. State information could also be stored, like "the commander killed 0 troops while underwater" or "Commander did 0 damage while underwater". Next time the With the mod and version stored, the AI could learn how to play each mod. If the commander can fight under water in another version, it may choose to stay and fight the next time.
Categorification like "artillery" could be used in assembling unit groups, and the AI could learn and adapt based on performance with hints from general descriptions of troops. At the very least, it should determine to build airplanes and boats if there is no land bridge between it and the enemy. Mixed water maps should put more weight on hovercraft, etc. At the high end, it may begin to use tactics similar to human players with hit and run missles killing slower troops while retreating (formation, tactic, property of relative units, category matching, and past performance).
Eventually it should recognize the tactics and playstyles of specific people, and adapt accordingly without needing handicaps for production. Those are the general aspects, and I have specifics available like Bayes rule functional code comparing object properties with performance in the same, related, and similar situations. (unit vs unit, tank+artillery vs tank+artillery, and open plains with vehicle plasma vs hills and kbot rockets)
I study some aspects of math and systems theory for AI design, making a Game AI would be a great test of some (broader) principles in design. Anyone else interested in discussing this?