AI Aggression level
-
It would be great if the map designer could pick an aggression level for each AI faction say 51 to 100, this is the Battle Calculator average chance of winning, where 60 is very aggressive, meaning the AI has 60% chance of winning (Germans, Orcs), verses say an AI set at 90 (Americans, Dwarves).
-
@TheDog i always thought it would be interesting if aspects of AI behavior could be made adjustable like aggression, risk aversion, air/sea/land building preferences etc. if these things were sliders you could give each faction a sort of personality of its own.
That being said as @LaFayette and many others have mentioned, currently, we are severely understaffed in terms of coding manpower so personally not expecting miracles in terms of AI development given how much time it takes for improvements in that area.
-
@TheDog also i don't think the current calculation is only based on the chance of success outright. i think it also takes into consideration possible reinforcements in the immediate vicinity as well as TUV swings.
-
@ubernaut
I would be willing to do some unit testing, if that would help, it can be boring, but I have done it before on the Tyranids Mod for Dawn of War. -
@TheDog that's awesome not my department tho. @LaFayette @redrum @prastle are the ones most familiar with our needs i think.
-
@TheDog If you have experience unit testing legacy code bases, that would be quite valuable. The general process is roughly to build characterization and system tests, some high level unit tests, break up components and redesign them to be more contained and modular, then unit test those. There is a balance on the last steps as you have some freedom to rework and test at the same time.
For example one problem you'll probably find is it's hard to build scenarios. To get a
GameData
you need to parse an XML. This automatically means you're not going to be able to create dozens of territory scenarios. You'll also find everything of interest needs aGameData
. Furthermore, anything with aGameData
has to be serialization compatible with previous versions or you break save games, so you have to be careful to avoid changing local variables. If this sounds like a knot, it is. On our radar is to change how save-games are done so that all data components would not need aGameData
, we'd be free to change them and instead we persist only a series of change objects on top of an immutable data that is loaded from map.Sigh, with that said, there are plenty of places where unit testing can come into play. I think the right pattern would be to extract bits of logic to static functions and test those. We've also a good bit of generic stuff that is not tested and I'm sure you could find it. Our coverage is currently at 27%, getting that up higher would be huge so we wouldn't have to do as much manual testing and reduce the error rate (which takes up a lot of time).
-
@LaFayette
I dont have experience unit testing legacy code.
Is there a document I can read?
Does the testing cycle require regular/constant access to github?Re the new savegame data, it sounds like it would be worth the investment in time changing it, so that it would make testing easier and maybe you could get more people on board to test things?
-
Are you referring to about automatic testing @TheDog , or more manually testing the game? Either way, the help would certainly be appreciated.
Does the testing cycle require regular/constant access to github?
No, just download the latest release and you should be able to test everything out readily enough.
-
@LaFayette
Manual testing.As a single player v AI player, I would like to help test any AI changes, I would guess these take a long time to test properly and the Devs time would be better spent improving other parts of TripleA rather testing the AI?
I believe there is already some AI code worth testing?
-
Redrum was doing most of the AI development and is taking a break. I don't think there will be much AI develpment in the near feature.
With that said, help manual testing is greatly appreciated. 2.3 is perhaps due to be release soon. @TheDog are you set up to be able to download the latest build and know where to report bugs?
-
@LaFayette
Shame about AI development.I know how to have multiple versions of TripleA, including the pre-releases.
I dont know where or how to report bugs.
-
Latest is available at: https://github.com/triplea-game/triplea/releases
When installing, you'll need to specify the installation path to have multiple versions installed.Bug report link: github.com/triplea-game/triplea/issues/new/
-
on page https://github.com/triplea-game/triplea/blob/master/.github/CONTRIBUTING.md
see local_build_and_testing.md for how to run verification and tests locally.
https://github.com/triplea-game/triplea/blob/master/.github/local_build_and_testing.mdThe above link is 404
Is there a feature list for the 2.3 release or shall I build my own?
What was the actual 2.2 release number to build from?What should I concentrate on?
-
@LaFayette Is the AI it's own part of the code, or is it all kind of mixed in with the rest? If it is in its own are, where would i look to see how it works?
-
Most of the
Pro
prefixed classes are AI. It's probably 80% its own thing, there are certainly mixtures in other parts of the code base that arguably do not belong there. -
@LaFayette Is there a guide to setting up my pc to being able to help program a little?
-
I have been using IntelliJ IDEA. Also GitHub Desktop linked to the TripleA site. I'm not using any special setup, but this has gotten me started in poking around. Just be forewarned, its not xml.
Cheers...
-
@wc_sumpton said in AI Aggression level:
Just be forewarned, its not xml.
HAHA! I am pretty sure it is java. Not like it matters too much, i am very much out of practice anyway!
-
https://github.com/triplea-game/triplea/tree/master/docs/development#getting-started
Improvements to the setup documentation are really welcome. Anything not covered would be great to see added and could be good starter PRs.