Remove some native AIs from spring?
Moderator: Moderators
Remove some native AIs from spring?
currently there are several native AIs shipped with spring, they work more or less:
AAI
E323AI
KAIK
RAI
CircuitAI
Shard
currently afaik only CircuitAI is maintained, the others are basicly unmaintained for years. For simplifying maintenance and reducing compile time i suggest to remove AAI, E323AI and RAI because i remember them to have bad code or are more weak.
So only keep KAIK, CircuitAI and Shard which are shipped / compiled with spring.
What do you think about this?
AAI
E323AI
KAIK
RAI
CircuitAI
Shard
currently afaik only CircuitAI is maintained, the others are basicly unmaintained for years. For simplifying maintenance and reducing compile time i suggest to remove AAI, E323AI and RAI because i remember them to have bad code or are more weak.
So only keep KAIK, CircuitAI and Shard which are shipped / compiled with spring.
What do you think about this?
- Silentwings
- Posts: 3720
- Joined: 25 Oct 2008, 00:23
Re: Remove some native AIs?
Seems reasonable to me.
Re: Remove some native AIs?
Whether my progress trying to make Spring work with Mac has any significance is yet to be seen;
RAI is the AI that works best on macOS. I haven't verified these observations on my more recent builds (I removed all AIs to save time) but KAIK crashes on game start, and Shard usually crashes 15 minutes into a game.
I've never run CircuitAI, though – I'll make sure to test that too.
Also, welcome back abma. Good to see you around again. :)
RAI is the AI that works best on macOS. I haven't verified these observations on my more recent builds (I removed all AIs to save time) but KAIK crashes on game start, and Shard usually crashes 15 minutes into a game.
I've never run CircuitAI, though – I'll make sure to test that too.
Also, welcome back abma. Good to see you around again. :)
Re: Remove some native AIs?
Removing some seems like a good idea. Many of those only work on one or two games. If KAIK and Shard crash, they should also be removed.
I thought Shard had moved to a lua-only gadget AI.
There needs to be some way for games to tell lobbies which AIs are recommended for them.
Maybe we could add the recommended AIs for each game to the games list on the wiki
related SL github issues about AI filters:
Recommended maps, AIs and engines hints #817
add bot should split AI into categories : recommended, other
I thought Shard had moved to a lua-only gadget AI.
There needs to be some way for games to tell lobbies which AIs are recommended for them.
Maybe we could add the recommended AIs for each game to the games list on the wiki
related SL github issues about AI filters:
Recommended maps, AIs and engines hints #817
add bot should split AI into categories : recommended, other
Last edited by raaar on 07 Sep 2019, 14:59, edited 1 time in total.
Re: Remove some native AIs from spring?
Ideally we should remove all and make AIs possible to distribute without bundling them with Spring..
That's probably hard to achieve however, so let's just remove the unused ones as a first step.
That's probably hard to achieve however, so let's just remove the unused ones as a first step.
Re: Remove some native AIs from spring?
This.
Also this. (Relevant: viewtopic.php?f=21&t=19627)raaar wrote: There needs to be some way for games to tell lobbies which AIs are recommended for them.
Re: Remove some native AIs from spring?
If we always simplify maintenance then we also need fewer maintainers and also admins so then it's also time to reduce those.
- Silentwings
- Posts: 3720
- Joined: 25 Oct 2008, 00:23
Re: Remove some native AIs from spring?
Wrong way around. The (non-lua) AIs have few maintainers and then it becomes necessary to simplify their maintainence.If we always simplify maintenance then we also need fewer maintainers
Back on topic,
Perhaps not so hard - I think it is likely that the native AI interfaces are on their way to a slow death, and that lua AIs will eventually take over. I rate this as probably a good thing, and one consequence is that it mostly solves the distribution issue.gajop wrote:Ideally we should remove all and make AIs possible to distribute without bundling them with Spring..
That's probably hard to achieve
Re: Remove some native AIs from spring?
Re: Remove some native AIs from spring?
Isn't CircuitAI made for ZeroK? Would anyone really suffer if all engine AIs were wiped out?
Edit: CircuitAI + 104.0.1-1218 + s44 test-5474 = "ui/customdialogs.cpp:215 Engine exited with nonzero code 11". Nothing particular in infolog, it just exited.
delete delete delete delete delete engine AIs
Edit: CircuitAI + 104.0.1-1218 + s44 test-5474 = "ui/customdialogs.cpp:215 Engine exited with nonzero code 11". Nothing particular in infolog, it just exited.
delete delete delete delete delete engine AIs
Re: Remove some native AIs from spring?
ok, thanks for the feedback. i've deleted AAI / RAI / E323AI:
https://github.com/spring/spring/commit ... 711cc06244
https://github.com/spring/spring/commit ... 711cc06244
yes, but as we have currently no nice way to distribute native ais IMHO its better to keep it with the engine.
Re: Remove some native AIs from spring?
It's good to have maintained AIs in the repo to easily test that things compile OK and to ease shipment.
Re: Remove some native AIs from spring?
Just delete them all in springlobby like I did and let the afk AI devs develop them in their own safe space, where they won't bother any one.
- Forboding Angel
- Evolution RTS Developer
- Posts: 14673
- Joined: 17 Nov 2005, 02:43
Re: Remove some native AIs from spring?
Just delete them all. @hoko, doesn't it make more sense to just use a game with a built in luaai for that sort of testing? Evo/BAR/ZK all have luaai, I think metal factions has one, Pretty sure that the cursed has something.
The fact of the matter is that these native ais help literally no one and have been the source of a lot of distribution issues in the past.
The fact of the matter is that these native ais help literally no one and have been the source of a lot of distribution issues in the past.
Re: Remove some native AIs from spring?
I've used rai for jw testing.. It crashed after a while though
Re: Remove some native AIs from spring?
No, I want to test the C/Cpp interface, not the AI.Forboding Angel wrote: ↑10 Sep 2019, 03:50 Just delete them all. @hoko, doesn't it make more sense to just use a game with a built in luaai for that sort of testing?
I can't do that with a lua AI.
- Forboding Angel
- Evolution RTS Developer
- Posts: 14673
- Joined: 17 Nov 2005, 02:43
Re: Remove some native AIs from spring?
Ahhhh ok that makes sense. I don't suppose something like nullai is enough for that?
- very_bad_soldier
- Posts: 1397
- Joined: 20 Feb 2007, 01:10
Re: Remove some native AIs from spring?
we use unit tests and ais for testing... just search for "validation test" in the bugtracker to see some examples.very_bad_soldier wrote: ↑10 Sep 2019, 17:18 If testing is the main reason to keep the AI then I think you should consider to use unit tests instead.
Re: Remove some native AIs from spring?
AAI etc were built with a paradigm Kloot pushed where if something went wrong in the AI, it was better to hard crash, rather than feign a working AI and ruin the gameplay for the player. The player would then know something went wrong, report the bug, and it would get fixed. Hence, they're not built to be failure proof.
NTai and Shard took the other approach, of doing their best to put up a fight when something went wrong, but giving the player the choice as to wether to continue or not, but native Shard doesn't do much, it's a lua interface wrapper with some additional shiny things. Thus Shard requires very little maintenance.
Shard as a project though has lived on more as a Lua AI gadget, with various forks thanks to the efforts of various people. It could be continued as a native project by adding various libraries to improve the AI for parallelism, terrain analysis, ML, etc, but the cost of native AI dev is super high in comparison to lua AI.
So:
- keep it as long as you like, but keep in mind I don't maintain it
- if necessary, poke me via email or twitter, I don't check here often enough
- if you're interested in Shard, look at the docs, then join the AI/dev channels for Evo and BA discords
NTai and Shard took the other approach, of doing their best to put up a fight when something went wrong, but giving the player the choice as to wether to continue or not, but native Shard doesn't do much, it's a lua interface wrapper with some additional shiny things. Thus Shard requires very little maintenance.
Shard as a project though has lived on more as a Lua AI gadget, with various forks thanks to the efforts of various people. It could be continued as a native project by adding various libraries to improve the AI for parallelism, terrain analysis, ML, etc, but the cost of native AI dev is super high in comparison to lua AI.
So:
- keep it as long as you like, but keep in mind I don't maintain it
- if necessary, poke me via email or twitter, I don't check here often enough
- if you're interested in Shard, look at the docs, then join the AI/dev channels for Evo and BA discords