CivilAI

Discuss the new AI features ("NoAI") introduced into OpenTTD 0.7, allowing you to implement custom AIs, and the new Game Scripts available in OpenTTD 1.2 and higher.

Moderator: OpenTTD Developers

User avatar
PikkaBird
Graphics Moderator
Graphics Moderator
Posts: 5602
Joined: 13 Sep 2004 13:21
Location: The Moon

Re: CivilAI

Post by PikkaBird »

CivilAI version 7 is now on Banananananas.

This is a major update, and adds trucks and trains to the AI's repertoire, as well as tidying up a lot of its earlier behaviour. It should now be considered a "normal" competitive AI rather than a specialist oddity, although hopefully it's kept its general "civility" and pleasant construction style.

Changes in v7:

- Added better company and owner names.

Trucks added:
- CivilAI will now build trucks for mail, goods and food.
- Truck stops are added to busy bus stops for mail pickup and goods delivery.
- Supply depots are built near goods- and food-producing industries to supply cargos to towns.

Trains added:
- CivilAI will build short train lines to support goods- and food-producing industries, power plants, and water towers.
- Known issue: since (by design) the AI only builds non-electrified railways, it can't build default trains after the 20th century.

Air network tweaks:
- Increased the default minimum air route distance from 80 to 128 tiles.
- Made sure redirected aircraft are redirected from the correct airport.
- Improved land levelling for airport construction.

Road network tweaks:
- simplified the ugly "loop" built at outer bus stops - these never worked properly and were just clutter.
- Tweaks to when and how many vehicles are bought.
- Improve road network integrity by scanning for lost vehicles.
- Simplify crossing replacement code (which never really worked).
- More conservative network construction:
- Road network construction search now limited to towns the AI can build in.
- The AI will only expand the road network once it has built up the network it has, to avoid spending all its money on roads early on.

- CivilAI no longer funds roadworks, because that's not very civil.
- Various other tweaks and fixes.
Brumi
President
President
Posts: 920
Joined: 18 Jul 2009 17:54

Re: CivilAI

Post by Brumi »

Whoa, this is a very welcome addition, I need to try it :)
Brumi
President
President
Posts: 920
Joined: 18 Jul 2009 17:54

Re: CivilAI

Post by Brumi »

Seems very good so far!

First I accidentally started a game with FIRS (with OpenGFX+ Trains and Road Vehicles). The AI didn't scream at all, was working without problems. But when I realized it, I started a vanilla game.

Some highlights:
  • It reuses already existing train stations and rails! Cool!
  • I also really like the names it gives to its trains :)
  • No crashes whatsoever so far.
But: for some reason, all its trains have Kirby Paul Tank engines, even in 1987. Maybe the AI got its train valuator upside down?
User avatar
PikkaBird
Graphics Moderator
Graphics Moderator
Posts: 5602
Joined: 13 Sep 2004 13:21
Location: The Moon

Re: CivilAI

Post by PikkaBird »

Brumi wrote:But: for some reason, all its trains have Kirby Paul Tank engines, even in 1987. Maybe the AI got its train valuator upside down?
Hehe...

The AI likes little engines for its short railways. :) Obviously with the default trains, it doesn't have too many options.
User avatar
PikkaBird
Graphics Moderator
Graphics Moderator
Posts: 5602
Joined: 13 Sep 2004 13:21
Location: The Moon

Re: CivilAI

Post by PikkaBird »

Well, a few people have downloaded the update and I've had no bug reports, so here's v8.

Changes:

- Added Water to the cargos to be trucked to towns.
- Cargo truck selection now prefers native vehicles over refits, like train wagons.
- Minor bug fixes.
xarick
Transport Coordinator
Transport Coordinator
Posts: 341
Joined: 26 Feb 2015 00:52

Re: CivilAI

Post by xarick »

Hi. I found a crash with v8. Cannot iterate null.
Attachments
Unnamed, 1982-01-08.png
(266.4 KiB) Not downloaded yet
Unnamed, 1982-01-05.png
(267.81 KiB) Not downloaded yet
Unnamed, 1981-11-11.sav
(22.69 MiB) Downloaded 236 times
Formerly known as Samu
User avatar
PikkaBird
Graphics Moderator
Graphics Moderator
Posts: 5602
Joined: 13 Sep 2004 13:21
Location: The Moon

Re: CivilAI

Post by PikkaBird »

Thanks!

version 9:
- Fixed collision causing company director name not to be set.
- Fixed reported crash.
xarick
Transport Coordinator
Transport Coordinator
Posts: 341
Joined: 26 Feb 2015 00:52

Re: CivilAI

Post by xarick »

Hi again. The index 'Count' does not exist.
Attachments
Unnamed, 1977-05-13.png
(52.8 KiB) Not downloaded yet
Formerly known as Samu
User avatar
PikkaBird
Graphics Moderator
Graphics Moderator
Posts: 5602
Joined: 13 Sep 2004 13:21
Location: The Moon

Re: CivilAI

Post by PikkaBird »

Damn.

Try this one please. :)
Last edited by PikkaBird on 15 Apr 2018 08:52, edited 1 time in total.
User avatar
PikkaBird
Graphics Moderator
Graphics Moderator
Posts: 5602
Joined: 13 Sep 2004 13:21
Location: The Moon

Re: CivilAI

Post 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!
User avatar
PikkaBird
Graphics Moderator
Graphics Moderator
Posts: 5602
Joined: 13 Sep 2004 13:21
Location: The Moon

Re: CivilAI

Post 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.
User avatar
PikkaBird
Graphics Moderator
Graphics Moderator
Posts: 5602
Joined: 13 Sep 2004 13:21
Location: The Moon

Re: CivilAI

Post 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.
arikover
Route Supervisor
Route Supervisor
Posts: 466
Joined: 15 Jun 2007 09:27
Skype: madchimiste
Location: Berlin, Deutschland

Re: CivilAI

Post 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?
User avatar
PikkaBird
Graphics Moderator
Graphics Moderator
Posts: 5602
Joined: 13 Sep 2004 13:21
Location: The Moon

Re: CivilAI

Post 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?
User avatar
PikkaBird
Graphics Moderator
Graphics Moderator
Posts: 5602
Joined: 13 Sep 2004 13:21
Location: The Moon

Re: CivilAI

Post 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.
arikover
Route Supervisor
Route Supervisor
Posts: 466
Joined: 15 Jun 2007 09:27
Skype: madchimiste
Location: Berlin, Deutschland

Re: CivilAI

Post 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.
User avatar
PikkaBird
Graphics Moderator
Graphics Moderator
Posts: 5602
Joined: 13 Sep 2004 13:21
Location: The Moon

Re: CivilAI

Post 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.
peter1138
OpenTTD Developer
OpenTTD Developer
Posts: 1732
Joined: 30 Mar 2005 09:43

Re: CivilAI

Post 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.
He's like, some kind of OpenTTD developer.
User avatar
PikkaBird
Graphics Moderator
Graphics Moderator
Posts: 5602
Joined: 13 Sep 2004 13:21
Location: The Moon

Re: CivilAI

Post 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. :)
Post Reply

Return to “OpenTTD AIs and Game Scripts”

Who is online

Users browsing this forum: No registered users and 36 guests