shingoushori's dialy

音信号処理を専ら研究していた元博士後期課程の学生によるメモ

Simutrans 2018年の取り組み - セーブデータいじりWebアプリ 編

本記事は、Simutrans Advent Calendar 2018 〜 12/13 セーブデータいじり1.9 です 

Simutrans っていう、最高なフリーでオープンソースな交通シミュレーション
それについての、2018年の私のたぶん独自な取り組みについて書きます
Part 2 として、セーブデータいじり1.9 ... セーブデータいじりWebアプリです
なぜ 2.0 ではなく 1.9 かというと ... 致命的に残念だからです

[bzip2.jsがあればいいのに ...]

Simutrans のセーブデータには、私が知る限り 6タイプあります
 引用 : Simutransポータル日本語版 -> 設定ファイル/simuconf.tab - Simutrans日本語化・解説
zipped ... zip圧縮保存
bzip2 ... bzip2圧縮保存。zipよりもファイルサイズが小さくなるため、ネットワークゲームに適しています。ただし圧縮解凍はzipよりも若干遅くなります。(102.2.2以降)
binary ... 圧縮せずに保存
xml ... xmlで保存(101.0以降)
xml_zipped ... xmlでzip圧縮して保存(101.0以降)
xml_bzip2 ... xmlでbzip2圧縮して保存(102.2.2以降)
内訳としては、2タイプ x 3タイプ となるわけですな

で、私が作れているセーブデータいじりWebアプリでは、非圧縮xml のみです
これがどれくらい残念なのか調べてみました ...

あれ、肝心のアンケートが見れない?!

 

ちなみに、乱開発の神 128な人 (@128Na) | Twitter 様は bzip2 だそうです ...

なぜ bzip2 ではできず、xml だけなのか
一番の間違いは、はてなブログの記事としてコンテンツを作ろうとしていること です
はてなブログの記事として書いているので、HTML5 + JavaScript でやっています
JavaScript で Webアプリ用のライブラリの公開は、最近は Node.js をはじめとした
サーバーサイド?なるものが流行っています
それだと、はてなブログの記事で呼び出せない事が多いのです 呼び出せるものもありますが
で、一番の泣き所なのが、bzip2 に圧縮できるライブラリで、呼び出せるものが見当たりません
なんてこった ...

ちなみに、問題は解凍圧縮だけでもありません
困ったことに、xmlとバイナリで変数の桁数が違うとか、スペーサーと思しき空データが違うとか
非圧縮と圧縮とでなんか違うとか、どうせバージョンで違うとか
わざわざ本体からJavaScriptに移植してメンテしようとすること自体が、間違っているだろう!
... と、思います、はい ...

とはいえ、セーブデータのタイプさえ変えてしまえばいいわけで
それはずっとである必要は全くないのです
セーブデータいじりしたい時だけでも、手軽にタイプを変換できるように ...
それはJavaScriptでフォローする必要もなく、それこそ本体改造でやれば良いのです
そのうちやります

---

以下、これまでに作ってみたやつを列挙します。

情報取得編

 ---

編集編

 ---

大規模に開発するとなると、次のような整理をやりたくなります
Simutrans は、大規模開発に耐えられるUIが間に合っていないですよね

そういうのをやるのに、本体改造でやるのが ... まぁ ... 主流だと思いますが、
私にはどうにも冗長に思えるのです UIを追加する本体改造は ...  
なので、簡単に作れて、簡単に提供できて、簡単に使えて、簡単に遺したい ...

セーブデータいじり2.0 を目指して、今後も細々と続けていきます