Simutrans(シムトランス)は多言語、多OS対応のシミュレーションゲーム。
概要
Simutransは交通機関を作って貨物や旅客を移送して収益を上げる経営シミュレーションゲームである。
登場するのは鉄道、自動車、船舶、飛行機と高速鉄道、モノレール、路面電車などで、主要な交通機関をほぼ網羅している(なお、この世界のリニアは、少なくともpak64では速いモノレール扱いである)。
「アドオン」と呼ばれる追加ファイルを導入する事で、様々な鉄道車輌や自動車、建造物等をゲーム内に登場させることが出来る。
噂によると、日本の鉄道車両は90%網羅されているとか。
標準では、旅客/郵便/貨物の3種類を運ぶことができ、交通の結節点となるターミナルで乗り換え(積み替え)ることができる。豊富な交通機関を組み合わせて効率のよいルートを敷くことは、このゲームの醍醐味である。
鉄道駅から末端までのバスを走らせたり、貨物を鉄道はもちろんトラックや船・飛行機で連携して運ばせたりするなど、リアルな交通体系が再現可能である。
元はドイツ語だったが今では15ヶ国語に対応し、WindowsだけでなくMac OS XやLinux版、そしてiPhone版アプリも存在する。
詳しくは素直にウィキペディアを参照されたし。
導入
構成としては基本パッケージ(実行ファイル)+PAKセットになっており、PAKセットは64版と128版のメジャー2つから選ぶことをオススメする(2022年1月現在、ここ1年以内に更新されてるのはpak・pak.japan(以上64版)およびpak128.german・pak128.CS(以上128版)の4種類である)。
違いはビジュアルの解像度であり、64は荒く128は細かい。
他にもゲームバランスやアドオン、クライアントの重さなどが両方で異なるが、好みで決めてもらって構わないはずである。
PAKセットの一覧
- 32
- 48
- 64
- 96
- 128
- 192
マルチプレイ
大昔はセーブデータをやり取りしてマルチプレイをしていたが、2011年以降はネットワークを介したマルチプレイに対応している。サーバ側とクライアント側でPAKはすべて共通にすること。そうしないとうまく接続できない。
アドオンの自作
頑張れば産業チェーンなども自作可能である(編集者は昔、実際に自作したことがある)。
ただし、ドキュメントがあちこちに様々な言語で散らばっており、それを理解するのは一苦労である。普通使う大半のものは日本語Wikiを読めば書いてあるので、日本語Wikiを読むのが日本人にとっては楽である。
なお、pngファイルの画像サイズは、スプライトを用いる前提で、使用するPAKセットのサイズの倍数でなければならない(ただし、symbol.BigLogo.pakはpak128用でパックする必要がある。256×256の画像で、4分割のスプライトである)。
ちなみに、このアドオンはPAKとしてパッキングされるが、これをまとめたものがPAKセットである。
datファイルの書き方の例
例えば、pak128のあるPAKのdatファイルの一部分を抜粋したのがこれである。datファイルにおいて、先頭に#のついた行はコメント行であり、無視される。
obj=good
name=Passagiere
copyright=none
metric=
catg=0
value=14
#value=11
speed_bonus=18
weight_per_unit=85引用元: https://github.com/simutrans/pak128/blob/master/factories/goods-128.dat
- オブジェクトのタイプはgood(貨物タイプ)である
- 名前はPassagiereである(この名前は、旅客で用いる特別な名前で、PAKセットで定義すべきものである)
- 著作権者はnone
- 単位はなし
- カテゴリは特殊。専用の貨車に乗せて運ぶ必要がある。旅客は旅客車に乗せて運ぶ
- 基本運送料金はkmあたり14。実際に入ってくる金はこれを300で割ったものになる(つまり1kmあたり0.0467¢)。なお、輸送において1kmは1マスのことを指す
- スピードボーナスは18%。これは基準スピード(乗り物ごとに計算する、その時点で利用可能な乗り物の平均速度。詳細は調べてない)に対して10%上回ると18%の運送料金の増加、10%下回ると18%の運送料金の減少であるということである。ただし、ゲーム設定ファイルで規定されたbonus_basefactor(デフォルト値は128で、12.8%の意味)より運送料金が下回ることはない(つまり、この場合、基準スピードより48.4%を超えて下回る場合でも、12.8%の収入は確保できるということである)
- 1単位あたりの重さは85kg
という意味になる。
これが産業になるともっと複雑になる。
Obj=factory name=oilkraftwerk copyright=Patrick Location=Land DistributionWeight=1 Productivity=600 Range=400 Smoke=industry_smoke SmokeTile[0]=0,1 SmokeOffset[0]=27,-84 #SmokeUplift=0 Electricity_amount=800 Electricity_boost=0 Mail_demand=10 Mail_boost=500 Passenger_demand=20 Passenger_boost=800 InputGood[0]=Oel InputCapacity[0]=6000 InputSupplier[0]=0 #the input factor is a trick how to make powerplant produce more power than mines consume InputFactor[0]=50 MapColor=132 Dims=3,3 intro_year=1900 #This set of backimages is the one used to make the non-animated version. #Lights are lit on the stacks, but flame is at its smallest. BackImage[0][0][0][0][0]=oilkraftwerk.2.0 BackImage[0][1][0][0][0]=oilkraftwerk.0.4 BackImage[0][2][0][0][0]=oilkraftwerk.0.0 BackImage[0][0][1][0][0]=oilkraftwerk.2.1 BackImage[0][1][1][0][0]=oilkraftwerk.0.1 BackImage[0][2][1][0][0]=oilkraftwerk.0.2 BackImage[0][0][2][0][0]=oilkraftwerk.2.2 BackImage[0][1][2][0][0]=oilkraftwerk.1.2 BackImage[0][2][2][0][0]=oilkraftwerk.1.1 BackImage[0][1][0][1][0]=oilkraftwerk.1.0 #--- BackImage[0][1][0][0][1]=oilkraftwerk.0.3 BackImage[0][1][0][1][1]=oilkraftwerk.1.3 #--- BackImage[0][1][0][0][2]=oilkraftwerk.2.3 BackImage[0][1][0][1][2]=oilkraftwerk.1.3 #--- BackImage[0][1][0][0][3]=oilkraftwerk.2.4 BackImage[0][1][0][1][3]=oilkraftwerk.1.3 #--- BackImage[0][1][0][0][4]=oilkraftwerk.2.3 BackImage[0][1][0][1][4]=oilkraftwerk.1.3 #--- BackImage[0][1][0][0][5]=oilkraftwerk.0.3 BackImage[0][1][0][1][5]=oilkraftwerk.1.3 # EOF引用元: https://github.com/simutrans/pak128/blob/master/factories/powerplants/oilkraftwerk.dat
これの意味は以下の通りである。
- オブジェクトのタイプはfactory(産業)である
- 名前はoilkraftwerk(石油火力発電所)である。kraftwerkで名前が終わっているので、これは発電所である
- 著作権者はPatrickである
- 陸地に設置される
- 出現頻度は1である
- 最小出力は600である
- 最大出力は最小出力に400を加えたもの、1000である
- 煙はindustry_smokeを用いる
- 煙は上中央のマスから吐き出され、オフセットは(27, -84)である
- 1生産単位ごとに最大800まで電力を生産する
- 電力供給による生産量増幅はなし
- 郵便需要は10単位、完全に輸送すると500パーミル、つまり50%の生産量増強になる
- 旅客需要は20単位、完全に輸送すると800パーミル、つまり80%の生産増強になる
- 入力貨物の1番目はOel(原油)、6000単位まで貯蔵可能である。必要なだけ原油の生産拠点が生成され、必要に応じて産業が接続される。1生産単位の生産を行うために0.5単位の原油が必要である
- ミニマップ上で表示される四角の色番号は132(赤)である
- サイズは3×3である
- 1900年以降に作成される
- https://github.com/simutrans/pak128/blob/master/factories/powerplants/oilkraftwerk.pngの画像を用いるが、まず1番目の添字は建物の向きである。2番目と3番目はどの座標のタイルか、4番目はどの高さかを示す。5番目はアニメーションの2コマ目以降は1以上の数字になる。oilkraftwerk.2.0とは、oilkraftwerk.pngの(0,256)(127,256)(127,383)(0,383)で囲われた128×128のタイル画像を用いる、という意味になる(pak128なので1マス128px)
街に作られる住宅も、乗り物も、道路も、datファイルとpngファイルを作成してPAKにする。
PAKセットに必要なもの
- config/menuconf.tab - メニューの定義。これはパックとは独立して、テキストファイルとして作成する
- text/[言語コード].tab - 文字列の翻訳(なくてもよいが、基本入れる)
- sound/*.wav - ゲームで使う音声(なくてもよいが、基本入れる)
- sound/sound.tab - 音声の定義(上記で入れた音声をどう使うかの定義。音声なしなら入れなくてよい)
- config/simuconf.tab - PAKセットの基本設定(なくてもよい場合もあるが、基本入れる)
- config/forestrules.tab - 森林の生成ルール(なくてもよいが、基本入れる)
- config/cityrules.tab - 市街地の生成ルール(なくてもよいが、基本入れる)
- crossing.*.pak - 複数の種類の道(道路・線路・運河など)の交差。踏切など
- cursor.*.pak - カーソル(2022年1月時点で12種類ある)
- misc.Construction.pak - 建設中の建物
- misc.PowerDest.pak - 変電所(受電側)
- misc.PowerSource.pak - 変電所(発電所側)
- misc.Sidewalk.pak - 歩道
- symbol.*.pak - 各種シンボル(20種類以上ある)、特にsymbol.Builder.pakは重要な模様
- menu.*.pak - メニュー(GeneralTools・SimpleTools・DialogTools・BarToolsの4種類)
- ground.*.pak - 地面関係のオブジェクト(数種類ある)
- good.None.pak - 空荷
- good.Passagiere.pak - 旅客(pak128.Japanでは二等旅客)
- good.Post.pak - 郵便・手荷物(pak128.Japanでは一等旅客)
- building.*_CITY.pak - 村役場・町役場・市役所
- way.city_road.pak - 市道
- way.*_road.pak - 道路
- building.CarDepot.pak - 自動車用車庫
- building.TrainDepot.pak - 鉄道車庫
- way.*_rail.pak - 線路
- building.*Depot.pak - 車庫(対応する乗り物ごとに最低1種類)
- way.*.pak - 各種道(道路・線路・路面電車・モノレールなど。送電線もこれに属する)
逆に、これらさえ準備できれば独自のゲームバランスの、独自グラフィックのPAKセットを提供できる。
PAKの種類
PAKの種類は、大きく分けて22種類存在する。
- bridge - 橋
- building - 建物(産業を除く。駅や車庫などもこれ)
- citycar - 町の中を走る一般自動車
- crossing - 複数の種類の道の交差。踏切など
- cursor - カーソル。PAKセットで定義する
- factory - 産業。名前の末尾がkraftwerk(ドイツ語で発電所の意味)もしくはpowerplant(英語で発電所の意味)の場合は発電所になる
- field - 田畑
- good - 貨物(旅客、郵便・手荷物、空荷もこれで、これらはPAKセットで定義する。それ以外はPAKセットでもアドオンでも定義可能)
- ground - 地面関係。PAKセットで定義する
- ground_obj - 岩や池、鳥など
- menu - メニュー。PAKセットで定義する
- misc - その他雑多なもの。PAKセットで定義する
- pedestrian - 歩行者
- roadsign - 道路標識(鉄道信号機なども含む。要するに各種道に設置する、建物以外のものはこれ)
- smoke - 煙
- sound - 音声(大昔はsoundをpakしていたため(2006年よりも前)。現在は使用しない)
- tree - 木
- tunnel - トンネル
- vehicle - 乗り物。プレイヤーが購入し、旅客・郵便・貨物を輸送するために用いる
- way - 道
- way-object - 道の上の飾り(架線など)
旅客・郵便・貨物の乗り継ぎについて
Simutransの旅客・郵便・貨物は、現実からすれば奇妙な挙動をする。
まず、停車駅1ごとに1、乗り換え1回ごとに9というスコアが定義されており、このスコアが最小になるような経路を利用する(なお、スコアが同じ場合は乗り換え回数が少ない経路を優先する)(出典)。そして、その乗換駅へ行く列車なら何でも利用する(出典)。どういうことかというと、現実にのっとって、東京駅から北へ向かう以下のような系統が存在するとしよう。
- 山手線
- 京浜東北線 各駅停車
- 京浜東北線 快速(話を簡単にするために平日ダイヤとする)
- 宇都宮線 普通
- 宇都宮線 快速ラビット
- 高崎線 普通
- 高崎線 快速アーバン
- 常磐線 普通(快速)
- 常磐線 特別快速
- 常磐線 特急ときわ
- 常磐線 特急ひたち
- 東北・上越・北陸新幹線(上野停車)
- 東北・上越・北陸新幹線(上野通過)
ここで、東京駅からさいたま新都心駅へ向かうとしよう。何が起きるかというと、
- 京浜東北線 各駅停車経由のスコアは21点
- 京浜東北線 快速経由のスコアは17点
- 宇都宮線・高崎線 普通経由のスコアは5点
- 宇都宮線・高崎線 快速アーバン経由のスコアは13点(乗り継ぎ:浦和駅)
- 東北・上越・北陸新幹線(上野通過)のスコアは11点(乗り継ぎ:大宮駅)
なので、「宇都宮線・高崎線 普通」を使う経路が選択される。ということは東京駅から直行するわけなのだが、東京駅からさいたま新都心駅まで直行する列車なら何でも使うので、京浜東北線にも容赦なく乗ってくる。要するに、経由駅を経由する便なら何にでも乗り込んでくるし、直行で向かうなら直行便なら何にでも乗ってくる(当たり前だが、旅客は郵便車や貨車には乗らないし、石炭は旅客車や郵便車やばら荷貨車以外の貨車には乗らない。経由計算段階でそれは配慮される)、ということである。
これが東京駅から倉賀野駅へ向かうとなると、何が起きるかというと、
なので、経由としては高崎駅経由になる。だが、快速アーバンだろうが、普通列車だろうが、新幹線だろうが、とにかく最初に来た高崎駅に行く列車に乗って、高崎駅で乗り換えて向かうことになる。
なので、適切な経路・停車駅の列車を設定しないと、変な経由で旅客・郵便・貨物が移動することになる。
昔は乗り換え回数のみで判定していたが、どうやら今はロジックが変わってるらしい。
関連動画
関連項目
外部リンク
- Simutrans日本語化・解説 - ファンサイト。
- 公式サイト
- Simutrans Extended - より現実に近いシミュレーションを可能にした改造版
- 4
- 0pt