2024年1月31日水曜日

Simutrans Extended ver15のスケジュールUIを弄る


ひめしやふぃすたむと、ひめしの影響を受けた日本人達に自分の趣味プロジェクトを荒らされて、
らんらんまでやりかけで退場したら、じぇーむ寿司があまりにも気の毒すぎ(´・ω・`)

なので、色々実装してみたいアイデアが溜まっていたところだったのだけど、中断して
やりかけのEx15のUIの作業を進めてみる。

ネロデンというExtended開発に大きく携わってた人が2023年に色々機能追加をやってたみたいで、その影響でビルドが通らなくなってるので修正(´・ω・`)

マスターで大丈夫なのにex15ブランチではコンパイル失敗する理由がよくわからない。
明らかにオーバーライドのエラーなのに(´・ω・`)


作業中の新スケジュールUI。



デバッグモード?でUI上の各コンポーネントの枠線が表示される。
これを参考にしつつUIのパーツを並べたり組み替えたりしていく。

スケジュールUIのデザインもこんな感じに一新されるので、やっぱりver15はちゃんと実装されて欲しい(´・ω・`)

あのゴミ日本人どもが足引っ張らなければと思うと怒りがこみあげてくる(´・ω・`)
1年間完全に停滞したし、将来のstandardからの組み込みや将来渡るコードの保守、都市回りの機能追加、道路回りの機能追加、こういった部分に甚大なダメージを与えた。
それでもらんらんは奴らの尻拭いに何十時間も費やしたし、もちろん他のコーダーも。
それでもまだ甚大な被害が残ってる。(´・ω・`)はあまじ

シムトラ学会だのアドベントカレンダーだのやっておいて、その成果がこの惨状よ?
そういう連中が本国(日本)では偉そうにしてるの見たら腹が立って当然でしょ?

2024年1月29日月曜日

Simutrans Extendedで路線の輸送断面表示UIを作る #その1

Simutrans Expert(仮)向けの改造案件


以前からアイデア自体はあったのだけど、とりまバグ修正の提出も終わったので
コーディングのリハビリ兼ねて、新しい統計表示を追加してみる。

輸送断面?っていうの?駅間輸送密度表示を追加してみよう。
なんちゃら線が赤字で廃線の危機、とかいう話題になるとこういう特定区間の輸送密度だのって話はでてくるからね。



昨日の記事で書いたみたいに、結局これも別のUIを参考にして、あれができるならこれもできるんじゃないのっていう着想。
部品をバラしてそれを集めて再構成し、別のUIを作りあげる。パクりの集大成。

コーディング初心者はこの手法でどんどん小さなパッチを作って、
コードに触れて理解を深めて着実にステップアップしていくのが大事。

具体的にはシミュトランスではスケジュール管理ウィンドウや編成ウィンドウにある「運転時分履歴」タブで駅間の移動時間を計測できるから、じゃあ輸送量も同じように計測できるよねっていう理屈。

正直「運転時分履歴」って、明らかに異常な遅延や迂回が発生しているかどうかの探知に使える程度で、らんらん的にあんまし要らない機能だったんだけど、今回は大変役に立ちました。ありがとう(´・ω・`)


輸送密度っていうのは

https://www.jrhokkaido.co.jp/corporate/region/pdf/koumoku/01_01.pdf

こういう統計で、路線の各駅間でどれくらい利用されているのかっていう統計データ。

路線全体の輸送密度なら、シミュトランス側は以前のらんらんのパッチで計測するようになりました。路線の総輸送キロ営業キロで割るだけだからね。

各駅間の輸送密度は路線を運営・管理していくにはめっちゃ重要な統計なんだけど、残念ながらこんな有用な統計がジムトランスにもシミュトランスにもない!!!

これがないと路線が全体赤字なら人が一杯乗ってる区間も含めて全区間が廃止されちゃうかも?

はっきし言って、

輸送ゲーなのにこの統計がないって、
このげえむ作ったのは
馬と鹿のハーフ
なんですかね?(´・ω・`)はぁまじくそげ


路線の末端だけガラガラなんてことはよくあるし、そういうデータをプレイヤーがはっきり見れるに越したことないよね。むしろこれが見れない理由がない。プログラマーの手抜き!


冗談よ(´・ω・`)

駅間のデータを全部記録してたらセーブデータがどれくらい大きくなるか、ちょっと分からないんだよね。らんらんは計算苦手なので。

でも「運転時分履歴」で各駅間で計測時間を3回分保存してるくらいだから大丈夫よねっていう、これもほぼ他UIのパクりコピーだからいけるよね理論。


計測で記録がちゃんとできていれば、記録したデータを使える形にして見やすく表示してやればいい。


制作進捗...



(´・ω・`)おほーっ!!

なんと、各路線で各貨物カテゴリ各運賃クラス、分けて記録されます。
駅も路線も編成も統計(チャート)はクラス毎に分けて記録されないのに、
らんらん製駅間輸送密度計測ではグリーン車各駅間利用率までしっかり確認できちゃう優れもの!!

路線輸送密度と平均混雑(利用)率は駅間のデータを用いてちゃんと計測する必要があります。
混雑(利用)率を計測する場合に、
A駅 ─ 99km ─ B駅 ─ 1km  C駅
こういう路線があったとする。

AB間の乗車率が100%BC間の乗車率が5%だった場合。
AB間の乗車率が5%BC間の乗車率が100%だった場合。

距離を考慮しないで考えた場合①と②は同じ混雑(利用)率に見えてしまう。
これに距離を掛け合わせることでこの路線がどれくらいの割合で埋まっているか、というのが分かるわけ。
特定の区間だけ混んでるというのも明確に。
ちなみに駅間混雑率が100%超えるとバーが紫色になるよ。

Extendedプレイヤーならすぐ分かるだろうけど、バーとかは全部他のUIでも使ってるもの。
つまり全て既存のものの組み合わせ。

あとはこの統計データのセーブデータへの読み書き処理と、画面の更新フラグと更新処理を実装するだけです。
意外とあっさり完成しそうなのだけど?(´・ω・`)

本当になんでこれが無かったの。
そして今までやらなかったの(´・ω・`)はあまじはあ
(´・ω・`)優先度?


果たしてこの機能は完成するのか?

つづく(´・ω・`)

おまけ
今回スクショにあるダークテーマは2/1まで公開

2024年1月28日日曜日

UI改修:テーブル表示にするだけの変更

 Before



After










以前に自分で作った関数に置き換えるだけなので5分でできる修正。

これだけの変更でもずいぶん見やすさが変わるよね。


プログラム改造のヒント:

「何ができるか」を知っていると簡単な改造案件が見つかりやすい。

「何ができるか」は『あれこれを組み合わせれば』ってコードを見ずとも予想できる場合が多いよ。

ExtendedのUIではこの手のテーブル式表示を増やしているので、ここやここもこのタイプにできそうだよね。という具合に。


余談:

ちなみにヘッダーとテーブル以外に枠を表示する機能が今のところないし、左ボーダーだけ表示とか個別に設定とかも無理なので、区切りの縦線が欲しいところだけど諦めた(´・ω・`)

基本的にStandardのコードを改変してるだけだし。

左側に縦線表示はできそうと思ったけど、現状のコードだと子コンポーネントから親コンポーネントのサイズが分からないので(テーブルサイズが固定ではなく、ダイアログサイズに合わせて変化する仕様なので)、縦の長さを適切に設定ができないと思う。

はっきし言ってSimutransのUIは各列でアラインメントが取れてなくて、見にくい部分が多いウインドウが多いウンチUI(´・ω・`)
編成一覧(スケジュール一覧)とかね。
あれは仕様頻度高いのでなんとかしたいね(´・ω・`)


2024年1月27日土曜日

Extendedに実装済みと思ってたけどされてなかったものたち

久しぶりにシミュトランスを開いて、

(´・ω・`)あれ?これって無かったっけ

と思ったもの


1. convoy detailの改良

https://forum.simutrans.com/index.php/topic,21702.msg200771.html#msg200771


2. 車庫ダイアログの見た目の改善(テーブル化)


Ex15ブランチには組み込まれてると思われるけれど、

Ex15は永遠にこないかもしれず、それでこれらの改善が得られていないのはただただもったいない(´・ω・`)

今後について

残念ながらもはやSimutrans Extendedの開発はほぼほぼストップしてしまっている。

2018年、ひめしのくそコードに当時のコードメンテナー(A氏)がブチ切れたが
わざわざひめしのために時間割いて長文まで書いてくれたのに、
ひめしはそれにロクに耳を傾けず、全く理解せず、そして反省もせず
やがて月日が経ち開発が進むにつれ、当時のコードメンテナーが正しかったことが証明されだしてきて、
らんらんもようやくそのことを理解し始めたころには既に手遅れだった。
OTRPを完全拒否したSimutrans(standard)は救われた(´・ω・`)
そっち(Standard)も別の開発者(T氏)がひめしにブチ切れてたね。どっちかっていうとそっちはひめしの態度に。
らんらんの言ってることは彼らが以前言っていたことにしかすぎない。

失敗はつきものなのでバカやっても別にいいと思うけど、先輩方の助言や忠告を無視してまで我を貫いて、それで盛大にやらかしておいて、その後始末をする努力とか姿勢くらい見せたらどうなのっていう話なのだが、自分の尻拭いをするどころか開き直っている本物のクズっぷり。

ここらへんの事は別途wikiにまとめていく。
以前もこれについては書いたけどwikiにまとめる前の備忘録として再掲。

とりあえずひめしと同じ穴の貉にはならないように、判明しているらんらんが作ってしまったバグや問題については修正を提出した。

当時クラスの最大数は5だと勝手に思い込んでいて、
クラス数がpaksetによって変わることに気が付いていなかった。
じゃあ5固定じゃなくてpaksetに合わせて対応するコードを書けるのか?
当時はそのスキルを持っていないと思ったので先延ばしになってしまった。
ようやく修正パッチを提出することができた(´・ω・`)


そして今後について。

これまでらんらん達向けに色んな改造をしてきて、その多くはSimutrans Extendedにバックポートしてきた。
Ex15がいよいよ開発が本格的になってきたと思ったので、らんらんがEx15のコーディングにシフトした結果、競合がめちゃくちゃ多くなってしまった(´・ω・`)

Ex15が完成したら本格始動しようと思っていたけど、もうEx15は無理だろうね。
現在紫蘇ハジョーがStandardの開発をかなり頑張っているようなのだけど、
ひめしという大バカ者のせいでStandardからの取り込みももはや困難だし。はあまじ。

元々ゲーム感覚でパッチを作っていたし、ふとアイデアが浮かんできてちょっとやってみようってことも結構あるので、
あとはまったりらんらん達向けにシミュトランスのお遊び改良やっていきます(´・ω・`)
Ex15に片足突っ込んだままの状態なので、これをどうするかだけをフォーラムで確認しておこうと思います。


①Simutrans Expert
②Simutrans Extended+(ぷらす)

固有フォークはSimutrans Expertという名前に変更します(´・ω・`)
またセーブに関係ない変更が続けられてシミュトランス本家と競合が発生しないうちだけ、Simutrans Extended+というバージョンも出します。


もちろんコーディング解説もやっていきます。これもwikiで。
そもそもそっちは環境作るためのライブラリの問題で詰まってるんだけどね。ジェーム寿司に聞いても放置されたまま。

ここではSimutrans(Extended)改造や機能追加の様子を紹介していきます(´・ω・`)
元々フォーラムで英語でやっていたことをここで日本語でやることにしただけのこと。
フォーラム(特にExtended側)ではもう長い間、バグ報告もフィードバックも期待できない状態が続いていた。
わざわざ時間と手間をかけて英語で書くだけ時間の無駄なの(´・ω・`)


ここまで読んでくれてありがとう。
ブログではその記事を公開してから数日の間、記事でおまけを公開していく場合があります(´・ω・`)

路線の「各駅待機状況表示」の改良について考える #その4

 フォーラムに新たに報告されたバグに対応したり 色々平行作業したり躓いたりあったけど、とりあえず進捗状況(´・ω・`) 本当はExtendedに提出しないでおこうと思っていた機能を、ある程度は提出することにした。 理由は (1) Extended バージョン15.0のために、UI...