2019年10月15日火曜日

【ゲーム】simutrans セーブデータの編集 SaveDataEdit

さて、simutransです。

堀割の苦労から解放されてうれしい日々を送っています。

自動で堀割する方法なんて100通りだってあるさ、
幸せになるのは簡単(Easy to be happy)
とても簡単、自由になるのは簡単さ(It's so easy,easy to be free)

セーブデータの簡単な編集方法を書きますね。

  1. セーブデータをxml形式で出力するようにする。
    • simuconf_new.tabのsaveformatを変更します
      saveformat = xml
  2. テキストエディタの用意
  3. 差分ツールの用意
  4. セーブデータの中身の意味を知る
  5. 編集してセーブ
    • 編集前のセーブファイルのバックアップ保存は忘れずに、間違った編集をすると二度と開けなくなります。
参考に自動堀割のために解析した時のメモ的画像を貼っておきますね。
test16_高さ3に2の堀割テスト_X6に高さ4の堰堤_説明
test16_高さ3に2の堀割テスト_X6に高さ4の堰堤_説明
Enjoy!





【ゲーム】simutrans 連続堀割の検討

I want to build a continuous artificial slope to create a city with a street grid.
連続堀割をしたいです、井桁シティ(碁盤目状の街)を作るために。

さて、simutransです。
前の投稿で書いたように僕は井桁シティ派です。バス、トラック、市電、列車、船すべてを含む複合駅を駅範囲の漏洩なく井桁に並べて悦に浸ってます。

井桁シティの作成には手間がかかるのですが、井桁でキレイに並べるために好みのマップも用意できるようになり、下準備の整地がかなり楽になりました。さらに楽にしたいです。

今一番作成に手間がかかるのは、堀割に運河を作成する作業です、運河は連続で引けるのですが、その前段階の堀割に多大な手間がかかります。タルくてダルいです。ソースいじって始点と終点ダダァと堀割するようにしようかと思ったり、ソース見てもピンとせずやる気が出なかったり、しかし一つ一つ堀割するのも大変だし、、、どうしましょう、方法を考えてみました。

【連続堀割の方法の考察】
  1. simutransの画面操作
    • 一つ一つ手で堀割する
      可能だが、そもそもこれがメンドクサイ
      個々人の状況によっては、他人にやってもらう事も可能ではある
    • マウス自動化ツールを使う
      可能、しかし問題あり、単純マウス操作再現では脱調が心配、画像認識系では画面の多様さの対応が面倒
  2. simutransの現状正規の機能で可能か?
    • 設定ファイルの変更
      不可、現状では連続堀割を可能にする設定はない
    • アドオンとして追加
      不可、現状では連続堀割を可能にする設定はない
    • シナリオとして追加
      不可、現状では連続堀割を可能にする設定はない
      Squirrel-APIにも地形変更の口は用意されていない
      仮に可能であっても、普通のゲームの開始後に堀割し井桁シティを作りたい目的に合わない
    • 「町の発展」にやらせる
      不可、現状では連続堀割を可能にする設定はないし、cityrules.tabの設定でも出来ない
      仮に可能であっても、ゲーム内時間がかかり、ゲーム開始の初めの頃に堀割し井桁シティを作りたい目的に合わない
    • 他社AIにやらせる
      不可、現状では連続堀割を可能にする設定はない
      Squirrel-APIにも地形変更の口は用意されていない
      仮に可能であっても、ゲーム内時間がかかり、ゲーム開始の初めの頃に堀割し井桁シティを作りたい目的に合わない
  3. simutransの入出力ファイルの変更
    • マップデータの変更
      無理、ソース変更すれば可能
    • セーブデータの変更
      可能、形式(バイナリ、xml)、圧縮解凍(zip、bzip2)の、情報もソースも公開されているため可能
      編集を汎用のエディタ(テキストエディタ、バイナリエディタ)で行うか、専用の編集ツールを作成するか検討が必要
  4. simutrans本体の変更(ソースコード変更)
    • Squirrel-APIの追加
      可能、地形変更を可能にすることによって、シナリオや他社AIにやらせることが可能、しかし、ゲーム開始の初めの頃に堀割し井桁シティを作りたい目的に合わない
    • 「町の発展」の動作の変更
      可能、地形変更を可能にすることによって、「町の発展」にやらせることが可能
      cityrules.tabの拡張も含めた変更が好ましい
      しかし、ゲーム内時間がかかり、ゲーム開始の初めの頃に堀割し井桁シティを作りたい目的に合わない
    • マップファイル読み込み時の動作の変更
      可能、画像ファイルからゲームデータへの変更時に、特定の条件の高度差1の場合堀割とするとか、別ファイルで堀割箇所指定とか、いろいろ変更はできるが、不自然かな
    • 運河ツールに追加
      可能だが、他の道路や線路ではそのような機能がないため不自然
    • スロープツールに追加
      可能、まあ変更するならここが無難かな

さて、どの方法で対応しますかね。
ぼくはC/C++系のプログラマーだったりするので、ここはスロープツールへの連続堀割機能の追加と行きたいところですが、グータラなのでやめにします。セーブデータをテキストエディタで編集する方法で対応しようと思います、楽だしね。

次回は、セーブデータの中身の説明とか書こうと思ってます。

2019年10月14日月曜日

【ゲーム】simutrans 井桁シティ (simutransの楽しみ方)

なんだか最近simutransばかりの記事ですが、、、「同じ系統の記事ばかりじゃ変かなぁ」なんて思い書かないと、結局何も書かなくなるので、、、書ける時に書いちゃう事にしました。

simutransですが、いろんな楽しみ方があります。実際の地形や鉄道路線を再現したり、仮想ではあるが多様な地形のマップで路線を運用するとか、限られた予算でうまく経営して発展させるとか、路線運用をいろいろと工夫したり、リアルな見た目で性能も考慮した鉄道車両やバス等を作成したり、路線や建物を作成したり、、、ホント多様な楽しみ方があります。そんな中僕の楽しみ方は、、、

僕の楽しみ方は、なんなんでしょ、効率重視の街づくりをしているつもりで、無駄に同じ複合駅(鉄道駅、バス停、市電、運河、等々)を井桁に並べて、駅の範囲外に建物立てたくない感じ。プレイしている画面を見られたらきっと糾弾されます。「結局あんたは設計主義者なんだよ、いろんな目線で複合的になんて言っちゃいるが、その実は単純目線の積み重ねでしかなく、全然複合的で無い」とか、「人間の何たるかをまったくわかっちゃいない野郎とは思っていたが、それがこのゲームに如実にあらわれてるね、たかがゲームだが、たかがゲームで普通な楽しみ方も出来ない奴という事だ、そんな奴に人間の理解は無理だわさ、ぷぷぷ。」とか、「あんた、偏執狂なのか、やっぱそうか」とか、「あーそういうところがキライなんだよね、相変わらずだねー」とか、「おいらもsimutransやってるけどさ、同じ輩に見られたくないなぁ」とか、、、そして最終的に『あんたが何言ってるのか、まったくわからないよ』となって、孤独に夜の飲み屋街をうろつき酔いつぶれてドブの中で朝目覚める……なんだか何を書いているのかよくわからなくなってきましたが、、、悲しいです。

さて、僕の最強の井桁シティですが、だいたい下記の感じです。
  • 00_整地前
  • 01_整地マーク
  • 02_運河マーク
  • 03_運河引く
  • 04_橋を架ける
  • 05_送電線を引く準備
  • 06_送電線を引く
  • 07_駅周りの道
  • 08_高架台座
  • 09_高架を引く
  • 10_高架下の削除
  • 11_高架駅の設置
  • 12_市電線の設置
  • 13_市電駅バス停貨物ヤードの設置
  • 14_運河港の設置
  • 15_架線の設置
  • 16_確認微調整
  • 17_モノレール
  • 18_空港
  • 19_一部拡張
  • 20_マップ拡張
  • 21_石油
  • 22_外縁旅客
  • 23_石炭
  • 24_外縁旅客逆回り追加
  • 25_外縁市電追加
  • 26_ここで発展した場合テスト
井桁シティの作り方(あ)
井桁シティの作り方
あと、いろいろ試してもいます。

  • いろんな地形で楽しんでいたのに、いつのまにか井桁化
  • 方向別/線路別複々線を作って楽しみ、いつのまにか産業チェーンの強化確認に
  • 複合駅の範囲の正方化とか、高々架のテストとか

井桁変遷
井桁変遷
研究(笑)
研究(笑)
方向別_線路別_複々線1
方向別_線路別_複々線1
方向別_線路別_複々線2
方向別_線路別_複々線2
 
なんか、悲しくなてきた。