Page 3 of 7

Re: CivilAI

Posted: 13 Apr 2018 00:05
by xarick
Hi. I found a crash with v8. Cannot iterate null.

Re: CivilAI

Posted: 13 Apr 2018 02:35
by PikkaBird
Thanks!

version 9:
- Fixed collision causing company director name not to be set.
- Fixed reported crash.

Re: CivilAI

Posted: 13 Apr 2018 22:14
by xarick
Hi again. The index 'Count' does not exist.

Re: CivilAI

Posted: 14 Apr 2018 01:51
by PikkaBird
Damn.

Try this one please. :)

Re: CivilAI

Posted: 15 Apr 2018 08:51
by PikkaBird
Er, yuck. It's one of those classic corner cases where industries shut down between being listed and being tested, leading to it trying to test an industry that's not on the map any more. I'll try and get a fix up tonight. :)

Edit: okay, version 10 is up, stress-tested and (seems to be) crash free!

Re: CivilAI

Posted: 21 Apr 2018 16:15
by PikkaBird
Version 11:

- Fixed a bug introduced in v10, which was preventing the AI from building goods trucks (oops).
- CivilAI now attempts to recover poor town ratings by planting trees.

- Lists of unconnectable towns and industries are now stored in save games, to prevent wasting time retrying connections when the game is saved and loaded. Thanks to Brumi/SimpleAI for the list/array conversion code.

Trains:
- Added more variety to AI locomotive selection.
- Improved wagon building.

Re: CivilAI

Posted: 29 Apr 2018 18:40
by PikkaBird
Version 12:

- Figured out the correct filename for the changelog. :)

- The connected town list is now cached, and only recalculated on loading the game or building new connections. This should greatly improve the AI's response time, particularly later in the game.
- Added more company, director and train names.
- Readded statue building.

- Sometimes, bus and mail services would not come close enough to depots for automatic servicing, resulting in low reliability. To combat this:
- Road vehicles with poor reliability are periodically sent for servicing manually.
- Additional road depots are built in large cities.

Trains:
- Improved wagon selection.
- Made rail building a little more robust, with retrying if the path is blocked and better detection of station orientation.
- Added an additional station/route type.

Re: CivilAI

Posted: 29 Apr 2018 21:53
by arikover
Hello!

Nice work on the IA, it is really interesting to play with.
I have 2 questions:
CivilIA tends to build airports early in the game, which can be pretty suicidal when infrastructure costs are on. Deactivating planes for IA players is a solution to this problem, but could it be possible to make CivilIA take this setting into account? (if infrastructure costs are on, do not build airports, or build airports only when it is not suicidal to do so)
Does CivilIA cares about the weight factor setting?

Re: CivilAI

Posted: 29 Apr 2018 22:50
by PikkaBird
The AI doesn't take either of those into consideration, currently.

In the case of infrastructure maintenance, it's hard to imagine what the response should be. If the maintenance costs make using small airports (which is all this AI builds) prohibitively expensive, then building no airports seems to be the only option. If the costs are tolerable, then business-as-usual should be fine. In either case, infrastructure maintenance costs is a terrible feature and should be avoided. ;)

The cargo weight factor is not currently considered, bur it probably could be; I can see how a very high weight factor, combined with a NewGRF that provides both low-power locomotives and high-capacity wagons, might be a problem. It wouldn't be difficult to vary the minimum power requirement and/or limit the train capacity. Do you have some examples (either screenshots or savegames) of trains which have struggled?

Re: CivilAI

Posted: 01 May 2018 01:56
by PikkaBird
Version 13:

CivilAI will now check for other company HQs, and avoid setting up in the same town.

Trains:
- Improved locomotive selection for trains, taking freight_trains setting and hill steepness* into account (thanks arikover).
- Trains will have brakevans before a certain year (configurable, default 1965), if a NewGRF provides them.
- Version 12 occasionally built a sharp 90 degree turn when building passing places or retrying a blocked route. To address this:
- AI removes passing places with 90 degree turns (if 90 degree turns are forbidden).
- If no passing place is built, one train will be built instead of two.
- When retrying a blocked route, the AI will backtrack three tiles and build a straight rail before continuing, to avoid constructing 90 degree turns.

Maybe I'll take a break before adding any more big features, like trunk railways between cities or ships. It's just too easy to spend all day tinkering with this stuff. :)

*To clarify, I don't mean the "slope steepness for trains" setting; I'd forgotten that exists. I mean the actual profile of the route; hillier lines get more powerful locomotives.

Re: CivilAI

Posted: 01 May 2018 07:49
by andythenorth
Trying it now ;)

EDIT: I like this, not even snark, keep this feature :twisted:

Re: CivilAI

Posted: 02 May 2018 21:34
by arikover
PikkaBird wrote:Version 13:
Thank you for having taken into account the weight issue, and having corrected it. Before, with a weight factor of 5, CivilAI always chose UKRS2 0-4-2 Tanks to haul 120 tonnes of coal, whatever the profile of the route. Now, for a short route with 3 height levels difference upwards, it chooses a EE 10000 Diesel instead. It's a bit exaggerated, but it works perfectly.
Sorry for not having been able to provide screenshots in time, and thank you for this fix, and for this AI which is really interesting to play with.

Re: CivilAI

Posted: 06 May 2018 03:23
by PikkaBird
Uhoh, Version 14. The big NEW FEATURE is this version is ships, which are currently limited to passenger ferries. Cargo ships to maritime industries coming soon (tm). It's a big update, so let me know what you think or if there are any bugs or strange behaviour.

Also, this AI now uses a custom fork of the road.pathfinder library, so make sure you get that too (it should download the library automatically if you use the in-game downloader, I think).

Version 14:
- Fixed a bug in introduced in v13, which was preventing the AI connecting small towns to expand its train network (oops).

- Added ships:
- CivilAI will now build docks at town bus stops, and passenger ferries between and within towns in its network.

Road Network:
- Finally revised the oldest and hackiest part of the AI: replaced the cross "spikes" at bus stops with path-based loops.
- Forked the standard road pathfinder to add pathing cost for drive-through road stops.
- Bus stop placement in towns is now more randomised, and the AI will avoid placing stops near existing stops (of any company).
- Added a stricter attempt limit for road pathfinding, and visualised pathfinder progress in the debug log.
- Made the AI more bridge-happy.
- Various other bug fixes and tweaks to pathfinding and record keeping.

- Set default brake van date to 1975, to better align with air-braked stock date of UKRS3.
- Better station spread and local authority checking when attempting to place airports.

Re: CivilAI

Posted: 11 May 2018 06:05
by peter1138
Won't load on a fresh install, Pathfinder.CRoad depends on Graph.AyStar version 6 but it is not listed as a dependency.

Re: CivilAI

Posted: 11 May 2018 06:13
by PikkaBird
peter1138 wrote:Won't load on a fresh install, Pathfinder.CRoad depends on Graph.AyStar version 6 but it is not listed as a dependency.
Oops. Fixed. :)

Re: CivilAI

Posted: 11 May 2018 06:14
by peter1138
Thanks :-)

I've got infrastructure costs enabled. Seems to be very common that a CivilAI is going bankrupt after a year as they build unaffordable airports, sometimes only one.

Re: CivilAI

Posted: 11 May 2018 06:42
by PikkaBird
peter1138 wrote:I've got infrastructure costs enabled. Seems to be very common that a CivilAI is going bankrupt after a year as they build unaffordable airports, sometimes only one.
Turning on "Disable aircraft for computer" will (or should - I'm not sure I've ever tested it!) prevent CivilAI building airports. Infrastructure maintenance costs are GRF-adjustable, so I don't want to assume that just because the setting is on that airports are untenable.

Re: CivilAI

Posted: 11 May 2018 06:48
by PikkaBird
Just a quick bug-fixy update, before embarking on any more major features.

Version 15:

- Rewrote the level crossing removal code (again) to remove the lost vehicle repathing - it was another of those 'clever' ideas that never really worked and took a lot of processing time.
- fixed hang condition when rail depot building failed.
- Made the AI even more bridge-happy.
- Various other bug fixes and tweaks.

Re: CivilAI

Posted: 11 May 2018 07:25
by peter1138
Hmm, are infrastructure costs GS queryable?

Re: CivilAI

Posted: 11 May 2018 09:13
by PikkaBird
peter1138 wrote:Hmm, are infrastructure costs GS queryable?
Yes, they are.

On the other hand, since there is already an exhaustive set of solutions to the problem (you can turn infrastructure costs off, or you can use NewGRFs which reduce the costs, or you can disable aircraft for AI), is there any reason why AIs should go out of their way to quietly conceal game-breakingly silly airport maintenance costs? At least, unlike inflation, infrastructure maintenance costs aren't on by default. ;)