std版OTRPの方針について

ひめしです。本日OTRP v14_5をリリースしました。

 OTRPはもともと本家standardへの統合を目指して開発していましたが、いろいろあって本家統合を放棄したのが昨年の11月末のことでした。その後は専用配布ページをオープンし(といってもgithubリポジトリmarkdownを置いただけですが)、ほそぼそと修正アップデートを重ね、さらにsimutrans extendedへの移植を行い、今年6月にextendedへの統合を果たしました。

extendedへの統合を果たしたからといって全てが終わったわけではありません。OTRPには依然として不完全な箇所が多く存在しており、これからもそれが顕在化するごとに一つ一つ対処していくことになります。extendedに統合をしていただいたからこそ、私には保守を続ける責任があります。

 

ところで、最近のOTRPは純粋な「二車線パッチ」の機能以外にも様々な機能を搭載するようになりました。height制限を64に拡張したり、交差点一時停止(結局コレは失敗作に終わりましたが)を実装してみたり、道路信号の方向制御を実装したりといった具合です。現在の(standard版)OTRPはこのように独自機能を拡大しています。

するとOTRPは私、ひめしが運営する本家simutransの拡張版ということになるのですが、コレだけ聞くとjamespetts氏のsimutrans-extendedと同じことをやってるように聞こえます。本体改造にとって配布チャンネルはまとまっていればまとまっているほど良いので、私がやっているOTRPプロジェクトは全てextendedに一本化すれば良いという話になります。

しかし、私はそうはせず、今後も独自に「simutransひめしエディション」の開発・配布を続けていくつもりです。というのも、extendedはもはやstandardとは別ゲーであり、セーブデータの互換性もほぼなく、standardが好き・慣れている人々にとって到底受け入れられるものではないからです。

そこで「simutransひめしエディション」では以下を開発の原則にしています。

  • アップデート時は常にsimutrans standard nightlyに追従する。あくまでもstandardの拡張版であり、本家でされた改良、バグ修正の恩恵をプレイヤーが確実に受け取れるようにする。アップデートで必ずnightlyに追従することで本家の変更をmergeすることが困難になるのを防ぐ。
  • 独自アドオンを要求する機能は搭載しない。standard用のアドオンがあればそれで完結する設計にする。ただでさえ64, 128, extended用のpakとフィールドが分かれているsimutransのアドオン界隈において、OTRP独自の規格を設けてもうまくいくはずがないからである。
  • セーブデータの互換性を確保する。いつ何時も、standardのセーブデータは必ずOTRPで読み込めるようにする。standardのセーブデータを読み込んだときは、OTRPで開いたときにはstandardと全く同じ挙動をするようにする。(つまりOTRPはただのstandardとしても使える。)OTRPのセーブデータもOTRP独自の機能まわりを犠牲にすればstandardで読み込む手段を提供する。(v14_5で実装済み)
  • UIの互換性に配慮する。standardからOTRPに乗り換えてきた人にとって、OTRPの機能について何も知らなくてもstandardとして遊ぶ分には困らないようにする。プレイヤーはOTRPの機能について少しずつ探求することができる。(extendedは始める前にある程度extended独自のゲームシステムについての知識がないと不自由する傾向にある。)

すなはち、「便利になったsimutrans standard」を目指すという話です。standardで遊ぶならOTRPで遊んだほうがよい、そう皆さまに思っていただけるようなプロジェクトにしたいと思っています。

あくまでOTRPはstandardの拡張であり続けるつもりなので、OTRPで追加した機能は必要に応じてextendedにpull requestしていきます。extendedにはextendedの設計思想があるので、これに合致すると判断した機能のみextendedに持っていくことになります。(例えば交差点一時停止は今のアルゴリズムではダメ。)

ちなみにバージョン番号の付け方ですが、v12以降はセーブデータの構造が変わったときにmajor number(v14_5の14の部分)を上げることにしています。データの構造が変わらないアップデートのときはminor numberが上がります。セーブデータに記録されているのは実はmajor numberだけです。

 

OTRPは常に皆さまのためのsimutransでありたいと思っています。どんな些細なことでもtwitter#OTRPatch のタグをつけて投げていただければ可能な限り対応いたします。OTRPのコード自体の信頼性がどうしても本家standardより大きく劣るので皆さまにご迷惑をおかけすることも多いと思いますが、できる限りサポートさせていただいて信頼していただけるプロジェクトにしていく所存です。

今年の夏はいろいろと忙しいので細々とやっていくことになりそうですが、今後ともよろしくおねがいします。

2017年をふりかえる

年の瀬ということで2017年のシムトラ的活動を振り返ろうと思います。

 

2016年12月〜2017年1月

シムトラ本体いじりをいつから始めたかは定かではありませんが、2016年の年末には既にいじっていたのは覚えています。最初はTiny Timetable Patchの移植でもやろうかなと思いましたが難しそうなので「追い越し条件を緩和するだけでできそう!」という理由でOTRP(二車線パッチ)の開発をはじめました。

その後大学の期末試験のおべんきょうをいくらか犠牲にしながら開発は進み、プロトタイプを公開するに至りました。

2月〜3月

大学の春休みになったのでOTRPの開発が一気に進みます。2月6日にversion 1をpost。その後ハイペースで開発は進み、現在のおおよその骨格ができあがります。(UIまわりはしばらく紆余曲折)

4月〜7月

基本的には大学の講義やレポンヨヨに忙殺されていたのでOTRPの開発は停滞します。(が、なんだかんだいってちょくちょくはやっていました。)LCパッチを手直しして本家に投げたのはこの時期ですね。

5月には横浜で第一回シムトラ学会が開催され、OTRPを始めとしたパッチ開発の普及を図りましたが、元はといえば私のこんなツイットがきっかけでした。

 3月に大学の学科でLT(ライトニング・トーク。一人5分程度の持ち時間で次々とプレゼンをしていく。)合宿をしたのがきっかけで、それをシムトラ界隈に持ち込もうと思ったわけです。

8月〜9月

OTRPは増築を繰り返した影響でバグ(仕様上の欠陥?)が際限なく増えていったのでひたすらその対処をし続けていました。あいかわらずバグだらけのコードのおかげで本家フォーラムでの議論も陰りが見え始めます。

この頃になると改造したいポイントが増え、一人ではどうしようもないレベルになってきました。そのうち私が手を付けることができたものについてはこのあいだのアドベントカレンダーに書きました。

himeshi.hateblo.jp

コードをいじれる人、そうでなくてもプログラミング的思考ができる日本勢が大幅に不足している現状を見て、少しでも状況を改善しようと実践パッチ開発ゼミを開催したのもこの頃ですね。9月のおわりには札幌シムトラ学会もありました。

10月〜12月

学期中はやっぱり大学に忙殺されるのでシムトラの活動は止まります。

OTRPは9月の札幌学会の頃には実用上致命的な欠陥が取り除かれた状態になりました。しかし依然としてコードは整理されず、自分の開発リソースも限られているのでstandardでの開発を諦め(どういうかたちであれ)新しい進路をとることを決断しました。

This patch has not been updated for over a month, and I decided to suspend the development.
Still I continue to distribute the binaries and follow the changes of the master brunch, but I cannot go further.
If there is someone who want this feature in simutrans standard, it's someone in this forum that completes this patch, not me.

学科でアドベントカレンダーが開催されていたのに刺激されて、シムトラ界隈でもアドベントカレンダーを持ち込んでみました。最終的に全枠埋まり、非常に密度の濃い記事が多数投稿されたことは主催としてうれしいかぎりです。

まとめ的なにか

個人としては2017年はただの1プレーヤーから1 contributorへと立場が変わった年でした。contributorというかproject participantといったほうがいいかもですね。

間違いなく人生で最もシムトラ漬けな一年ではありましたが、最初一人で作っていたパッチから最終的にはこうして界隈のみなさんと共に歩んでいく方向に少しは行けたかなと思っています。一人でやれることはあまり多くありません。自分でやるより界隈のみなさんと一緒にやっていけたらなという思いからシムトラ学会を提唱し、パッチゼミを行い、アドベントカレンダーでより多くのみなさんと深いレベルの議論ができるように活動してきたつもりです。

年末のシムトラ学会で今後の指針てきなものを打ち出したっきりそのままになってますので年明けから当面はその指針に沿って行けたらと思っています。2018年の抱負的なものは特に考えていませんが、しいて言えば指針の完遂ということになるでしょう。

2018年は4月から研究室に配属され8月には院試もあるのでシムトラから離れるかもしれません。2018年もシムトラがよりすばらしい「なにか」になってくれればいいなと思っています。くれればいいなじゃないですね。これをお読みのみなさんが各々活動するんですね。

 

乱文失礼しました。よいお年を。

各パッチのこれまでと今後

この記事はSimutrans Advent Calendar 16日目のエントリとして書かれたものです。 

adventar.org前回はOTRPについてお話したので今回はそれ以外のパッチについてお話します。

続きを読む

本家フォーラムに1年いて感じるあれこれ

この記事はSimutrans Advent Calendar 2日目のエントリとして書かれたものです。

adventar.org


今後の本体改造計画についてつらつらと書こうかなと思いましたがそれは次回に回します。

続きを読む