2019-08-25 02:52 CEST

View Issue Details Jump to Notes ] Related Changesets ]
IDProjectCategoryView StatusLast Update
0005245Spring engineAIpublic2018-08-06 11:33
ReporterAnarchid 
Assigned Tohokomoko 
PrioritynormalSeverityfeatureReproducibilityN/A
StatusresolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0005245: Add CircuitAI as a submodule
Description1) 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.
TagsNo tags attached.
Checked infolog.txt for lua Errors
Attached Files

-Relationships
has duplicate 0005873resolvedabma 104.0.1-150-gd36042d maintenance Circuit AI always crashes on load 
related to 0005294resolvedabma Upgrade GCC 
+Relationships

-Notes

~0016310

silentwings (reporter)

As far as I know, none of the AIs distributed with the engine were designed with a single specific game in mind.

~0016311

abma (administrator)

https://github.com/rlcevg/CircuitAI/issues/10

~0016312

abma (administrator)

Last edited: 2016-05-17 16:54

View 2 revisions

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.

~0016313

FLOZi (reporter)

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)

~0016318

Anarchid (reporter)

Last edited: 2016-05-18 12:51

View 4 revisions

> 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.

~0016319

lamer (reporter)

Last edited: 2016-05-17 20:39

View 3 revisions

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).

~0016321

hokomoko (developer)

At the moment CircuitAI requires boost/geometry which isn't in the current engine requirements. (can be added probably)

~0016324

silentwings (reporter)

Last edited: 2016-05-18 14:22

View 2 revisions

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.

~0016344

lamer (reporter)

Last edited: 2016-05-26 13:50

View 3 revisions

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)?

~0016350

abma (administrator)

> 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.

~0016354

gajop (developer)

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.

~0016410

hokomoko (developer)

@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.

~0016411

lamer (reporter)

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)

~0016415

lamer (reporter)

hash, proclaimed as stable:
5669bf6fc4075c3a1a2fb8dc9a3d09e5c4a42207
or tags/v0.8.4

~0016416

hokomoko (developer)

Last edited: 2016-06-09 13:10

View 2 revisions

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

~0016418

lamer (reporter)

Last edited: 2016-06-09 22:03

View 2 revisions

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?

~0016419

hokomoko (developer)

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 )

~0016420

abma (administrator)

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.

~0016421

lamer (reporter)

Seems logical to me, ok

~0016424

hokomoko (developer)

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

~0016425

Anarchid (reporter)

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.

~0016427

abma (administrator)

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

~0017370

Anarchid (reporter)

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.

~0017371

hokomoko (developer)

I'm not sure if I agree.
Having AIs compile with the engines is great for identifying fatal regressions as early as possible.

~0017373

Anarchid (reporter)

Fair point.

~0018204

Anarchid (reporter)

ZK now deploys Circuit all on its own, in effect implementing an automated AI versioning and distribution system. This renders this feature request obsolete.

~0018205

hokomoko (developer)

My last comment still stands

~0018218

raaar (reporter)

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.

~0018219

sprung (reporter)

That's a problem with lobbies. It is their responsibility to hide AI unfit for given game.

~0019050

abma (administrator)

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.

~0019271

lamer (reporter)

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?

~0019272

hokomoko (developer)

Seems done, I just need someone with permissions to clone it into spring's organisation and then we can close this.

~0019273

abma (administrator)

https://github.com/spring/CircuitAI

~0019274

hokomoko (developer)

Fix 0995fa8356029dff2c4506f769dcf2bfc2fecc3d committed to develop branch: Fix 0005245, repo: spring changeset id: 10462

~0019275

hokomoko (developer)

Fix 2090ebb95ac0d0594dc43ed6ecfea4868deac126 committed to maintenance branch: Fix 0005245, repo: spring changeset id: 10463
+Notes

+Related Changesets

-Issue History
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
+Issue History