ゲームメカニクス
OpenTTDマニュアル
導入方法 · FAQ
チュートリアル・操作方法
インターフェイス · README.md
輸送機関

鉄道:

信号 · · ジャンクション · 輸送効率 · 線路のデザイン
道路 · 路面軌道 · 運河 · 空港 · 地形編集
車両
列車 · 道路車両 · 船舶 · 航空機 · 指令
設定
Game options · Difficulty (en) · Advanced Settings (en) · AI settings (en) · NewGRF · チート
その他
Climates (en) · · 産業 · Economy (en) · Disasters (en) · Tips · Hidden features (en) · Hotkeys (en) · Console (en) · ゲームメカニクス · Multiplayer · Scenario editor (en) · Online content (en)
Troubleshooting · Links (en)

ここではOpenTTD内でどのような計算が行われているかの情報を得ることができる。

駅の評価がどう算出されているか、商品がどのように分配されているか知りたいだろう?ここにはその全てがある。

Contents

企業の格付

企業の格付に関するそれぞれの項目は線形に影響する。つまり、ある項目の50%を達成していたら、その項目に割り当てられている点数の50%を得ることができる。金額が含まれている項目では、ゲームで利用している通貨に換算される。ゲーム内では通貨はポンドで計算されている。

項目 目標 点数(最低) 点数(最大) 割合(%)
前年に収益を上げた社有の車両の台数 >=120 0台の場合0点 120台以上で100点 0 から 10%
最近利用した社有の駅の数(駅タイル数?) >=80 0の場合0点 80以上で100点 0 から 10%
2年以上経過した車両の最低収益 >=£10,000 赤字か£0の場合0点 £10,000以上で100点 0 から 10%
過去3年以内の各四半期における最低収益 >=£50k £0の場合0点 £50k以上で50点 0 から 5%
過去3年以内の各四半期における最高収益 >=£100k £0の場合0点 £100k以上で100点 0 から 10%
前年に輸送した貨物の量 >=40,000 0の場合0点 40,000単位以上で400点 0 から 40%
全四半期に輸送した貨物の種類 >=8 0種類で0点 8種類以上で50点 0 から 5%
現在の所持金 >=£10m £0の場合0点 £10m以上で50点 0 から 5%
現在の銀行からの借金 £0 £250kより大きいと0点 £0で50点 0 から 5%
合計

0点 1000点 0 から 100%
企業格付
レーティング 肩書
0 から 127 技術者
128 から 255 輸送管理者
256 から 383 運送調整役
384 から 511 経路監督
512 から 639 理事
640 から 767 取締役
768 から 895 会長
896 から 959 総長
960 から 1000 巨頭
2050年の格付
レーティング 肩書
0 から 319 実務家
320 から 447 起業家
448 から 575 実業家
576 から 703 資本家
704 から 831 重鎮
832 から 959 大御所
960 から 1000 世紀の大物

駅の評価

この章では駅の評価に影響する要因について示している。それぞれの要素は貨物の種類ごとに独立して計算される。

要因 条件 点数 寄与率(%)
貨物を積載するために利用した最後の車両の最高速度(最大255km/h)
道路車両の場合は条件の速度を半分にする。
85km/h(52mph)以上 (速度 (km/h) - 85) / 4 0% から 17%
積載に訪れた最後の車両の使用年数 2 10 4%
1 20 8%
0 33 13%
最後の貨物が積載されてからの経過日数
最後の車両が船舶の場合、条件の日数を4倍する。
(注意:車両が積載するために駅に到着したが積載する貨物が存在しない場合、またはその車両が満載の場合も積載したと考慮される。おそらくバグ.)
30 から 52.5 25 10%
15 to 30 50 20%
7.5 to 15 95 37%
7.5未満 130 51%
駅で積載待ちの貨物量
注意:転送により貨物が他の駅に運ばれてその駅で積載待ちされている場合、その駅で積載待ちしている最大量が元々の駅で積載待ちしているものとして考慮されているようだ(参考:TruncateCargo())。これは以下の条件を満たしたときに駅が貨物を廃棄すること(waiting_changed = true)をトリガーとしている。
  • 貨物が637.5日以内に駅から輸送されていない。[1]
  • 駅の評価が25%以下であり、かつ200以上の貨物が駅で積載待ちしている。[2]
  • 駅の評価が50%以下であり、かつ1つ以上の貨物が駅で積載待ちしている場合、駅の評価に応じてランダムに発生する(つまり、駅の評価が49%ならば1%以下、評価が25%ならば50%以下、評価が0%ならば100%発生する)。[3]
  • 駅で4096以上の貨物が積載待ちしている。[4].
1500以上 -90 -35%
1001 から 1500 -35 -14%
601 から 1000 0 0%
301 から 600 10 4%
101 から 300 30 12%
100以下 40 16%
社長の彫像が駅のある街にある ある 26 10%
イベント 条件 レーティング変化(点数) レーティング(%の値)変化
小規模広告キャンペーンを実施 街の中心から10タイル以内の駅 +64 +25pp
中規模広告キャンペーンを実施 街の中心から15タイル以内の駅 +112 +44pp
大規模広告キャンペーンを実施 街の中心から20タイル以内の駅 +160 +63pp
道路車両の事故 事故地点から22タイル以内の駅 -160 -63pp
列車事故 事故地点から30タイル以内の駅 -160 -63pp
賄賂の発覚 街の影響範囲内の駅 -255 -100pp

点数の合計値を255で割ると、パーセント表記のレーティングとなる。レーティングの最大値は100%である。 駅の評価は2.5日ごと(185 ticks)に計算される。イベント内の項目が発生した場合を除き、駅の評価は2.5日のサイクルごとに2点(0.78%)以上は変化しない。イベントは近隣の駅に対して即座に一時的な評価の上昇(または悪化)を起こす。評価は緩やかに(2.5日に2点ずつ)元の値に戻っていく。

産業からどれだけの量の貨物が輸送されたかに駅の評価はかかっている。これは、ある産業に対して駅が一つしか存在しなかった場合、駅の業過の%の値がそのまま産業の生産量に掛け算されて供給されることを意味する。つまり、産業から算出される貨物の量が少ないということは、駅の評価が低いということを意味する。

注意: 正確な計算式はstation_cmd.cppの"UpdateStationRating()"に記載されている。この計算式にはeconomy.cppの"LoadUnloadVehicle()"にある値が使用されている。

注意: 駅の評価が50%未満になると、駅は貨物を廃棄し始める。

注意: 積載待ちの貨物が4,096以上(または4,096,000リットル以上)になると、駅は同様に貨物を廃棄し始める。さらに、駅に待機できる貨物は32,768単位が上限である。これ以上の貨物は2,3日ごとに消滅する。[5]

駅への貨物配分

商品は駅の評価に応じて分配される。

駅が一つしか存在しない場合、2.5日ごとに駅の評価のパーセンテージを掛け合わせた量の商品を供給する。

複数の駅が存在する場合、商品は評価を基準に分配される。複数の企業の駅が存在する場合、商品はまずそれぞれの企業で最も良い評価の駅を持つ企業に分配される。企業Cに分配される商品の量は、すべての会社の最も良い評価の駅の合計に対する、企業Cの最も良い評価の駅の割合に等しくなる。その後、各企業に割り当てられた数量に応じて各駅に商品が分配される。企業Cの所有する駅Sは全ての企業Cの駅の評価の合計に対する駅Sの評価の割合を基準としていくらかのばらつきをもって受け取る。

地方自治体の評判

評判はプレイヤーが街の周辺で可能な行動を制限する。街の評判は+500からスタートし、プレイヤーの行動によって変化する。

街の影響範囲内で200本の木を植林することで街の評判を上げることができる。場合によっては植林するために土地に存在する何かを除去する必要があるが、木を200本植林すると、評判が最低値の-1000だったとしても、220まで上げることができる。評判が平凡以下の場合、30本の木を植えることは駅を建設したことによる評判の低下を挽回するのに十分である。評判が良い以上の場合、木を植えることによる評判への影響はない。

点数 評判
-1000 から -400 最低
-399 から -200 とても悪い
-199 から 0 悪い
0 から 200 平凡
201 から 400 良い
401 から 600 とても良い
601 から 800 すばらしい
801 から 1000 最高
プレイヤーの行動 要求される評判* 評判への影響
駅を建設する -200 なし
道路の'先端'の破壊 16 / 64 / 112 -18、ただし下限は-100
道路の'先端以外'の破壊 16 / 64 / 112 -50、ただし下限は-100
街のトンネルまたは橋の破壊 144 / 208 / 400 -250、ただし下限は0
建物を破壊** 40 から300 -40、ただし下限は-300
空白タイルに木を植える n/a +7、ただし上限は220
木のあるタイルを削除する n/a -35
賄賂に成功する n/a +200、ただし上限は800
賄賂が発覚する n/a -50になる
* "要求される評判"は設定の地域の再編に対する街の姿勢の"寛大/寛容/対立"によって変化する。
** デフォルトの建物の場合。NewGRFはこの値を0から1000以上まで設定できる。大きな値にすると建物を破壊できなくなる。

毎月プレイヤーの評判が自動的に変化する。


あるプレイヤーの評判が-300(とても悪い)だったとして、2つの利用されている駅と1つの利用されていない駅が街の中にあったとする。
5pts + 2 * 12pts - 15pts = 14ptsとなり、毎月14点得ることができる。 よって、(-200 - (-300))pts / 14pts/mo = 8となり、8か月後にもう一つの駅が建設可能になる。

街の評判についてのコードは town.h, town_cmd.c, tree_cmd.c, road_cmd.cに記載されている。

乗客と郵便物の生成

街と企業の本社ビルは乗客と郵便物を生成する。一方、海上油田は乗客のみ生成する。

街による乗客の生成

周期的に(256 tickごとに)、各家タイルごとに乱数X(0-255)が生成される。その乱数Xが家の人口より小さかった場合、その家は乗客を生成しない。乱数Xが家の人口より大きかった場合は、X/8+1の乗客を生成する(小数点以下切り捨て)。景気後退時には、生成された乗客の人数が半分になるが、小数点以下は切り上げられる。郵便物もほぼ同様の計算で産出されるが、新しい乱数を生成し、人口ではなく郵便物の生成量と比較する。各家の生成量やデフォルト値についての詳細は[6]を参照のこと。

本社ビル

本社ビルには企業の格付に応じたレベルがあり、乗客や郵便物を生成する特殊な建物である。本社ビルのレベルが高ければより多くの乗客や郵便物を生み出し、その生成量は本社ビルの4タイルそれぞれに均等に分配される、タイルごとの生成量は以下の式で求めることができる。

乗客: 256 / 4 タイル / (6 - 本社ビルレベル (1から5) )

郵便物 : 196 / 4 タイル / (6 - 本社ビルレベル (1から5) )

産業の生産量

ここでは各産業が毎月の生産量をどのように決定しているかを解説する。資源の生産は毎月8回または9回発生する。(正確には256 tickごとに発生する。1日は74 tickで1か月は28日から31日である(date_type.h)。このことから、2月の28日間には9%の産業が9回生産を行うが、3月などの31日ある月には96%の産業が9回生産を行うことが分かる)。生産量は月内に生産量の変動がなければ、常に8か9の倍数である。

以下の表はなだらかな経済変動の設定でゲームを始めた際の生産量の初期値である。すべての数字は8の倍数である。ゲームが新しくマップを生成したとき、ゲーム開始直前の12月にすべての産業が8回生産を行い、生産変動が発生しないためである。

一次産業 供給貨物 初期の生産量範囲
鉱山 石炭 56 から 176
森林 原木 48 から 152
海上油田 石油 56 から 176
農場 穀物と家畜 40 から 112
銅鉱山 銅鉱石 56から to 112
油田 石油 48 から 152
鉄鉱山 鉄鉱石 40 から 112
銀行 (温帯) 貴重品 24 から 64

金山 24 から 80

ダイヤモンド鉱山 ダイヤモンド 24 から 80
果物農園 果物 40 から 112
ゴム園 ゴム 40 から 112
水源施設 48 から 152
農場 コーン 40 から 128
製材所 原木 180 または 225 (木がある場合)

綿菓子の森 綿菓子 48 から 152
電池農園 電池 40 から 128
コーラ井戸 コーラ 48 から 136
プラスチック泉 プラスチック 56 から 160
発砲所 48 から 152
タフィー鉱山 タフィー 40 から 112
砂糖鉱山 砂糖 40 から 128

(この表の産業と貨物について計算したい場合は、_origin_industry_specsにあるbuild_industry.hを参照のこと。例えば砂糖鉱山はCT_SUGAR, 11となっているため、11から始まる。そこで、industry_cmd.cppのDoCreateNewIndustry()にある計算式を使用すると、上記の数字に128から383のランダムに生成された整数を掛け算して、256で割り、小数点以下を切り捨てる。すると、11を入力すると5から16になる。最終的にこれに8をかけることで、40から128となる)

生産量の変動

毎月いくつかの産業の生産量がランダムに変化する。

オリジナル(TTD風の経済ルール)

256x256タイルのマップでは、毎月1つの産業の生産量が変動する可能性がある。この数字はマップサイズに比例しており、"Daily production changes"という関数に記載されている(r14332)。

しかし、生産量自体は6つのレベルに制限されている。最低、低い、普通(新規ゲーム開始時か産業を新設した場合はこのレベル)、多い、2倍多い、最多の6つである。 生産量の変動はこのレベルの間で行われ、半分になるか2倍になるかである。

簡単に考えるため、256x256のマップで最大でも毎月1つの産業の生産量が変動する場合を考える。

なだらかな経済変化の場合

/File/en/Outdated content.png
Out of Date
This article or section is outdated. Some of its content may no longer be accurate due to changes in the latest release. Please update this article.
難易度設定とAdvanced settingは設定に置き換えられている

過去の設定では、Advanced SettingにはSmooth economy、難易度設定にはSteady economyがあり、別の設定だった

特殊な場合

炭鉱から石炭が70%輸送されている場合、生産量が3-23%上昇する確率が3%(4.5% * 67%)あり、3-23%(平均13%)減少する確率が1.5%(4.5% * 33%)ある。

よって、 (1 + (0.03 - 0.015) * 0.13) ^ 12 - 1 = 0.0237 or 2.37%

つまり、炭鉱は2年目以降平均2.37%ずつ生産量を増加させる。 (1.0237 ^ 20) - 1 = 59.6% : 20年後には平均して59.6%増加させる。
(1.0237 ^ 50) - 1 = 321.8% : 20年後には平均して321.8%または3.22倍となる。
(1.0237 ^ 100) - 1 = 10.35x : 100年後には10.35倍となる。

産業の評価が80%以上の場合、生産量を増価させる確率は3.75%であり、減少させる確率は0.75%である。
(1 + (0.0375 - 0.0075) * 0.13) ^ 12 - 1 = 0.0478 または 4.78%

つまり、2年目以降平均して4.78%生産量が増加する。 (1.0478 ^ 20) - 1 = 2.54x : 20年後には2.54倍になる。
(1.0478 ^ 50) - 1 = 10.32x : 50年後には10.32倍になる。
(1.0478 ^ 100) - 1 = 106.62x : 100年後には100.62倍になる。

only_decreaseの設定になっている産業(温帯マップの油田)は、4.5%の確率で減少する
(1 + (0 - 0.045) * 0.13) ^ 12 - 1 = (0.99415) ^ 12 -1 = -0.068 または -6.8%

つまり、2年目以降平均して6.8ずつ生産量を減少させる。 (0.9320 ^ 20) = 24.46% : 20年後には初期の生産量の24.46%になる。
(0.9320 ^ 50) = 2.96% : 50年後には初期の生産量の2.96%になる。s

ln(0.5) / ln(0.99415) = 118.1か月、または9.84年only_decreaseの産業の半減期である。
ln(8 / 48) / ln(0.99415) = 305.9か月、または25.4年は48単位/月で開始した油田の平均寿命である。
ln(8 / 152) / ln(0.99415) = 501.8か月、または41.8年は152単位/月で開始した油田の平均寿命である。

"良い"評価の産業では、平均して29.6年で生産量が2倍になり、"すばらしい"評価では14.8年2倍`になる。ゲーム中の1日が2.36秒の場合、生産量が2倍になる時間は"良い"評価で7.1時間であり、"すばらしい評価"では3.6時間である。ほぼ最低値の100程度の生産量の産業が最大値の2040または2295になるには"良い"評価で130年、"すばらしい"評価で65年かかる。

しかし、実際のゲーム中での生産量変動の割合はランダムである。上記の確率はただの参考であって、長い目で見た時の確率であると理解しないとストレスになるだろう。各々の産業は上記の平均から大きく逸脱することもある。統計的に言えば、6/10の産業は最高の評価を65年続けても100から2040-2295の生産量まで成長しない。1/9の産業は60-80%の評価を50年続けても、生産量を減少させる。

より産業の評価を高めるためには、産業の生産量に適した貨車の数(最低レベルの生産量の産業では2台の貨車で十分だろう)を利用することだ。[満載]の指示は通常そのような貨物列車に利用する。

注意:正確な計算式はindustry_cmd.cppの"ChangeIndustryProduction()"に記載されている。

運送報酬の相場

貨物を輸送した際の収益は4つの要因から計算される。その4つの要因は、輸送した貨物量、貨物の価値、輸送した距離、どれだけ時間通りだったか、である。

貨物 単位 早着時間
(日数)
遅延時間
(日数)
初期の貨物価格
(ポンド)
旅客

即時 24 £39
貴重品 1 32 £91
家畜 4 18 £53
穀物 トン 4 40 £58
商品 5 28 £75
石炭 トン 7 なし £72
鋼鉄 トン 7 なし £69
鉄鉱石 トン 9 なし £62
原木 トン 15 なし £61
石油 キロリットル 25 なし £54
郵便物 20 90 £55
亜寒帯マップ
Wheat (en) Tons 4 40 £58
Paper (en) Tons 7 60 £66
Gold (en) Bags 10 40 £71
Food (en) Tons Immediate 30 £69
亜熱帯マップ
Rubber (en) Kiloliters 2 20 £54
Fruit (en) Tons Immediate 15 £51
Maize (en) Tons 4 40 £53
Tropical Wood (en) Tons 15 None £97
Copper Ore (en) Tons 12 None £59
Water (en) Kiloliters 20 80 £57
Diamonds (en) Bags 10 None £71
おもちゃの国
Sugar (en) Tons 20 None £54
Toys (en)

25 None £68
Batteries (en)

2 30 £53
Sweets (en) Tons 8 40 £75
Toffee (en) Tons 14 60 £58
Cola (en) Kiloliters 5 75 £59
Candyfloss (en) Tons 10 25 £61
Bubbles (en)

20 80 £62
Plastic (en) Kiloliters 30 None £54
Fizzy Drinks (en)

30 50 £76

初期の貨物価格は貨物100単位を1タイル輸送した場合の収益である。収益はゲームの進行に伴ってインフレする。

遅延配送によるペナルティは以下である。

(インフレがない場合):
200,000リットルの石油を10日で20タイル輸送した場合:
2 * £54 * 20タイル * 100% = £2160

100袋の郵便物を100日で100タイル輸送した場合
£55 * 100タイル * (1 - 0.80*0.4 - 0.10*0.4) = £3520

計算を簡単にするヒント:
収益 = 貨物量 * 貨物の単価 * 0.4
貨物の単価はゲーム中の運送報酬の相場グラフから実際に輸送した日数をX軸に取って読み取る。
これにより、5%刻みで大体の収益を予想することができる。

注意:

車両の速度

OpenTTDの内部では"km-ish/h"(時速っぽい速度)で演算されている(km-ish/h = mph*1.6である)。 km-ish/hからkm/hへの変換は1.00584をかければよい。

1タイルは車両速度から664.(216) km-ishであり、668kmまたは415マイルである。これは以下の事実より導き出される。

よって、1km-ish/hの車両は:(1 * 16 * 256) / (74 * 2) * 24 = 664.(216) km-ish移動する。

結果的に100km/hの車両は1日に3.6タイル移動する。

航空機

道路車両

(注意:これらの数値は道路車両の加減速モデルがリアルの場合は適用されない)

船舶

列車

列車の加減速モデルがリアルの場合

曲率 最高速度 (km/h)
線路 モノレール マグレブ
0 (90度ターン) 61 91 121
1 (2x45度ターン) 88 132 176
2 111 166 221
3 132 198 264
4 151 226 301
5 168 252 336
6 183 274 365
7 196 294 392
8 207 310 413
9 216 324 432
10 223 334 445
11 228 342 456
12+ 231 346 461
曲率 最高速度 (mph)
線路 モノレール マグレブ
0 37 56 75
1 54 82 109
2 68 103 137
3 82 123 164
4 93 140 187
5 104 156 208
6 113 170 226
7 121 182 243
8 128 192 256
9 134 201 268
10 138 207 276
11 141 212 283
12+ 143 214 286

"曲率"は曲がり角の間の列車の平均貨車数である。非常に鋭いカーブ(曲率が0と1)の場合、長い編成の列車には平均の長さは無効である。

/File/en/Manual/Game Mechanics/Speed-limits.png

参考 : Realistic acceleration (en)Corners (en)

より詳細なコードはground_vehicle.cpp, aircraft_cmd.cpp, roadveh_cmd.cpp, ship_cmd.cpp, train_cmd.cpp, vechicle.cppを参照のこと。

OpenTTD 1.6.1では出力はhp、最大けん引力はkN、列車の合計重量はトン、列車の連結数(機関車と貨車)、先頭車両の空気抵抗(NewGRF設定ではデフォルトはmin(192,max(1,floor(2048/max_speed)))であり、速い列車ほどより流線形にできていると設定されている)、上り坂にある列車の連結重量(機関車と貨車)、下り坂にある列車の連結重量(機関車と貨車)、斜面の角度(設定により1-10の間の値になる、デフォルトは3)、そして列車の現在速度のkm/hを利用し、マグレブでない列車の加速度は下記のように計算される。

force = min((max_te * 1000), floor((power * 746) / (current_speed * 5/18))) [N]

slope_force = weight_on_upslope * slope_steepness * 100 - weight_on_downslope * slope_steepness * 100 [N]

axle_friction = total_weight * 10 [N]

rolling_friction = floor((current_speed + 512) * 15 / 512) * total_weight [N]

air_drag_coefficient = 14 * floor(air_drag_value * (1 + number_of_parts * 3/20)) / 1000

air_drag = floor(air_drag_coefficient * current_speed^2) [N]

acceleration = (force - (slope_force + axle_friction + rolling_friction + air_drag)) / (total_weight * 4) [256th of a km/h per half-tick]

注意:空気抵抗係数は列車の一部分でもトンネル内にある場合は2倍の値になる。

同じ値を利用して平衡速度も算出可能である。平衡速度とは同じ状態が続いたときに出せる列車の速度であり、下記の計算式で算出する。(定数としてrolling_friction(つまり、速度は512km/h以下である)と仮定し、浮動小数点値のforceair_dragを無視して整数として扱う。)

p = (slope_force + axle_friction + rolling_friction) / air_drag_coefficient

q = (-power * 746 * 18/5) / air_drag_coefficient

C = (27/2*q + ((27/2*q)^2 + 27*p^3)^(1/2))^(1/3)

equilibrium = min(max_speed, p/C - C/3, max(0, max_te * 1000 / air_drag_coefficient - p)^(1/2))

街の成長

を参照のこと。