View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0005245 | Spring engine | AI | public | 2016-05-17 16:18 | 2018-08-06 11:33 | ||||
Reporter | Anarchid | ||||||||
Assigned To | hokomoko | ||||||||
Priority | normal | Severity | feature | Reproducibility | N/A | ||||
Status | resolved | Resolution | fixed | ||||||
Product Version | |||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0005245: Add CircuitAI as a submodule | ||||||||
Description | 1) CircuitAI exists: https://github.com/rlcevg/CircuitAI 2) Engine automatic downloads exist for all both supported platforms and architectures 3) Missions exist (in ZK and others alike); missions can be auto-distributed. 4) No automatic AI distribution systems exist. 5) Therefore, it is not possible to add CircuitAI to missions. Obvious solution that does not require implementation of a SkirmishAI distribution system: add CircuitAI to engine like the other AI's. Then, mission requires specific engine version, engine is autodownloaded, ai is bundled with engine. | ||||||||
Tags | No tags attached. | ||||||||
Checked infolog.txt for Errors | |||||||||
Attached Files |
|
![]() |
|||||||||||
|
![]() |
|
silentwings (reporter) 2016-05-17 16:47 |
As far as I know, none of the AIs distributed with the engine were designed with a single specific game in mind. |
abma (administrator) 2016-05-17 16:49 |
https://github.com/rlcevg/CircuitAI/issues/10 |
abma (administrator) 2016-05-17 16:49 Last edited: 2016-05-17 16:54 |
yeah, thats an issue, too: all other ai's (theoritically) can play other games. edit: i personally don't see this as blocker, would be just a nice to have. |
FLOZi (reporter) 2016-05-17 17:59 |
Theoretically being the operative. None of the engine AIs can play MCL at all, and S44 barely (which is really not far from OTA mechanics in some respects) |
Anarchid (reporter) 2016-05-17 19:58 Last edited: 2016-05-18 12:51 |
> As far as I know, none of the AIs distributed with the engine were designed with a single specific game in mind. > all other ai's (theoritically) can play other games. HughAI only plays BA. And only as ARM. And openly says so in its wiki page. And in its README. And it has hardwired unit names (https://github.com/hughperkins/HughAI/blob/master/src-ai/hughai/unitdata/TankList.java#L48) and it has no way to discover new names. |
lamer (reporter) 2016-05-17 20:37 Last edited: 2016-05-17 20:39 |
I'd prefer "SkirmishAI distribution system", but while (it doesn't exist) {...} Please let me know if this request will have greenlight. Some preparations must be done: tags/v0.8.2.1 is the candidate for public release (not master branch). |
hokomoko (developer) 2016-05-17 21:41 |
At the moment CircuitAI requires boost/geometry which isn't in the current engine requirements. (can be added probably) |
silentwings (reporter) 2016-05-18 14:21 Last edited: 2016-05-18 14:22 |
I am pessimistic of the value of spending time on setting up an AI distribution system. I think dll AIs in their current incantation are not going to survive in the long run; the (engine side) code is too convoluted. I expect that the future of AIs is the Lua API, and that most newly written AIs will be closely tied to specific games. But we are some way from this point yet - until then as far as I can see the best solution is too bundle a selection of semi-functional dll AIs and finally fix https://springrts.com/mantis/view.php?id=2923. |
lamer (reporter) 2016-05-25 23:35 Last edited: 2016-05-26 13:50 |
AI distribution system engine-side is not good indeed. But i don't believe in Lua AIs without proper background/framework. I don't like to write performance critical parts in VM (lua). If only C++ layer of Shard had threatmaps, pathfinder, advanced yardmaps, threading, terrain/area analyzer... Circuit has some non-standart requirements: *boost/geometry - consists from .h only, partial boost surprised me; *boost/graph; *gcc 4.9+ - std::regex support; Are there plans for gcc 5+ migration (std::list::size, new ABI ... and all other cool stuff)? |
abma (administrator) 2016-05-26 14:47 |
> Are there plans for gcc 5+ migration (std::list::size, new ABI ... and all other cool stuff)? plans no, but it will happen at some point. I'm a bit conservative about updating to new compiler versions as historically there always were bugs / crashes when we updated to a new version. |
gajop (developer) 2016-05-26 16:57 |
I think adding AI support to pr-downloader would be the right thing to do. Essentially we'd need to have some utility which can compile and package AIs for multiple platforms. Obviously this wouldn't be easy, but certainly doable if there is interest. |
hokomoko (developer) 2016-06-08 16:45 |
@lamer I've noticed you released a new version, if you think it's stable enough, please supply a hash so we can test adding the submodule. |
lamer (reporter) 2016-06-08 18:01 |
ack. Need a bit time for testing, will post today/tomorrow (found a bug with startframe number). Hardcoded unitnames can be a potential threat, but for testing - its stable enough. Yet i see the default builbot compilers are 4.8.1 (windows) and 4.8.5 (linux). 4.8 will not work, it doesn't have builtin regex (only edclarations of it with empty functions). And i didn't manage to replace std::regex by boost::regex because of some missing symbols in boost lib (don't know how that is possible) |
lamer (reporter) 2016-06-09 01:28 |
hash, proclaimed as stable: 5669bf6fc4075c3a1a2fb8dc9a3d09e5c4a42207 or tags/v0.8.4 |
hokomoko (developer) 2016-06-09 01:46 Last edited: 2016-06-09 13:10 |
that's the current situation: http://buildbot.springrts.com/builders/full-windows-test/builds/4226/steps/buildConfigNinja/logs/stdio also this: https://travis-ci.org/spring/spring/jobs/136307888#L1777 |
lamer (reporter) 2016-06-09 22:02 Last edited: 2016-06-09 22:03 |
https://travis-ci.org/spring/spring/jobs/136523805 This means that replacing std::regex by boost::regex works but static link is not an option (must recompile libboost_regex with -fPIC option) Any suggestions? Is there dynamic libboost_regex.dll/so that can be copied to libSkirmishAI.dll/so after compilation? |
hokomoko (developer) 2016-06-09 22:40 |
I fear my suggestion would be to move to gcc 4.9.* after 102 is released (with the unfortunate meaning that it won't be bundled with 102 :S ) |
abma (administrator) 2016-06-09 23:39 |
as the last "stable" release (100.0) was 17 Sep 2015... we should try to release 102.0 without delaying it by updating infrastructure. so yes, no gcc update before a stable release. |
lamer (reporter) 2016-06-10 00:01 |
Seems logical to me, ok |
hokomoko (developer) 2016-06-10 12:28 |
16 July, even worse. https://springrts.com/phpbb/viewtopic.php?p=571456#p571456 Let's hope we can get a release before a year :S |
Anarchid (reporter) 2016-06-10 15:50 |
My ulterior motive of using Circuit in missions means that i, for one, am not going to obsess over whether it's 102.0 or 102.0.1.gabracadabra that includes Circuit. Missions can use dev engine versions just as well. |
abma (administrator) 2016-06-10 19:37 |
side note: please no further tests with compiling the submodules on the buildslaves as it breaks compile on other branches, too: http://buildbot.springrts.com/builders/full-windows-test/builds/4227/steps/buildConfigNinja/logs/stdio |
Anarchid (reporter) 2017-02-28 12:05 |
At the very least ZK now has an automated AI distribution system. This ticket can be closed because such systems are the future and stuffing the engine with submodules is unsustainable. |
hokomoko (developer) 2017-02-28 12:09 |
I'm not sure if I agree. Having AIs compile with the engines is great for identifying fatal regressions as early as possible. |
Anarchid (reporter) 2017-02-28 13:29 |
Fair point. |
Anarchid (reporter) 2017-08-14 14:19 |
ZK now deploys Circuit all on its own, in effect implementing an automated AI versioning and distribution system. This renders this feature request obsolete. |
hokomoko (developer) 2017-08-14 14:22 |
My last comment still stands |
raaar (reporter) 2017-08-17 17:27 |
It may be useful for testing and development, but currently most of the AIs shown are useless/misleading for new players on nearly all games. |
sprung (reporter) 2017-08-18 12:17 |
That's a problem with lobbies. It is their responsibility to hide AI unfit for given game. |
abma (administrator) 2018-04-25 20:30 |
good + "bad" news: spring doesn't depend on boost anymore, only boost-test is used / left / available. the good news is that the linux32 / linux64 buildslaves where upgraded. |
lamer (reporter) 2018-08-05 15:03 |
Added required boost libs inside CircuitAI. It should be ready for spring's buildbot. What are further steps to include CircuitAI in spring's ecosystem? |
hokomoko (developer) 2018-08-05 17:57 |
Seems done, I just need someone with permissions to clone it into spring's organisation and then we can close this. |
abma (administrator) 2018-08-06 10:48 |
https://github.com/spring/CircuitAI |
hokomoko (developer) 2018-08-06 11:03 |
Fix 0995fa8356029dff2c4506f769dcf2bfc2fecc3d committed to develop branch: Fix 0005245, repo: spring changeset id: 10462 |
hokomoko (developer) 2018-08-06 11:33 |
Fix 2090ebb95ac0d0594dc43ed6ecfea4868deac126 committed to maintenance branch: Fix 0005245, repo: spring changeset id: 10463 |
![]() |
|||
Date Modified | Username | Field | Change |
---|---|---|---|
2016-05-17 16:18 | Anarchid | New Issue | |
2016-05-17 16:47 | silentwings | Note Added: 0016310 | |
2016-05-17 16:49 | abma | Note Added: 0016311 | |
2016-05-17 16:49 | abma | Note Added: 0016312 | |
2016-05-17 16:54 | abma | Note Edited: 0016312 | View Revisions |
2016-05-17 17:59 | FLOZi | Note Added: 0016313 | |
2016-05-17 19:58 | Anarchid | Note Added: 0016318 | |
2016-05-17 20:00 | Anarchid | Note Edited: 0016318 | View Revisions |
2016-05-17 20:00 | Anarchid | Note Edited: 0016318 | View Revisions |
2016-05-17 20:37 | lamer | Note Added: 0016319 | |
2016-05-17 20:37 | lamer | Note Edited: 0016319 | View Revisions |
2016-05-17 20:39 | lamer | Note Edited: 0016319 | View Revisions |
2016-05-17 21:41 | hokomoko | Note Added: 0016321 | |
2016-05-18 12:51 | Anarchid | Note Edited: 0016318 | View Revisions |
2016-05-18 14:21 | silentwings | Note Added: 0016324 | |
2016-05-18 14:22 | silentwings | Note Edited: 0016324 | View Revisions |
2016-05-25 23:35 | lamer | Note Added: 0016344 | |
2016-05-25 23:42 | lamer | Note Edited: 0016344 | View Revisions |
2016-05-26 13:50 | lamer | Note Edited: 0016344 | View Revisions |
2016-05-26 14:47 | abma | Note Added: 0016350 | |
2016-05-26 16:57 | gajop | Note Added: 0016354 | |
2016-06-08 16:45 | hokomoko | Note Added: 0016410 | |
2016-06-08 18:01 | lamer | Note Added: 0016411 | |
2016-06-09 01:28 | lamer | Note Added: 0016415 | |
2016-06-09 01:46 | hokomoko | Note Added: 0016416 | |
2016-06-09 13:10 | hokomoko | Note Edited: 0016416 | View Revisions |
2016-06-09 22:02 | lamer | Note Added: 0016418 | |
2016-06-09 22:03 | lamer | Note Edited: 0016418 | View Revisions |
2016-06-09 22:40 | hokomoko | Note Added: 0016419 | |
2016-06-09 23:39 | abma | Note Added: 0016420 | |
2016-06-10 00:01 | lamer | Note Added: 0016421 | |
2016-06-10 12:28 | hokomoko | Note Added: 0016424 | |
2016-06-10 15:50 | Anarchid | Note Added: 0016425 | |
2016-06-10 19:37 | abma | Note Added: 0016427 | |
2017-02-11 16:23 | abma | Relationship added | related to 0005294 |
2017-02-28 12:05 | Anarchid | Note Added: 0017370 | |
2017-02-28 12:09 | hokomoko | Note Added: 0017371 | |
2017-02-28 13:29 | Anarchid | Note Added: 0017373 | |
2017-08-14 14:19 | Anarchid | Note Added: 0018204 | |
2017-08-14 14:22 | hokomoko | Note Added: 0018205 | |
2017-08-17 17:27 | raaar | Note Added: 0018218 | |
2017-08-18 12:17 | sprung | Note Added: 0018219 | |
2018-01-22 14:56 | abma | Relationship added | has duplicate 0005873 |
2018-04-25 20:30 | abma | Note Added: 0019050 | |
2018-08-05 15:03 | lamer | Note Added: 0019271 | |
2018-08-05 17:57 | hokomoko | Note Added: 0019272 | |
2018-08-06 10:48 | abma | Note Added: 0019273 | |
2018-08-06 11:03 | hokomoko | Changeset attached | => spring develop 0995fa83 |
2018-08-06 11:03 | hokomoko | Note Added: 0019274 | |
2018-08-06 11:03 | hokomoko | Assigned To | => hokomoko |
2018-08-06 11:03 | hokomoko | Status | new => resolved |
2018-08-06 11:03 | hokomoko | Resolution | open => fixed |
2018-08-06 11:33 | hokomoko | Changeset attached | => spring maintenance 2090ebb9 |
2018-08-06 11:33 | hokomoko | Note Added: 0019275 |