himeshi’s blog

Simutrans本体改造まわりのお話をつらつらと

2024年のOTRP

この記事は、Simutrans Advent Calendar 2024 6日目の記事です。

adventar.org

本記事では昨年と同じく、OTRPの今年の動きをかんたんに振り返ってみようと思います。なお、今後やりたいと考えていることについては先日別の記事でまとめてありますのでそちらを参照してください。

himeshi.hateblo.jp

開発状況

今年はv35_2からv42_0_1まで計16回のリリースを行いました。アップデートの細かなヒストリーはGitHubのReleasesを参照していただければと思います。

github.com

追加した主な機能を箇条書きすると以下のようになります。

  • 所要時間ベース経路検索
  • 他社駅接続
  • Contributionの受け入れ
    • 編成、編成の連結の向きの反転
    • 都市の人口一覧をcsvクリップボードにコピーする機能
    • 「駅一覧」ウィンドウの並べ替えオプションの追加

実際には、一年のうち大半を所要時間ベース経路検索の開発に費やしました。いまだにたくさんの要改良点を抱えていますが、ひとまずローカルやNSでそこそこ楽しく遊べる段階にまでたどり着いたかなと思います。

所要時間ベース経路検索はパッと見るとExtendedの真似ごとをまたいきなり始めたように見えますが、思えばここに至るまでの下地はこの数年で徐々に整えられてきたのかなと考えています。ダイヤを増解結を組み合わせて所要時間的に効率的なダイヤを組むことが一般的になり、金沢版によってより優等列車に旅客を強く誘導するためのスケジュールオプションが追加されました。所要時間ベース経路検索の第一目的は「優等列車を適切に利用する安定的な経路選択」の実現ですが、この要請に直接的な手段で応えることは必然であったと思います。

一つ補足をしておくと、OTRPは引き続きRoute Cost法による経路検索をサポートし続けますし、デフォルトのオプションはRoute Cost法です。所要時間ベース経路検索はSimutransのゲーム性自体を強く変えてもはや別ゲームにしまうため、時にはRoute Cost法で、時には所要時間ベース経路検索で遊ぶという遊び方で良いと考えています。とはいえ、所要時間ベース経路検索を採用するNS鯖が今後増えていくとイチ開発者としては嬉しく思います。

OTRP利用ログ解析

例年のように月ごとのアクティブユーザ数を...と行きたかったのですが、今年はログ収集サーバを安定運用できたのが11月しかありませんでしたorz

というのも、自宅鯖の回線をJCOMからNUROに切り替えたのですが、数年前と違って昨今のNUROはv4グローバルアドレスをくれなくなりました。それどころか、MAP-Eでの限定的なポート解放すら無効化しており、サーバの公開は事実上IPv6のみになりました。正直この状況になると高い月額料金を払ってNUROを使う意味はないので、光回線を使うにしてももう少し割安なフレッツ系プロバイダで良いと思います。

IPv6ファイアウォールにしろDNSにしろIPv4とはかなり別世界なので、全く知らない世界でいろいろあれこれ試行錯誤していたのですが、結局一年の大半でログを失う結果になってしまいました。今時自宅鯖なんかやるもんじゃないですねorz

という言い訳をしつつ、直近11月の日別アクティブユーザ数のグラフです。

ユーザの識別はIPアドレスを用いています。数値言えば去年と比べておよそ半減なのですが、v4とv6ではIPアドレスまわりの事情が全く異なるのでユーザの絶対数については去年のものと比較に適しません。とはいえ、v6では1日ごとにグローバルなtemporaryアドレスを作り替えながらアクセスするクライアントが多いと思いますので、日別ユーザ数を出すにはこちらのほうが実際のトレンドに即していると考えられます。

バージョンの普及としては、KUTA版マージ前(v24 users)のバージョンはごく少数であり、所要時間ベースルーティング導入以前(v31 users)のバージョンも2割未満となっています。v36以降も経路検索のデフォルトはルートコスト法のままなので所要時間ベース経路検索の普及とは関係ないのですが、ともかく新バージョンを出すたびに皆さま素早く導入していただいているようです。ありがとうございます。

続いて、pakセット勢力図です。2024年11月のみのデータで算出しています。

ここ数年のトレンドから一気に変わって128無印が復調し再び最大勢力となりました。128無印:128jp:64系がおよそ同じ割合になる昔の状態に戻ったようです。

オフ会やネットワーキング

OTRP自体の開発や日本のSimutrans界隈の中だけではなく、今年はSimutrans界隈の外への発信や、海外とのSimutranserとの交流を行うことができました。せっかくなので今年できたことを書き残しておきます。

try! SwiftでSimutransの話をした

try! SwiftはiOSアプリ開発界隈の中でも特に著名な国際カンファレンスの一つです。今年は4月に開催され、国内外から800名(?)ほどが集まりSwift言語の技術的な話を学ぶカンファレンスなのですが、光栄なことにその1枠でお話しさせていただきました。

中身としては実際のところSimutransを題材にしたSwift - C++ interoperabilityという技術的トピックの話なのですが、題材としてのSimutransをかなり強く打ち出したので、カンファレンス後には多くの方に「Simutransの人」「交通系ゲームの人」という認識を持っていただくことができました。

youtu.be

iOSDC JapanでSimutransの布教セットを配布した

iOSDC JapanはiOS開発界隈において日本最大級の規模を持つカンファレンスです。今年は8月に開催され、私も(Simutransに関する話ではないのですが)トークをさせていただきました。

try! SwiftではSimutransの認知を高めることはできたのですが、実際に遊んでくれる人を増やすには導入障壁を取り除く必要がありました。そこで超軽量なスターターセットを用意し、それをその場でAirDrop配布することですぐに試せるようにしようと考えました。実際に会場で数名の方に興味を示していただき、その場で遊んでいただくことができました。

ちなみに先日の「やりたいこと」記事で書いたmacOSにおけるNotarization問題はこのときに発覚したものです。次にカンファレンスでスターターセット布教するときはとりあえず自腹でAppleにお布施してバイナリをNotarizeした上で布教活動をしないと、受け取ったバイナリを起動するために毎回四苦八苦することになりそうですorz

欧州のSimutranserとオフ会した

9月に欧州に渡り、イギリスとオランダを訪れました。イギリスでiOSDevUKというカンファレンスで登壇させていただいた後、オランダに行きイギリスに戻ってきたという流れです。ちなみにiOSDevUKではSimutransの布教活動をする余裕は全くありませんでしたorz

オランダでは土日にわたりドイツ人のMariculousさんとオランダ人のDanivenkさん(こちらは日本のDiscordサーバでもおなじみですね)とオフ会していただきました。特にDanivenkさんにはオランダの街をいろいろ案内していただいてアイデアをいただいただけでなく、OTRPへのcontributionに繋げることができて大変大きな収穫になったと思います。

その後ロンドンに戻り、Model Railways Clubという鉄道模型サークルの集会所でJamespettsさんとお会いしました。時間的な制約があり2時間だけでしたが、DCCという日本ではあまり見かけない方式の鉄道模型についていろいろ教えていただいたり、増解結の実装について議論をしたりしました。

今は日本にいながらでもDiscordで海外Simutranserと気軽に交流できる時代ではありますが、言語の壁は昨今の技術でどうにかなっても時差だけはどうにもなりません。その場所、その時間を共有し濃密な交流ができたことは、なかなかに得難い貴重な経験になったと思います。

おわりに

例年通り、来年どうするかは全く計画がありません。とはいえ、先日「やりたいこと」記事でも書いたように、Steamから流入するプレイヤーが増えていたり本家との互換が失われていることによる弊害が拡大していたりと、どちらかというと負債の解消系タスクをやらないといけない時期に入ってきているかなと思います。正直負債解消プロジェクトはお仕事だけでお腹いっぱいではあるのですが、もう8年もやっているプロジェクトですのでそういう苦しいことにも向き合っていかなければいよいよどうにもならなくなってきました。

ともかく、来年も界隈の皆さまとともに楽しくSimutransをできたらいいなと思います。

最後に告知です。2025年1月25日(土)に、オフラインイベント「超シムトラ井戸端会議2025」を東京、上野で開催します。イベントとしては、去年横浜で開催されたSimutransオフ会のコンテンツを大幅に強化した版です。情報の詳細、および参加申し込みは下の調整さんリンクよりご参照ください。皆さまのご参加お待ちしております。

chouseisan.com