ペルリ的な何かなブログ

Simutransとかいろいろ自由気ままに書き散らす

【Simutrans】スケールスピードを考えてみる

という事でそういう記事です。

こういうゲームはあまりスケール感を考えないほうがいいのですが、たまにTwitterなんかを見てるとそういう話になるので、サクッと検証してみました。

検証方法がとても雑なので、そこまで精度が高いわけではないですが、与太話としてお付き合いいただければ幸いです。

 

さて、速度というものは単位時間当たりに進んだ距離で表示されていますね。速度で一般的に使われているkm/hまんまですが。

 

ここで、Simutransの仕様上、時間というのは可変です。

詳しくは過去の記事を↓に貼り付けますのでそれを参照してください。

pm1965.hatenadiary.jp要約するとSimutransの時間の長さは高度な設定(simuconf.tab)の「bits_per_month」で変えられるという事です。

また、距離に関しても車両の長さを基準にすると1タイルあたり25m(pak128.japanなど)であったり40m(pak64やpak128)であったり編成の詳細で見れる走行距離では1タイル=1kmと表示されたりとまちまちです。

そこで、bits_per_month=19のとき(各pakで主に使われている値)である速度で走ったときに進むタイル数で速度を検証していきたいと思います。

ちなみに、Simutransのウィンドウの左下に出てくる日付や時刻も1ヶ月の時間を基準に算出されていて、設定で変更されるので絶対的な時間として使うことができません。特に日数は1ヶ月の時間が決まっていて30日の月と31日の月でそれぞれ30等分と31等分しているので。

という事でSimutransにおける絶対的な基準時間は1ヶ月の長さとなるわけです。

ここで扱う速度は性能上の速度(km/h)とSimutransのゲーム上で進んだタイル数(tile/month)で語っていくことになります。

前述の通り検証が雑という事で検証の簡略化のため加減速性能を一切無視して表定速度で考えていきたいと思います。

今回、この検証のために、こんなマップを用意しました。

f:id:pm1965:20211002102127p:plain

検証用のマップ

1042×8の真っ平なマップにひたすら1000マス直線の線路を敷いて、1000マス走行するのにかかった時間を計測していきます。

ちょうどOTRP版だと駅間の所要時間が計測できるようになっています。ただし、OTRP版の時間は一か月を1440等分(60分×24時間)したtickという時間の単位を使っています。

その辺にあった最高速度120km/hの813系を適当に走らせて所要時間を計測しました。

f:id:pm1965:20211002102545p:plain

813系を走らせた場合

ちなみに別の検証も兼ねて行きは100タイル間隔で設置した各駅に停車。帰りは1000タイルノンストップ運行となっています。

で、1000マス走行するのに1893tickかかっているので時速120km/hの編成は0.583tile/tick=760.7tile/monthとなります。

 

次に最高速度を160km/hに引き上げた383系を使って計測をしていきます。

今度は最高速度を160,130,100と最高速度を変えた時の状態をグラフにしていきます。

f:id:pm1965:20211002123057p:plain

速度(km/h)を変えた時の速度(tile/tick)

だいたい見ての通りの線形関数になりそうですね。

ちなみに160km/hの時には1007tile/monthくらいの速度になります。130km/hの時には822、100km/hの時には638くらいとなります。

当然ながら加速が弱い場合にはもっと時間がかかりました。

今回はそんな話でした。

今月はこの計測に付随してもう一つ別の検証をやっているのでそれを記事にしたいと思います。