Fight club (AI's) - Page 3

Fight club (AI's)

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

Moderators: hoijui, Moderators

User avatar
Sgt Doom
Posts: 144
Joined: 19 Jun 2006, 10:52

Post by Sgt Doom »

Jack wrote:
AF wrote:Hack, that is assumign su AI devs have unlimited time motivation resources and commitment.

If such a system where created I would nto give consent for NTai or any other AI thatc ame from em to eb allowed to aprticipate. That sort of online system would make thigns worse and encourage the atmosphere already in palce which isnt encouraging friendly comeptition at all, its infact killing off AI's.
It would be optional, of course. Some people might not want to compete, for whatever reason. For example, I understand that some AIs are intended to compete with humans, not other AIs, so the results of an AI vs AI tournament might not be representative of the actual quality of the work. I should have made that clear.

This idea is really just a general extension of the usual open source philosophy, in which code is improved by having many contributors. The difference between this case and archetypal open source projects such as the Linux kernel is that we have a way to measure which code is better: we can run a tournament and see who wins!

I am sure that it is a great deal of work to build an AI from scratch - I have not tried to do this - but if AIs are open source and released under the GPL, then one AI developer can improve on another's work, standing on the shoulders of an existing giant to make something even better. All the developers retain copyright and credit for their work, of course, just like Linux. If the original developer takes an open source AI in a direction that you don't like, you can fork the AI and make your own version.

However, the original developer of an AI is able to opt out of this ecosystem entirely, by not releasing AI source code, or by choosing a restrictive licence for the source... i.e. not GPL.

I think that the results would be very interesting, and could create an open source AI development community with no parallel that I know of. However, perhaps AI development is not amenable to this model, despite the possibility of using tournaments to evaluate AIs against each other. I don't know. If anyone would be interested in competing in such a system, then I encourage them to post below. It's opt-in, not opt-out.
But what mod to test them? Not all of them work for a lot of mods.

Also, AAI learns. So if someone were to play 20 games against it before entering it onto the tournament, it would own everything.
hollowsoul
Posts: 665
Joined: 06 Jun 2006, 19:49

Post by hollowsoul »

So u are saying if nearly everyone stopped using your AI u would stop coding it ?

Rather than work away slowly , usin the ai yourself & testing out ideas. Until u catch up with the other main AI ?
  • Should be coding for yourself (first) & then for other peep. Not the otherway around.

    And some peep would just like to see what happens when u stack the AI's against each other for curiosty sack. ( U are not makin money off codin AI & peep download the AI for free (so dont pay for it, its not like an AI is gonna dissappear if peep dont use it as much). AI will only disappear if the coder gives up


    To be honest sounds like unhealthy AI competation as it is, cant agree to have a extra option, that users go outof thier way to turn on. Incase the users stop using your AI ?? How many users only play against 1 AI ? Versus playin against a afew different ones i.e to spice the skirmish match up

    Or if a new peep is makin an AI, he can put his one & others on a level playin ground & spectator the match to see what his ai needs work on (the most)
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

As far as I have seen in my expereince, players dont mix and match they match and match aka 3 AAI's or 3 KAI's never KAI+AAI+NTai vs humans unless they're evaluating AI's

btw AI have to have the GPL license if they want to use spring and not violate the Spring GPL license.

Also as an AI gets better its codebase tends to get bigger. Just look at the dismal response to me asking for people to help continue NTai while I moved to other areas of development and I got absolutely no response at all
User avatar
Acidd_UK
Posts: 963
Joined: 23 Apr 2006, 02:15

Post by Acidd_UK »

TBH AF, saying 'I need someone to continue work on NTAi while I do a better AI is hardly going to encourage people to work on it, is it?' As for the GPL argument, you're right, yet I still can't get a copy of the KAI source...

I like Jack's point that you don't need to code an AI from scratch, you just need to extend the features of an existing AI. If all the AIs actually were opensourced (as they should be under Spring's GPL), then you could mix and match parts of the existing AIs to create a new hybrid AI, then you'd just need to write the glue code to hold it all together. Furthermore, with a library of medium-level routines (the metalspot-findingalgo is a good example), it's not as if a new AI developer would have to start totally from scratch if they didnt want to. THe possibilities for improving the AIs are greatly increased with a more open AND competetive environment. Currently, it's harder for someone to get into AI programming for exactly the reasons AF says a competetive environment would create.
AF wrote:You really think 'then AI devs would just make their AI's harder to compete its that simple' is a valid reason?! You really dont duenrstand the amount of work that has gone into AAI/KAI/NTai. Newcoemrs already have a huge mountain to climb if theyw ish to compete with these 3 AI's.
But by opensoureing all the AIs then they'd have amuch better starting point than they do already. By having a regular automatic AI competition, they'd be able to test their AI more easily and in a wider range of scenarios than they may otherwise be able to, which would help them to improve their AIs behaviour.
AF wrote:What you propose encourages aggressive competition aimed at monopolistic situations, that demoralises AI devs and crushes newcomers. AI devs will either win and have a monopoly, or get demoralised and give up with nobody to replace them and no newcomers to take up the challenge.
This is exactly the opposite of what I think would happen. The monopoly would only hold if everyone gave up and didn't try to improve their AI. If this was the case, then there'd only be one Spring AI which would have been the first one ever created. There will always be people that look at something and think 'I can do better than that', as I'm sure. I guess AF, Submarine and Krogothe all thought this before they made their AIs.
AF wrote:There is a difference between friendly competition and agressive cold hearted comeptition. We want an AI community not an AI cold war, any attempt to encourage such a thinG would ultimately leave the spring community with a problematic AI monopoly where little development is done and the AI dev can do whatever they want regardless of wether he needs to change his AI or not because they ahve the only AI left.
Again, I disagree completely - if there was one AI that was at the top of the 'league table' then it would only serve to make the AI coders look at the replays, find out why it performs so well, and figure out ways to beat it. It would encourage innovation, rather than blinkered development along sub-optimal routes.

Ultimately, you have to ask yourself why you develop an AI. I would suggest that the goal of an AI is to try to create the best non-cheating TA-player possible. As such, competition seems like a vital part of the development.

Edit - one final point:
AF wrote:If such a system where created I would nto give consent for NTai or any other AI thatc ame from em to eb allowed to aprticipate. That sort of online system would make thigns worse and encourage the atmosphere already in palce which isnt encouraging friendly comeptition at all, its infact killing off AI's.
Since NTAi is OS, you can't stop someone using the source code to do this - that's one of the principles of open source. People being overly protective of their code is one of the huge problems that needs to be overcome.
Last edited by Acidd_UK on 21 Jul 2006, 18:22, edited 1 time in total.
User avatar
Acidd_UK
Posts: 963
Joined: 23 Apr 2006, 02:15

Post by Acidd_UK »

Sgt Doom wrote:Also, AAI learns. So if someone were to play 20 games against it before entering it onto the tournament, it would own everything.
This isn't true - while AAI learns, it does so in a fairly limited capacity. It could be uploaded with default learning files and allowed to learn in whatever way it wanted. If this causes it to start winning regularly after a few games, then so be it - that's the idea isn't it?
User avatar
1v0ry_k1ng
Posts: 4656
Joined: 10 Mar 2006, 10:24

Post by 1v0ry_k1ng »

people are saying that KAI has crushed the market, but I wouldnt agree, AAI is just as good in its own way, it had diffrent goals and plays in a diffrent way. there being one AI that wins simply due to agressive attack shouldnt make all the othrs devs give up.. it should encourage them to study the opposing AI and find a way of countering its attacks (ie, an AI that rushed is combated by an early llt)

the one thing all the AI's lack is the D-gunning function. THIS IS SO CRIPPLING. D-gun is the most useful thing ever (with limit off, boo to limit), an AI that effectivly used their comm should be top of everyones shopping lift.

NTAI 8 I recall had d-gunning, which while lag-tastic was pretty ownage, watching ntais comm storm through gangs of l1 kbots.. the comm, the gamewinning unit, is so under used by AI..
Egarwaen
Posts: 1207
Joined: 27 Feb 2006, 21:19

Post by Egarwaen »

AI-vs-AI play is pointless. You want an AI that gives an engaging game against a human, not one that plays a perfect game or that plays well against another AI.

A good example of this is Commander use. The Commander in a human-played game of TA is balanced by the fact that he requires a lot of micro. Like all micro-intensive units, if you're working with him, you can't be doing other things elsewhere. (Yes, this is a valid balance technique) The problem is that the AI doesn't have this limitation. They can go micro-mad with the Commander and do other things at the same time.

An AI designed for optimal play would probably use the Commander very aggressively, have a high energy surplus for D-Gun use, and have very precise unit movement to keep the Commander's line of fire on heavy enemy units clear. Or it would just expand as aggressively as possible with its Commander, building mexes, radars, and LLTs/MTs as it went, until it hit your defences or base and blew a great big hole in them.

This would be very effective against other AIs, but also wouldn't be much fun to play against. And wouldn't be an effective strategy for a human because they'd lose out on macro time.

(IIRC, this was one of the problems with the original OTA AI - the one that shipped with the game. It was way too aggressive with its Commander, and often wound up getting within D-Gun range of the player's Comm a few minutes into the game, which resulted in both blowing up. Not fun at all.)
User avatar
NOiZE
Balanced Annihilation Developer
Posts: 3984
Joined: 28 Apr 2005, 19:29

Post by NOiZE »

1v0ry_k1ng wrote:people are saying that KAI has crushed the market, but I wouldnt agree, AAI is just as good in its own way, it had diffrent goals and plays in a diffrent way. there being one AI that wins simply due to agressive attack shouldnt make all the othrs devs give up.. it should encourage them to study the opposing AI and find a way of countering its attacks (ie, an AI that rushed is combated by an early llt)
QFT
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

First of all I'm taking Ivory King out the epic thinktank, as he's made more posts in this thread than an entire forum at darkstars.

Secondly, Acidd, we would ahve onyl a single AI right now if events had turned out slightly differently.

If Zaphod had never stumbled across spring we'd all be playing TAI.

If JCAI had been released a month earlier we'd all be playing JCAI.

If NTai had an attack system that worked in tis first release we'd all be playing NTai. (early NTai pwned early JCAI but its attack system was primitive and thus it had the firepower and the economics but not the intelligence to destroy JCAI)

It is the competition between JCAI and NTai that has allowed KAI OTAI ZcAIn SAI and AAI to enter the ring and compete too.
TBH AF, saying 'I need someone to continue work on NTAi while I do a better AI is hardly going to encourage people to work on it, is it?' As for the GPL argument, you're right, yet I still can't get a copy of the KAI source...
I got replies for plenty of the other stuff with plenty of people willing to come forward, and i explained that i would co-develop for a while and tell them everything I had intended and how NTai works or was intended to work, and that the handover would be a gradual process.

While KAI hasnt broken the market, it is very close to being able to do so. It has taken a lead, and behaved very competitively. For example I had an issue with build placement algorithms and submarine gladly copy pasted a function from AAI source and sent it to me by email to help ^^ solvign the issue in a matter of minutes. I also ahd a problem with antistall algorithm, and despite firenu and tournesols best efforts they where unable to help me due to non disclosal agreements with KAI, despite tournesol having written 2 perfectly working algorithms that progressively predicted what future resources would be at a given time. Krogothe si even worse, when i speak to him he side tracks and starts saying I should implement mex management in NTai instead of reading positions from the top down off of an array, despite me telling him about the CMetalHandler class, and he eventually agrees only to forget when I next speak with him.

At the opposite end of the spectrum is Veylon who I pm'ed about sharing data after I noticed a lot of XE8 data was identical to OTAI 1.13 data, which lead to a handful of fixes for saving co-ordinates which we applied to krogothes class (yet to be seen added), agreed on a versioning system based on filenames for shared data, talked about numerous things, and even drew up a class and system for data to be shared across multiple instances of NTai/OTAI for allied collaboration.

@Submarine : the float3 class can change between versions of spring, thus any binary caches of float3 objects become distorted and liable to corruption as a result. I and veylon instead converted the float3 into a pfloat3 class that had just x/y/z float components.
User avatar
Acidd_UK
Posts: 963
Joined: 23 Apr 2006, 02:15

Post by Acidd_UK »

AF wrote:It is the competition between JCAI and NTai that has allowed KAI OTAI ZcAIn SAI and AAI to enter the ring and compete too.
Sorry if I'm missing something, but do we agree then that competition generates innovation? If so then I'm happy :-) As for Krogothe being so protective of his source, well that's his problem really - to use the Spring AI headers as you say, he needs to GPL his code too, and thus release it as open source. All we can do is pester him about it until he does the right (and legal) thing required of him...

Egarwaen - I take your point, however, it's a lot easier to cripple a good AI than it is to improve a bad AI. When we reach the point where we have AIs that can routinely beat very good human opponents without cheating, then we can look at ways to artificially cripple them to set their difficulty level. Until that time though, we should try to improve AIs as quickly as possible imho.

Finally I want to make it clear I'm not attacking anyone persoanlly here, I'm just trying to show how I see open source and AI competition combining to everyone's advantage. Please don't anyone think I'm personally attacking them. I love you all!
Egarwaen
Posts: 1207
Joined: 27 Feb 2006, 21:19

Post by Egarwaen »

Acidd_UK wrote:Egarwaen - I take your point, however, it's a lot easier to cripple a good AI than it is to improve a bad AI. When we reach the point where we have AIs that can routinely beat very good human opponents without cheating, then we can look at ways to artificially cripple them to set their difficulty level. Until that time though, we should try to improve AIs as quickly as possible imho.
Based on what I remember from the assorted AI-related classes I've taken... Not true. "Scaling back" a very good AI to the point where it's fun for a human to play against could be very difficult, especially if the only way the AI is good is because it exploits its ability to pay attention to the entire battlefield and issue orders very quickly.

And you're probably not going to get an AI that can routinely beat very good human opponents without cheating. That's like saying "one we can jog to the moon, we can see about getting KAI and AAI to stop engaging in copyright violation".
User avatar
NOiZE
Balanced Annihilation Developer
Posts: 3984
Joined: 28 Apr 2005, 19:29

Post by NOiZE »

nobody is going to sue them.....

So talk about GPL violation is a bit out of the question IMO
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

One can bring into question all the rights and restrictions imposed by Springs GPL license by giving KAI as an example of them not enforcing their license, thus making the GPL useless and in many countries waving the rights granted to the spring team by that license.

Just as if a company uses someone for piracy then it's useless if that company is turning a blind eye to piracy of another product it has. The courts would rule against the company in most cases.

Thus anyone can do anything they want regardless of the GPL because the spring team are not enforcing their license.
User avatar
NOiZE
Balanced Annihilation Developer
Posts: 3984
Joined: 28 Apr 2005, 19:29

Post by NOiZE »

AF wrote: Thus anyone can do anything they want regardless of the GPL because the spring team are not enforcing their license.
Exactly.
User avatar
Erom
Posts: 1115
Joined: 25 Apr 2006, 05:08

Post by Erom »

Acidd_UK wrote:Ultimately, you have to ask yourself why you develop an AI. I would suggest that the goal of an AI is to try to create the best non-cheating TA-player possible.
NO! That isn't everyone's goal! And that goal shouldn't be forced on an AI! Maybe you want a non cheating AI, but I might want an AI that gives me a good game while minimizing CPU usage, and that might require cheating. IMO, that's what wrong with this idea: it forces a single set of design goals, which should not be universalized like that.

Sorry to jump the thread back a bit...
User avatar
Acidd_UK
Posts: 963
Joined: 23 Apr 2006, 02:15

Post by Acidd_UK »

Egarwaen wrote:"Scaling back" a very good AI to the point where it's fun for a human to play against could be very difficult, especially if the only way the AI is good is because it exploits its ability to pay attention to the entire battlefield and issue orders very quickly.
We're nowhere close to that stage. And I don't think it's possible for an AI to only be good because it can pay attention to 'everything at once' - that's the case with all the current Spring AIs - none have a screen-sized 'attention-area' or anything similar.
Egarwaen wrote:And you're probably not going to get an AI that can routinely beat very good human opponents without cheating.
I think the goal of AI development should be to develop a human-competetive AI.
Egarwaen wrote:That's like saying "one we can jog to the moon, we can see about getting KAI and AAI to stop engaging in copyright violation".
I've had a couple of beers, so sorry if I'm just being stupid, but I don't understand what that's supposed to mean...
submarine
AI Developer
Posts: 834
Joined: 31 Jan 2005, 20:04

Post by submarine »

well my primary goal was (or still is) to experiment with learning (and to give players a decent ai that works with most mods) - many things could probably be solved easier by predefined scripts or auto detection (like kai does) but i wanted to find out how far i can get with a system based on learning

af's behaviour caused some competition (and lead to the decision to keep aai closed source for a while). but now i think i've proven my points and aai is superior compared to ntai (please just take it as my personal opinion, i dont want to start another flame-war...) so there's no reason to keep source closed anymore.

on the other hand i can understand krogothe's decision quite well and i'm happy that the spring devs dont worry about closed source either

ok thats all for now, i'm celebrating my 22th birthday :)
User avatar
1v0ry_k1ng
Posts: 4656
Joined: 10 Mar 2006, 10:24

Post by 1v0ry_k1ng »

Af, you booted me outa think tank? you never even told me where the unlocked forum was and I couldnt find it.. I assumed it wasnt up.

The stuff about licensces tbh, isnt going anywhere because Spring is currently free, and where theres no profit there is no need to be protective over code and rights.. it falls down to what the majority of players feel is right, and I doubt that many people will be that pissed that KAI is closed source.. He said the source probs be released when its finished, and isnt he doing it for a uni project? in which case, he dosnt want there to be other people using the same code as him as then he cant take credit for innovation, or somthing.

I usualy use several AI's in a game, usualy 3x KAI vs me, AAI, NTAI, that way you get interesting diffrent tactics from your allies (assuming you protect them to a degree) and an agressive straightfoward attacker as per any rts.

I think competition (FAIR competetion) is one of the things that drives devs on though.. an incentive to keep hammering away. I guess some of the fun drops away when one group rapes the other out the limelight, but when KAI is finished, other AI's will be still under dev and probs overtake it. If supcom dosnt steal the whole player base.

AI always can multitask. the reason this isnt unbalancing is because though it can make lots of decisions quickly, it dosnt necciserly make the RIGHT ONES. building defences in the wrong place, sending units into minefields, if an AI dosnt recognise a mistake it will do it reproctively. an AI multitasking is a fair tradeoff vs a humans ability to think in context.

when will someone make an AI taunt? every time it defeats a player say, it plays a message ("OH, YOU DIDNT KNOW!!") or when it destroys a structure worth more than 1000 metal and when it kills a comm etc etc.. would that be hard to do? Spoonbot for tribes 1 was awesome just because it spammed taunts.

Everyone takes how people treat or speak of their AI to heart to themselves.. but really! AI is not a popularity contest.. I didnt even know the "Big Names" in TA spring when I first tested the AI's, and Most people choose their AI by how fun it is to play and how few dumb mistakes it makes.. KAI is very popular because it minimalises dumb mistakes, rather than innovates in uber eco or attack sequences.

having a varying pool of AI's is very very cool, in a skirmish, using a selection of AI's ensures its more like a real game (everyone diffrent) as someone said.. and whoever said "AI vs AI is stupith!!1" is wrong, AI vs AI is a good way of testing an AI's capabilities against a player of its own level, allows it to get a good learn table (AAI) and gives an accurate measure of which AI is the hardest to fight, the most fun to fight etc etc.. AI fighting rulez
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Ivory, the forum was hidden untill you had been added, go look now http://www.darkstars.co.uk I havent kicked you out just yet, just a notification.
Egarwaen
Posts: 1207
Joined: 27 Feb 2006, 21:19

Post by Egarwaen »

Acidd_UK wrote:We're nowhere close to that stage. And I don't think it's possible for an AI to only be good because it can pay attention to 'everything at once' - that's the case with all the current Spring AIs - none have a screen-sized 'attention-area' or anything similar.
My point is that that enables AI behaviours that you simply would not see from a human opponent and which can, in some cases, lead to drastically superior strategies. IE, the tendency towards very aggressive Commander-use, which in turn leads to AI devs including things like Commander leashing.
Egarwaen wrote:And you're probably not going to get an AI that can routinely beat very good human opponents without cheating.
I think the goal of AI development should be to develop a human-competetive AI.
And if you manage to get one that does that without cheating, doesn't use so many CPU cycles that the game becomes unplayable, and is a fun opponent, there's a number of prominent CS researchers that will shake your hand, and a number of game design companies that will give you a job.

Game AIs tend to be very predictable (too much randomization tends to lead to them doing stupid stuff), which is doom against an even remotely good player even when the AI cheats outrageously.
I've had a couple of beers, so sorry if I'm just being stupid, but I don't understand what that's supposed to mean...
I'm saying that you've set a near-impossible goal as a prerequisite for a sane, achievable goal.
Post Reply

Return to “AI”