Page 1 of 3

Mods X AI's

Posted: 16 Mar 2011, 01:25
by McLoud
I'm looking for any AI that can decently use Tech Annihilation (or SBA, whatever name it got now). I really like mods with increased tech trees and find that to be a fine mod at that. Unfortunally, I cant seem to make any AI work decently with it (by being descent, build all units of the tech tree, even if at random). I can make configs (as long as I dont need to retag each and every unit). The ones I've tried already

RAI: Only one that works, but seems to be stuck at lvl 1 stuff and up to lvl 2 hovercrafts
AAI: Crashed a bit after building the first builder
KAIK: complains that it cant start, yet the infolog doesnt tells me anything and there isnt anything obvious in the AI folder either
E323AI: stop building after mexes, LLT and a solar. Even if I cheat and build a factory for it, it goes building lvl 1 builders and crashes after

I'm on linux 64 and got no debug builds, so the crash dumps doesn't seem to help much. Any suggestion appreciated (I can look after other mods, but I'm not interested in most plain mods like the current stable BA or weirdos; I love EE, but seems stalled :(

Re: Mods X AI's

Posted: 16 Mar 2011, 02:20
by knorke
I think atm there is no AI that understands the concept of TechA's techcenter and the morphing of units.

Development on E&E stopped and after some time changes to the Spring engine made it incompatible. Google_Frog fixed it to work with current Spring: http://springrts.com/phpbb/viewtopic.php?f=14&t=24636
(fix was actually for spring 0.82.6.1 but i think it still works)

Re: Mods X AI's

Posted: 16 Mar 2011, 12:25
by hoijui
native AIs (== non-Lua AIs) have no (easy) way to use morphing, as it is not a command supported by the native part of the engine, but implemented in Lua. There are already ways to make a native AI use such commands, but it requires changes in the mod and the AI, both to simply know about/issue the command, and the logic for when to actually use it. it would be very ugly, lots of work and unportable, which is why nobody does it.

Re: Mods X AI's

Posted: 16 Mar 2011, 13:34
by AF
Shard has the means to do it. Not out of the box, but if your the developer of your game then you can make it so.

Shard provides for a means of sending messages to gadgets back and forth.

Eitherway you wont find a magic fix. The implementation details of how you made the functionality will mean that some work will be required regardless of the approach you take.

Contact me via PM or msn and I we can discuss.

(move to AI forum?)

Re: Mods X AI's

Posted: 16 Mar 2011, 16:40
by McLoud
I think morphing can be a second step On tech annihilation you can get up to at least LVL 3 without morphing.

Re: Mods X AI's

Posted: 17 Mar 2011, 00:29
by oksnoop2
You could ask developer xyz to add this to the game you play.

http://code.google.com/p/conflictterra/ ... Deploy.lua

It randomly morphs units when under AI control.

Re: Mods X AI's

Posted: 17 Mar 2011, 01:47
by knorke
I think Lua AIs made deliberately for one game are the way to go.
Games are using Lua for game logic more&more and if other AI interfaces have no way to read/controll that, they can not play the game. ie just taking zeroK: non-Lua AI could not know about mex overdrive, commander choice/upgrade, jumpset, energy grid,...

Re: Mods X AI's

Posted: 17 Mar 2011, 03:04
by McLoud
I think they could be made some kind of command list the AI's could query, try and see what happens (put all non unit stuff there, morphing, custom commands, missile building, and made it query-able for every unit). Some AIs can learn and then with some statistic figure it out when its good or not (and at what times). But now this really would be moved into the AI development forum :)

Re: Mods X AI's

Posted: 17 Mar 2011, 07:37
by yuritch
McLoud wrote:Some AIs can learn and then with some statistic figure it out when its good or not (and at what times)
AI "learning" (as seen in a few Spring AIs) is about a completely different thing, they can't learn anything about commands. Basically learning just tells the AI which units to build, and NOT how to best use them.

Re: Mods X AI's

Posted: 17 Mar 2011, 08:53
by FLOZi
knorke wrote:I think Lua AIs made deliberately for one game are the way to go.
Games are using Lua for game logic more&more and if other AI interfaces have no way to read/controll that, they can not play the game. ie just taking zeroK: non-Lua AI could not know about mex overdrive, commander choice/upgrade, jumpset, energy grid,...
+1, I've been saying this for years

Re: Mods X AI's

Posted: 18 Mar 2011, 00:05
by McLoud
yuritch wrote: AI "learning" (as seen in a few Spring AIs) is about a completely different thing, they can't learn anything about commands. Basically learning just tells the AI which units to build, and NOT how to best use them.
It is, but could be made othewise with enough info. Basic AI learning is all about statistics. I'm looking in to the LUA scripting to see whats already there. Maybe I can get my head around it :roll:

Re: Mods X AI's

Posted: 18 Mar 2011, 13:51
by AF
  • The lack of information arguement applies to Lua AIs too, your just pretending it doesnt because you have prior knowledge

    e.g.: Most native AIs specialising in 1 game, or configurations could have added morph support, this isnt because its knowable, heck most of the OTA stuff wasnt knowable to begin with, e.g. AIs and the Juno unit in BA, but if we know what to implement and how to do it, then we can get some of the way there.

    The same is true of Lua AIs, the main difference being that the creator of the game usually has a hand in them and make hardcoded modifications. This luxury is usually non-existant with native AI developers purely because game developers expect native AI devs to develop for, not with them.
  • There are no learning AIs, and never have been. Submarine was hyping AAI when he said it 'learned'. What he ( and veylon and myself _ implemented was statistics based logic, based on statistics that got updated as games went on.

    The prime example of how silly it is to call it learning is KAI. KAI had an identical system designed into it, but instead of using dumb values and honing them in over time, it just calculated a good guess based on an equation that had been tested. It didn't start off dumb and improve over time, it was just as good first time as last time.
  • Basically learning just tells the AI which units to build, and NOT how to best use them.
    This is correct, but not as extensive enough. It has to be realised, that even the basic TA commands sucha s capture etc have this issue. I had to code capture and cloak and dgun into NTai, else it would never use them. The same would be true of morph / teleport / jumpjet / research etc

So if Lua AIs suffer exactly the same problem native AIs do, then why are people advocating dedicated lua AIs?
  • Native AI developers don't trust any content developers to work with them, so they develop for as many games as they can, or TA
  • There are no dedicated AIs for games outside of TA.
  • Popular anti native AI sentiment is leading to anti-competitive behaviour and a rise in the quick fastjob lua AI, and people are blindly seeing the quick lua job as superior to the 6 month C++ AI purely because its lua without even considering its flaws and merits.
  • People are ignoring the fact that the same bus factor issue that affects native AIs also affects lua AIs. This is concealed behind a larger population of content developers, whereas its obvious for native AIs due to the collapse of the native AI community here.
  • Zombie native AIs

    AAI/RAI/KAIK are dead, yet they are being extended beyond their natural lifespans, much to the detriment of AI and the engine as a whole. AAI alone is mentioned quite a lot, normally because it never works with anything. RAI works just enough at nonBA to tempt you then fail at playing a critical yet simple part of the game. These are limbo zombie projects
  • Anticompetitive Developer policy that alienates the prime userbase for native AIs.

    e.g. "We don't support visual studio AIs" says Mr A to the AI crowd that almost exclusively uses visual studio. We can maintain our own projects thankyou, but the utter ignorance of this simple fact has alienated and crushed the motivation in a lot of people to continue or start AI projects.

    This has contributed heavily towards the dwindling in native AI developers over the last 3 years. Native AI developers cant fulfil content developers demands when they're near non-existent in presence.
  • Content developers see a lack of progress in native AIs to support their games purely as a sign that native AIs will never suffice

    When in actuality, a lack of help from them, coupled with a non-presence in the AI community is actually to blame.

    No matter how hard you shout, you cant make factory workers in a factory work faster if nobodies there.


Also of note:

There is interest in spring in the AI community at large but these issues prevent us from benefiting from a flood of academic and hobby interest:
  • Spring games change too much. By the time you've ran your experiments, your game is already too old to run under the latest version of spring, and the updated version has balance changes that ruin your controls. Games like starcraft broodwar are stable in terms of gameplay and little changes from week to week.
  • The recent behaviour of Hoijui
  • Lack of documentation
  • Disregard of Visual Studio ( students cant always dual boot into a linux configuration, nevermind gain the privilledges to setup the spring build environment to build AIs )
I would point out that Zwzsg has a healthy attitude towards the AIs in that he welcomes them but does not see them above or below lua AIs.

So far since Shard added support for talking to gadgets (negating the main problem people are citing ), only a single developer has attempted to show any kind of interest ( oksnoop ).

Re: Mods X AI's

Posted: 18 Mar 2011, 16:46
by knorke
Dont know whats with the engine dev <-> ai dev drama so ill just comment as player and maker of some game nobody plays:
I think the lack of AIs/AI devs ultimately boils down to:
1) no games to play.
Any spring game either changes alot in some months or it is dead, except for maybe the basic gamemode of kernel panic. (the one without shields etc)
So that leaves TA games but TA is not a good testfield for AIs imo. (tl;dr but can expand on this if wished)
There is interest in spring in the AI community at large but these issues prevent us from benefiting from a flood of academic and hobby interest: ...
I agree and bad documentation also stops the flood of game makers and modders. Like ie http://love2d.org/ Spring could be a good tool to quickly prototype game ideas. And not just games, (agents) simulations and all that stuff too...
http://springrts.com/wiki/AI:Development:Lang:C
vs
http://code.google.com/p/bwapi/wiki/BWAPIManual
How comes some hacked close source engine has a better manual? :?
people are blindly seeing the quick lua job as superior to the 6 month C++ AI purely because its lua without even considering its flaws and merits.
Uhm, no.
From a players point of view, native AIs were not that big a sucess in the last years. Crashy, often outdated etc, generally frustrating.
On the other hand, there are the Lua AIs of S44 and zeroK which are easy to set up, always work, use "specials", know the game and all that.
There are no dedicated AIs for games outside of TA.
Yes. I would even say the "so they develop for as many games as they can" part is just wrong because because all the AIs were/are made with TA in mind. Even the ones that claimed to support multiple games only really supported *A. As soon a game was somewhat different, they failed. (ie E&E hub system)
Which AI does really try micro the hero units of Gundam?
Which AI does not walk through the fire of the area deny thing of Kernel Panic's pointers?
Which AI tries to capture flagpoints in S44 or planets in THIS?
Afaik none does any of that. This sort of things can not be changed with config files either.
So if a native AI "plays" KP it seems more a result of the builders having no other buildoption but to make sockets. Or if you watch some AIs playing Cursed at first glance they seem to be working but if you look closer they just poorly try find the units closest to the ones in TA or w/e. This "auto categorize every unit" which most AI devs seemed to have going on was pretty fail imo as it only really worked for TA. Could have just hardcoded the counters then.
So if Lua AIs suffer exactly the same problem native AIs do, then why are people advocating dedicated lua AIs?
(See above, only Lua AIs ever got to play a non-TA game)
Also the "information problem" is much easier with Lua. ie in Spring Tanks, if I wanted the Lua AI to know the game score, I would just put it into this global _GG. SYNCHED thingy and then the AI can read it. (and then play more defensive when it is winning for example)
To notify any native AI about the score would require me to do uhm, no idea actually. Only info I found is
A follow up release will be made at the weekend with extra API additions such as game:SendToContent(luatable) for gadget communication, and anything anyone puts forward between now and then.
And the AI<->Lua communication seems to be one-way only and AIs other than Shard do not have it at all.
Content developers see a lack of progress in native AIs to support their games purely as a sign that native AIs will never suffice.
When I list the disadvantages of native AIs I refer to the currently active AIs. Surely an AI like S44's CRAIG could be made in any language. But realisticly I just do not see anybody who would do the trouble for ie spring tanks.
Why the generalisation of "Content developers", there are not that many games in development.
And ie oksnoop2 does not really care if CT gets a Lua AI or something else, I think neither does Azeremomomomth (Cursed)
Bob's object based "Contact" game will not be playable by any AI either. And no config file can fix that.
When in actuality, a lack of help from them, coupled with a non-presence in the AI community is actually to blame.
Didnt I at some point answer all the questions about CT's economy and whatever else (cruisers?) was stopping Shard?
Popular anti native AI sentiment is leading to anti-competitive behaviour and a rise in the quick fastjob lua AI
The only game EVER with the patented quick fastjob lua AI (TM) is Spring Tanks! Only here you get the full "blindly sends units towards enemy" tactic, the AIs of KP/S44/zeroK are too advanced to be called fastjob.
Fun fact: no other Lua AIs exist. (so its hardly a poplar movement)

So Lua AIs can only be bundled with the game but I guess even the games that already have a working AI would just include a second AI if somebody asked. And native AIs can play vs bundled AIs just fine, so how does it lead to less competion?

Re: Mods X AI's

Posted: 18 Mar 2011, 18:26
by KDR_11k
The KP AI is actually pretty dumb, it's designed purely to provide players with something to shoot at and learn the unit interactions with.

Re: Mods X AI's

Posted: 18 Mar 2011, 22:29
by McLoud
The linux issue should be moot as long as you use a distro with good package managenment. If I managed to build spring yesterday first try anyone could. One can even use a meta-package to get all the right dependencies in one set, but thats no excuse to complaining against VS developers :evil:
I know something got changed in the hacked EE package that got linked here so RAI seems to be playing it fine, and beat me yesterday on a 1v1. It is still the only AI I got working with it so far.

Re: Mods X AI's

Posted: 19 Mar 2011, 00:10
by Forboding Angel
AF, I already told you my opinion, but I'll condense it here.

Essentially I think the time of the native C++ AI has passed. As a gamedev, I would happily take a shitty luaai over a decent native AI. Native AI's have a giant list of cons, and a very small list of pros, while luaai has very few downsides.

Also, people such as myself don't know c++, but we sure as hell know how to fiddle around in lua. I've added a lot of functionality to evo simply by fiddling around with various gadgets and learning callins via the wiki and how to use them.

And the biggest con of all, that 10)% totally turns me away from native ais. You are solely dependent upon the dev to keep it maintained. Fuck that. AI devs like going on sabbaticals too often, and even if they didn't, I don't like randomly handing my nuts out to be crushed on a whim by some other developer.

Re: Mods X AI's

Posted: 19 Mar 2011, 02:52
by AF
AI developers don't go on big lengthy long holidays for the hell fo it. Most of our AI devs aren't on sabbatical at all, they're gone, kaput, dead, miles away never coming back. Do you think Krogothe/Tournesol/Firenu/Submarine/Veylon/Hugh/ZCain/Jelmer/etc stopped developing their AIs because they wanted an extended break?

As for *A only, does nobody remember NTai running with Hubs in EE? NTai playing Nanoblobz? What about KAI in its prime with its optimally tuned pathfinding back when the original 3 designers where maintaining it?

Simply said, the current native AIs are mostly a shambles and a shadow of their former selves. But that never used to matter because we had a healthy AI community and new developers would come along and start new AIs that would be even better. Progress and competition would march on and the old projects would be ransacked of their featuresets for new AIs.

As for 'crashy', its all kind of summed up when kloot said that AIs SHOULD crash, in response to me singing the praises of failing gracefully. When NTai crashed, it picked itself back up again and the user almost never noticed a crash had ever happened half the time, and it got quite stable at its prime. Not to say lua cant crash, but there's nothing stopping native AIs behaving the same way.

Re: Mods X AI's

Posted: 19 Mar 2011, 07:14
by Forboding Angel
Yeah well, lua can crash, but tbh it would be fairly rare. Thanks to infolog, bugs like that tend to have a very limited shelf life.

Re: Mods X AI's

Posted: 19 Mar 2011, 11:18
by hoijui
please stop reiterating moot points from experiences you heard from your users 4 years ago, which have since been removed and refuted 10 times already.
stop talking nonsense about what you know nothing.
as a matter of fact, no serious AI dev will want to use Lua to code his AI (reasons mentioned many times already). people like forb will never get that, but they and their users are not the only people that count here. they have never been, and they will never be. if all you need is Lua AIs, then use them, and ship your game without native AIs. that has been possible since years already (since there is Lua AI support). no reason for you to advocate the death of native AIs due to your limited viewpoint. stop wasting other peoples reading time.

There has not been a single crash report of a native AI in 0.82.7 for BA. I have encountered CRAIG being broken multiple times already in S44, that happens if someone changes the game, but not the AI, which yes! is possible also if they share the same code repository. If you compare, do it in a way it makes sense. Comparing the stability of a single game LuaAI to a native AI that is meant to play an other game but can technically be started with the wrong game too -> stupid!
The critique there is, that there is no support for declaring support levels of nativeAI<->gameX yet. see other topics. there are ~5 about this, one of them having valuable info. happy searching!

Re: Mods X AI's

Posted: 19 Mar 2011, 12:31
by knorke
I think there is a clear difference between the "serious AI dev" who maybe wants to write a paper on his AI and the game maker who just wants "to provide players with something to shoot at."
And then there is also the player who only cares if the AI is easy to set up and that it is fun to play against.
Right tool for each job etc?
As for *A only, does nobody remember NTai running with Hubs in EE? NTai playing Nanoblobz?
EE and Nanoblobs are only the beginning of non-TA. Afterall EE is not that different from TA.
I still think there never was a native AI for any non-TA game, EE is about as far as it gets away from TA.
Not saying it is not possible to make a native AI for any non-TA spring game, but it just never was done. (for various reasons)
wops, wrong: forgott BKPAI http://springrts.com/wiki/AI:BKPAI

And config files only help so much, with configs for native AIs you can you tell the AI to make more energy buildings in mod X but you can not "teach" it the concept of Spring1944's flag controll: The AI will still try to find its energy and metal buildings, both do not exist in S44.

If ie Shard can make more advanced configs, then nobody has any clue to how it works.
Like there is this:

Code: Select all

attackerlist = {
	"bit",
	"bug",
	"bugold",
...
That is pretty clear.
But what is this?
http://pastebin.com/717HYaJD
Why this long lines of worm worm worm bug bug worm worm, I guess it is some sort of buildlist? Does Shard just blindly follow that buildorder or does it chose units depending on the situation? (only switching i found was random choice of lab in BA tasklist)
How does it decide what unit to use against what?
If it is possible to add more Lua scripting to the configs, what is the advantage (to the game maker) over just doing everything in Lua?
Would it be possible to make Shard play S44 (taking controll of areas instead of mex) or Spring Tanks (no base building at all?)