A列車で行こう10への道
DATT-A9D
[ in English ]
※翻訳結果についてのおことわり(in Japanese)
最終更新:2025年3月17日
[ A列車で行こう10への道 ]
- パンタグラフの昇降
- カント
- 西武の踏切
- 撮影モード
- こんなBGMがほしい
- SSAOとDLSS、その前にLOD
- 乗客のアルゴリズム
- カラーバリエーション
- バスばすバスばす
- 全赤と内輪差とウインカー
乗客のアルゴリズム
忙しい人のための「乗客のアルゴリズム」
※このページは「フォーラム」のダイジェスト版です。転記するのが面倒なので「フォーラム」のスクリーンショットを画像で載せている箇所があります。ご容赦ください。(全文は「フォーラム」でお読みください。)
ほかのゲームやブロックの玩具にあるような「人物のグラフィック」が(3Dで)描かれないことを指して『人がいない』という不満を書き立てる者が絶えないが、それはものの見方が未熟なだけだ。ゲーム内の時計が進む速さを考えよう。速すぎて見えないだけだと思えばいい。ここではそういう話ではなく、ゲームの中で「乗客」の「動き」に『生々しさ』を与える方法を探る。
※あるいは『人がいない』という訴えは、自分の分身が表示されないと遊べないという子どもならではのものかもしれない。
ほしいのは『生々しさ』
- あたかも「乗客」1人1人がホームを歩いているかのように、列車の「乗客数」の数字がぱらぱらと動く(列車が停車している間に数字が変わり続ける)とよい(OpenTTDでそのような実装が有志により追加され好評を博した)
- 乗降の多さに応じて「かけこみ乗車」が発生し、列車の発車(戸閉)が遅れる(BVEでそのような実装がされている)
- 列車だけでなく駅の側にも「待っている客の数」を表示すべき(表示したらゲームが簡単になるというものでもない)
- 「乗客」の動きに複雑さがあればよい:時間帯に対して「上り」「下り」のどちらが混むか、個々の客については「行き」「帰り」が見えるとうれしい
- 「乗客」の動きにランダムな部分があればよい:マップ内の建物に変化がない限り完全に同じ乗客数になるのがつまらない、野球場や遊園地から一斉に帰宅客が発生するという動作もしてほしい
わたしたちはゲームのソースコードや企画書を見る立場にはないので詳細はわからずじまいになりがちなのはしかたがないけれど、目先の不満には正直でありたい。目先の不満を解きほぐしていくと、まるでソースコードや企画書を見ているかのような理解に達していくことができるのである。
そのような態度を持っていないと、わたしたちは他社のゲームや過去の作品にあった名目的な機能などを引き合いに出して、例えば「A6」にあった「誘致機能」(「商業地の概念」「住宅地の概念」)の「復活」を望むというような、きわめて粗雑な(「A9」の実装を完全に無視した)「要望」を述べてしまう。これは防ぎたいことである。
詳しくはこちらをご覧ください
実際に「A9」はじゅうぶんに複雑なことができるように開発されてきている。「乗客」のシミュレーションのエンジンはじゅうぶんなのに、『生々しさ』を感じさせる演出やUIがともなっていないせいでプレーヤーに誤解されている状態ともいえる。わたしたちは「A9」の実装をきちんと理解できてすらいないのだ。
- 停車時間の長短によって乗降できる客の数に差がつくとよい(「貨物列車」の実装はそのようになっている)
- 1本の列車の中でも、乗降客数が車両ごとに違うようになるとよい(駅ごとに階段の位置を変えられるようにした上で、階段の近くほど乗降が多いようにするなど)
- 1本の列車の中で、グリーン車など車両ごとに異なる「列車タイプ」を持たせることができるようになるとエクセレント
- 複数の駅の影響範囲(緑色の円)が重なっているときの動作について説明がクリアーになるとよい(ゲーム内での具体的な表示や、ある程度はプレーヤーが調節できる方法が用意されるとよい)
- ホームの幅や駅舎の大きさに応じて、狭い駅では多くの乗降客はさばけない(列車の「定員」「最大乗車率」と対になるように、駅施設にも「定員」「最大滞留率」のような値を持たせる)という制約があるとよい(都市からの乗客発生を複数の駅で
奪い合う分け合う処理において、駅の規模の大小に比例した配分にしてほしい)
「A9」のプログラムが列車の運賃収入をダイナミックに算出するための「列車タイプ」という秀逸な実装や、プレーヤーにさまざまな種類や規模の駅を建設させたりすることを通じて、すでに『生々しさ』を演出するための『材料』(データ構造やデータ表現)はそろっているのだ。あとは「乗降客数」を『生々しく』することに応用すればよいだけなのだ。
ダイヤ設定の「乗客対応」を見直す
発売直後(2010年)のカスタマーレビューで「乗客のアルゴリズム」という言葉(決まり文句、決め台詞のようなもの)を振りかざして不満を述べるが、自分では「乗客のアルゴリズム」こうあるべきということを一言も書かない者が散見された。
- 説明されたらわかるというのとじぶんでゼロから設計できるというのは別のこと
- 他人がすでに実装してしまったものを読み解かずに自分勝手にゼロから考えて、それに差し替えろというような主張をしてはいけない
- 「
呼んではいけないあのゲームの乗客のアルゴリズム」と完全に同じにしろなどと不当な要求をしてはいけない

- 「内包」「下位項目」「関連付け」など抽象化した考え方をするにはトレーニングが必要で、新人や素人がいきなりできるものではないと知っておこう(※ちゃんと外注しよう)

- 列車が持つパラメータ「基本運賃」「列車タイプ」「加速度」などを変える(※おもに「元の性能より下げる」:好き放題するということではない)機能があるとよい(「巡航速度」についてはそのような機能が追加されている)
- 列車の「速度」「運賃」などを「駅のダイヤ設定」から(駅の番線ごと・列車ごとに)変更できるようになるとよい(同じ路線で同じ車両がラッシュ時には遅く、日中には速く走る)
建物データを変えずに「乗客発生時間帯」を上下別にするには
「A列車で行こう9」の「乗客発生時間帯」(※公式ガイドブックのみに掲載)は地味に高度な柔軟性を持つ非常にフレキシブルな仕様である。「A9V1」のファーストリリースの前に、株式会社サイバーフロントによる絶大な貢献があったものと見受けられる。(その後のバージョンアップでの改良のショボさや、すでによくできているものを壊していく感じと対照的に非常に優れていることから、その源泉が外部にあると思った。)
現在の実装(ゲーム上の操作性や表示)では「乗客発生」が『片道』であるように感じられてしまうことにプレーヤーの不満があるように見受けられる。(「1人の客」の移動を具体的に追えるわけではないが、「1人の客」の「出発地となる建物」が「朝は住宅」「昼は店舗」「夕方はオフィスビル」「深夜は夜の街歓楽街ビル」のように確率的に与えられていて過不足はない。ある時刻に学校から出てきた人が、ある時刻には歓楽街ビルから出てきて、朝はホテルと住宅から半分ずつ出てくるような気持ち悪さがある。なあに、確率的なデータ表現とはそういうものだ。)
※ホテルを乱立させた駅と低層から中高層までの住宅しかない駅(超高層マンションはない駅)とがあったとき、朝に期待される「朝ラッシュ」という乗客発生がホテルのほうに極端に偏るということが起きうる。
- 「待っている乗客の数」を表示してほしい
- 鉄道とバスの連絡を明示的にしてほしい:「降車客のある駅が建物と同様にバスの乗客を発生させる」「降車客のあるバス停が建物と同様に列車の乗客を発生させる」という挙動をしてほしい
- 駅やバス停で、「待っている乗客」に「上り」「下り」の向きを持たせてほしい(「上り」「下り」に分けて「乗客発生」してほしい)⇒1つの「乗客発生時間帯」の値から一定のルールで「上り」「下り」の数字をつくりだすようにしてほしい(開発チームが「建物データ」は一切いじらずに実装できる方法にする)
- 乗車時の「向き」だけを持たせるというちょっとしたトリック:「s1駅からd1駅に行きたい客がn1, 1人」などと「s1 ... k駅」×「d1 ... k駅」のマトリックスになってしまう(総当たりの計算が必要となる)データ表現は避ける⇒「客」は上下線の列車に適当にばらけて乗ってくれるが、その列車がどこまで行くのかは知らない
- マップ内での駅の「上り」「下り」を定義する方法:「中心駅」を1つ指定⇒中心駅との直線距離で駅をソート⇒発駅と着駅の順位を比較⇒順位が低い駅から高い駅へ進めば「上り」
- 駅に列車が発着したときに「上り」「下り」どちらの「待っている乗客」を乗せるのかは、駅の番線ごとに固定ではなく、列車ごとに判断する⇒「次の駅」に関するデータは持たないと見受けられるので、「前駅」と「当駅」の順位を比較して「上り」「下り」を判断し、そのあと「折返」しないならそのまま、「折返」すれば逆向きにするというように論理的な処理にする(この単純な論理ではうまくいかない配置の駅があれば、その解消はプレーヤーに委ねる)=現在の「コンテナ港」での貨物の積み下ろしが(時に)反転するのと同様であり、いまさらではある(何かトリッキーなプレーを思いつくプレーヤーが出てきておもしろいだろう=プログラムは完全でなくてよいし設定の正しさを保証する必要などなく愚直に動けばよい)
- 「ビジネス」と「レジャー」で「平日」と「土休日」の差をつけるのと同じように、何か別の指標を使って、主な時間帯(「朝ラッシュ」や「夕ラッシュ」などざっくりと)に「上り」と「下り」にどれだけ差がつくかに差をつけていただけるとグッド
列車の「上り」「下り」を決める方法としての「駅の並べ替え」については「駅すた24」で詳述しているので参照されたい。
[ バグ - 要望8 - 要望12 - 要望16 - 要望24 - なくしてほしい - 色がおかしい - 日本語がおかしい - 要望の考え方 - 車両の選び方 - 信号機 - A列車で行こう10への道 ]
(このページの初版公開:2020年4月29日、要望24の初出:2019年4月1日、要望16の初出:2020年1月27日、要望12の初出:2020年7月1日)
ARX白昼白夜サイズ(9613)を見たと伝えるとスムーズです All Rights Reserved. ©2018-2025, tht. ご自由にリンクしてください