ペルリ的な何かなブログ

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

【Simutrans】早送りの限界に挑戦してみた( #SimutransAdventCalendar2020 の記事 その1)

という事でたぶんアドベントカレンダーのネタ記事としてちょっとしたネタ枠的なことをやってみました。

Simutransをやってて疑問に思った人は居ないでしょうか?

「Simutransの早送りはどのくらいまで行けるのだろうか?」と

という事でやってみました。

まずはみんな大好き横瀬ベンチマークから。

f:id:pm1965:20201128225127p:plain

横瀬マップ起動直後の状態

最新のOTRPv28.2で起動してみました。さすが64bit版なので起動などはサクサクですね。

マップ端のほうの軽いエリアだと30fps出てるので遊ぶうえでも問題ない程度ですね。

さすがに704×560(でいいんだっけ?)での表示範囲で今時遊ぶのも狭すぎると思いますが、参考程度にという事で。

f:id:pm1965:20201128230231p:plain

横瀬駅付近だとこんな感じ

大量の列車が走る横瀬駅付近では22fpsまで落ちます。少しカクツキますが、一応遊べる程度には動いてくれます。

それぞれFHDサイズで表示すると次のような感じになりました。

f:id:pm1965:20201128230736p:plain

f:id:pm1965:20201128230803p:plain

それほど変化がないどころか横瀬駅周辺ではFPSが向上していますが、多少の負荷の変動で違う程度でそれほど大きな問題とはなりませんね。(というかこれが本題ではないので)

ちなみにSimutransにおいて一番重くなるのは描画範囲の変化なので、4kサイズで一番引いた状態で表示するとFPSはものすごく下がります。

f:id:pm1965:20201128231035p:plain

4kで表示すると数fpsしか出ない

ベンチマークとして横瀬マップは非常に優秀(というかこれだけ重たいマップがなかなか手に入らない)ですね。

さて、本題の早送りに移りますが、最初の2つをそれぞれ倍速にしたらどうなるかという話ですが、まず早送りにした時点で3~4倍程度の速度しか出ず、非常に重たい状態となります。

ということで2倍までしかやっていません。(というかコレは前置きです)

f:id:pm1965:20201128231606p:plain

1.5倍(端のほう)

f:id:pm1965:20201128231634p:plain

1.5倍(横瀬駅付近)

1.5倍でも両方ともに20fpsを切るくらいになっています。

f:id:pm1965:20201128231742p:plain

2倍(端のほう)

f:id:pm1965:20201128231806p:plain

2倍(横瀬駅付近)

ともに14fpsと実用上問題のある水準まで低下していますね。

 

さすがにこれだけ巨大なマップで大量の乗り物が動き回るマップではこの計測は無理があると思われます。

 

ということでここから本題に移っていくわけですが。

前回の記事からちょいちょい出ている”ある実験”のために開発したマップでやりました。

f:id:pm1965:20201128233511p:plain

1倍速

1倍速で25fpsほど出ています。100編成ほどしか走っていないマップなので動作は軽いです。描画範囲を変えても横瀬の時のようにfpsが下がるなんてこともありませんでした。

どんどん行きます。

f:id:pm1965:20201128233701p:plain

200倍速

200倍ですが何ともありませんね!

f:id:pm1965:20201128233741p:plain

1100倍速

1000倍で撮り忘れたので1100倍速。全く変化がありません。

f:id:pm1965:20201128233828p:plain

4000倍速

40分くらいかけて4000倍まで行きましたが全く変化がありません。

f:id:pm1965:20201128233922p:plain

10000倍速

1時間半近くかけて10000倍までいきましたがこれも変化がありません。
アニメ見ながらやったのでそれほど退屈でもありませんでしたが。

f:id:pm1965:20201128234038p:plain

最終的には15000倍

2時間半かけて15000倍速まで加速しましたが、全く変化がありませんでした。

さすがに飽きたのでこれで打ち切りにしましたが、ある疑問が生まれました。

コレは本当に15000倍なのかと。

 

ということで1年間の実時間をストップウォッチで計測。

すると3分28秒程度で1年が経過することが判明。

理論上、BPM=22では等倍速で約13時間58分12秒、15000倍速では3.35秒で経過してしまいます。

という事でコレは15000倍速ではありませんね。

計算してみると241倍程度の速度しか出ていないことになります。

ちなみに240倍で時間を計測すると3分29秒程度でほぼその値となりました。

同様に260倍速で計測すると3分21秒。おそそ250倍速で流したときの理論値となりました。

ということでさらに350倍で計測してみるとやはり3分21秒。やっぱりこのくらいが限界のようです。

本来ならば時間の計測というのは数回やってその平均値をとるのが正しい実験のやり方なのですが、今回は1回のみという事で割愛させていただきます。面倒くさいので。

 

おそらくマップの開発状況やPCそのもののスペックによる限界値と思われるので環境によって変わってくる部分は大きいと思いますがあくまでも一例という事で。

 

ということで早送りの限界は250倍以上は意味がないという結論でした。
一応加速すればどこまでもいけそうな感じではありますが、さすがにそんなバカげた実験をする人もそうはいないと思いますし、おそらくこのくらいが限界という事実が大事なんじゃないかということで。

 

今年もアドカレはもう1記事書く予定ですので。

 

Simutransアドベントカレンダー2020はこちらから

adventar.org

ちなみにこの記事と実験は11月28日にやっています。