"Settings every AI author would agree"

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

Post Reply
xarick
Transport Coordinator
Transport Coordinator
Posts: 337
Joined: 26 Feb 2015 00:52

"Settings every AI author would agree"

Post by xarick »

I'm looking for the opinion of every AI author to come up with settings that would help/benefit the majority of the available AIs that actually build and profit. To participate, copy and paste the following settings and adjust them to your preference or range preference. If you have no preference about some setting, just delete the line pertaining to that setting.

I wish to have the AIs to compete solo for 100 years.

EDIT: I may be altering the values I've set for some of the settings listed here from time to time if during my tests I find something that can make some AIs perform better. I might as well give an explanation as of why I had set a setting like that, and give my own opinion.

[difficulty]
number_towns = 3 (min 0, max 4) (very low, low, normal, high, custom)
industry_density = 5 (min 0, max 5) (funding only, minimal, very low, low, normal, high)
max_loan = 500000 (min 100000, max 500000)
initial_interest = 2 (min 2, max 4) (2%, 3%, 4%)
vehicle_costs = 0 (min 0, max 2) (low, medium, high)
competitor_speed = 4 (min 0, max 4) (very slow, slow, medium, fast, very fast)
vehicle_breakdowns = 0 (min 0, max 2) (none, reduced, normal)
subsidy_multiplier = 3 (min 0, max 3) (x1.5, x2, x3, x4)
construction_cost = 0 (min 0, max 2) (low, medium, high)
terrain_type = 2 (min 0, max 4) (very flat, flat, hilly, mountainous, alpinist)
quantity_sea_lakes = 1 (min 0, max 4) (very low, low, medium, high, custom)
line_reverse_mode = false (false, true)
disasters = false (false, true)
town_council_tolerance = 0 (min 0, max 2) (permissive, tolerant, hostile)

[game_creation]
landscape = tropic (temperate, arctic, tropic, toyland)
snow_line_height = 7 (min 2, max 253)
starting_year = 1950 (min 0, max 5000000)
land_generator = 1 (min 0, max 1) (original, terragenesis)
oil_refinery_limit = 48 (min 12, max 48)
tgen_smoothness = 0 (min 0, max 3) (very smooth, smooth, rough, very rough)
variety = 0 (min 0, max 5) (none, very low, low, medium, high, very high)
generation_seed = 2 (min 0, max 4294967295)
tree_placer = 0 (min 0, max 2) (none, original, improved)
map_x = 9 (min 6, max 12) (64, 128, 256, 512, 1024, 2048, 4096)
map_y = 9 (min 6, max 12) (64, 128, 256, 512, 1024, 2048, 4096)
water_borders = 15 (min 0, max 16) (manual: NW (8) + SW (4) + SE (2) + NE (1), random: 16)
custom_town_number = 1 (min 1, max 5000)
custom_sea_level = 90 (min 2, max 90)
amount_of_rivers = 0 (min 0, max 3) (none, few, medium, many)

[vehicle]
road_side = right (left, right)
train_acceleration_model = 1 (min 0, max 1) (original, realistic)
roadveh_acceleration_model = 1 (min 0, max 1) (original, realistic)
train_slope_steepness = 3 (min 0, max 10)
roadveh_slope_steepness = 7 (min 0, max 10)
max_train_length = 7 (min 1, max 64)
never_expire_vehicles = true (false, true)
max_trains = 5000 (min 0, max 5000)
max_roadveh = 5000 (min 0, max 5000)
max_aircraft = 5000 (min 0, max 5000)
max_ships = 5000 (min 0, max 5000)
disable_elrails = false (false, true)
freight_trains = 1 (min 1, max 255)
plane_speed = 4 (min 1, max 4) (1/1, 1/2, 1/3, 1/4)
plane_crashes = 0 (min 0, max 2) (none, reduced, normal)

[construction]
max_heightlevel = 15 (min 15, max 255)
autoslope = true (false, true)
extra_dynamite = true (false, true)
max_bridge_length = 64 (min 1, max 4096)
max_bridge_height = 12 (min 1, max 255)
max_tunnel_length = 64 (min 1, max 4096)
road_stop_on_town_road = true (false, true)
road_stop_on_competitor_road = true (false, true)
raw_industry_construction = 0 (min 0, max 2) (none, as other industries, prospecting)
industry_platform = 0 (min 0, max 4)
freeform_edges = true (false, true)
extra_tree_placement = 0 (min 0, max 2) (none (breaks lumber mill), only in rain forests, everywhere)

[station]
never_expire_airports = true (false, true)
station_spread = 12 (min 4, max 64)
modified_catchment = true (false, true)
distant_join_stations = true (false, true)

[economy]
town_layout = 4 (min 0, max 4) (original, better roads, 2x2 grid, 3x3 grid, random)
allow_town_roads = false (false, true)
found_town = 0 (min 0, max 2) (forbidden, allowed, allowed (custom town layout))
allow_town_level_crossings = false (false, true)
station_noise_level = true (false, true)
inflation = false (false, true)
multiple_industry_per_town = false (false, true)
bribe = false (false, true)
exclusive_rights = false (false, true)
fund_buildings = false (false, true)
fund_roads = false (false, true)
smooth_economy = false (false, true)
feeder_payment_share = 75 (min 0, max 100)
town_growth_rate = 0 (min 0, max 4) (none, slow, normal, fast, very fast)
larger_towns = 4 (min 0, max 255) (none, 1 in 1, 1 in 2, 1 in 3, ...)
initial_city_size = 10 (min 1, max 10)
infrastructure_maintenance = false (false, true)

[linkgraph]
recalc_interval = 4 (min 2, max 32)
recalc_time = 16 (min 1, max 4096)
distribution_pax = 0 (min 0, max 2) (manual, asymmetric, symmetric)
distribution_mail = 0 (min 0, max 2) (manual, asymmetric, symmetric)
distribution_armoured = 0 (min 0, max 2) (manual, asymmetric, symmetric)
distribution_default = 0 (min 0, max 1) (manual, asymmetric)
accuracy = 16 (min 2, max 64)
demand_distance = 100 (min 0, max 255)
demand_size = 100 (min 0, max 100)
short_path_saturation = 80 (min 0, max 250)

[pf]
forbid_90_deg = false (false, true)
pathfinder_for_trains = 2 (min 1, max 2) (npf, yapf (recommended))
pathfinder_for_roadvehs = 2 (min 1, max 2) (npf, yapf (recommended))
pathfinder_for_ships = 1 (min 0, max 2) (original, npf, yapf (recommended))
reverse_at_signals = true (false, true)

[order]
no_servicing_if_no_breakdowns = true (false, true)
serviceathelipad = true (false, true)

[script]
settings_profile = hard (easy, medium, hard)
script_max_opcode_till_suspend = 250000 (min 5000, max 250000)

[ai]
ai_disable_veh_train = false (false, true)
ai_disable_veh_roadveh = false (false, true)
ai_disable_veh_aircraft = false (false, true)
ai_disable_veh_ship = false (false, true)
Last edited by xarick on 25 Aug 2016 00:03, edited 2 times in total.
Formerly known as Samu
Wormnest
Engineer
Engineer
Posts: 117
Joined: 14 Jul 2013 12:33
Location: Netherlands

Re: "Settings every AI author would agree"

Post by Wormnest »

I can't give a complete list since I don't have a lot of time currently.

As AI author I usually don't make the settings too easy since an AI should be able to handle all kinds of settings though it also depends on what part of my AI I'm testing. You should put in some challenges even if that means that some AI's will not be able to handle them well.
The only thing I generally stay away from is turning infrastructure costs on.

For the rest with such a small map I would lower the maximum amount of vehicles and different maximums per vehicle type depending more or less on the max profits you can expect. Although it is difficult to find a good balance for that. With that map size I wouldn't go over 500 vehicles max except maybe for rv's.
Brumi
President
President
Posts: 920
Joined: 18 Jul 2009 17:54

Re: "Settings every AI author would agree"

Post by Brumi »

Here we go for SimpleAI:

Code: Select all

[difficulty]
max_loan = 500000 (min 100000, max 500000)
disasters = false (false, true)
town_council_tolerance = 0 (min 0, max 2) (permissive, tolerant, hostile)
Haven't really tested my AI with lower loan amounts, although it should work with less, as it doesn't spend too hard in the early game. The other two may have some unwanted consequences.

Code: Select all

[game_creation]
Empty :) My AI should be able to work with various terrain types.

Code: Select all

[vehicle]
max_trains = 500 (min 0, max 5000)
max_roadveh = 2000 (min 0, max 5000)
max_aircraft = 500 (min 0, max 5000)
It already turned out that my AI is capable of throwing the "Took to long to save" exception with around 1800 trains. So I'd prefer not to keep these numbers too high.
Actually I tested my AI more with the original acceleration model than realistic.

Code: Select all

[construction]
autoslope = true (false, true)
Not a must, as I have already tested my AI with autoslope off if my memory serves right, but it still hinders the AI's pathfinder.

Code: Select all

[station]
Empty.

Code: Select all

[economy]
inflation = false (false, true)
infrastructure_maintenance = false (false, true)
These two may cause problems if enabled, I've already got reports of my AI not handling inflation too well, despite the fact that I've done some work on dealing with inflation.

Code: Select all

[linkgraph]
Empty, as Cargodist doesn't do anything when only point-to-point routes are involved. But after all, there's no real point in enabling Cargodist for AIs, as there are no AIs at the moment that actually support it :)

Code: Select all

[pf]
forbid_90_deg = false (false, true)
Not a must, but still recommended though. Trains may reverse slower at stations if it is disabled.

Code: Select all

[order]
Empty.

Code: Select all

[script]
settings_profile = hard (easy, medium, hard)
Doesn't really make sense to test AIs against each other on any other difficulty than hard. These difficulty profiles are self-imposed limitations for the AIs anyway.

Code: Select all

[ai]
ai_disable_veh_train = false (false, true)
ai_disable_veh_roadveh = false (false, true)
ai_disable_veh_aircraft = false (false, true)
ai_disable_veh_ship = false (false, true)
Obviously :)

Well, these are my preferences for SimpleAI, but after all, I agree with Wormnest about the settings.
Your settings are reasonable for an AI-only test, the only thing that bothers me is the vehicle limit :)
Alberth
OpenTTD Developer
OpenTTD Developer
Posts: 4763
Joined: 09 Sep 2007 05:03
Location: home

Re: "Settings every AI author would agree"

Post by Alberth »

I would think an AI should be able to handle a non-modified confguration file. New users that play for the first time don't start tweaking settings.

If you want a more explorative test, you could make a number of different configurations, to see what AIs do under different conditions, eg
- total flat
- difficult hilly
- small
- large (mostly empty)
etc
Being a retired OpenTTD developer does not mean I know what I am doing.
Kogut
Tycoon
Tycoon
Posts: 2493
Joined: 26 Aug 2009 06:33
Location: Poland

Re: "Settings every AI author would agree"

Post by Kogut »

Every AI should handle non-modified configuration file (or one with train acceleration switched from original to fixed).

My AIAI is supposed to handle even very weird settings/newgrf/maps, and I would welcome reports about avoidable problems.

In general, I would consider only Cargodist as "too weird for AIs". I would not expect AIs to handle specialized GS (though for example "Awards" one may be interesting, as it seems to promote well-managed companies with bigger and varied networks).

infrastructure_maintenance is quite evil - for start it flips air travel from free money into money sinkhole.

In my case testing with weird settings would be more interesting - as it is more likely to reveal unexpected bugs and problems (also, because AIAI is a bit better than other AIs in weird situations).

xarick wrote:pathfinder_for_trains = 2 (min 1, max 2) (npf, yapf (recommended))
pathfinder_for_roadvehs = 2 (min 1, max 2) (npf, yapf (recommended))
pathfinder_for_ships = 1 (min 0, max 2) (original, npf, yapf (recommended))
This group of settings probably should not be touched.
xarick wrote:max_roadveh
Note that here many AIs may produce enough profitable RV to cause significant lag. It is true also for other types of transport but it may be surprising how fast thousands of trucks/busses may be made. Even lower limits (500) may result in a big lag with multiple AIs running.
Correct me If I am wrong - PM me if my English is bad
AIAI - AI for OpenTTD
Post Reply

Return to “OpenTTD AIs and Game Scripts”

Who is online

Users browsing this forum: No registered users and 5 guests