トップページgamedev
819コメント672KB

鉄道経営系ゲーム製作スレッド Ver.7

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2010/03/30(火) 22:05:34ID:62jSr8U0
鉄道および都市経営シミュレーションゲーム制作の
情報交換スレッドです。

[前スレ]
鉄道経営系ゲーム製作スレッド Ver.6
http://pc11.2ch.net/test/read.cgi/gamedev/1239023536/

[このスレッドで主に話題となるゲーム]
FreeTrain EX Another version
http://sourceforge.jp/projects/freetrain-exav/
FreeTrain EX Another version wiki
http://www19.atwiki.jp/freetrain-exav/
Tera Train
http://teratrain.la.coocan.jp/wiki/?FrontPage
FreeTrain
http://www.kohsuke.org/freetrain/
FreeTrainヘルプ
http://www.kohsuke.org/freetrain/wiki/pukiwiki.php  (IDとPASSはダイアログよく読んだら分かる)

[関連サイト]
アートディンク
http://www.artdink.co.jp/
0791名前は開発中のものです。2010/05/14(金) 20:56:20ID:GATFHMtN
>>790
乗る数以上に降りるのに違和感はわかる。が思うのは >>790 氏の勝手
案として「乗車数以下の下車数縛り」はとして出せばいいでしょ?
実現性の問題、負荷他検討すべきだろうけど。
0792名前は開発中のものです。2010/05/14(金) 20:56:31ID:cRuw4M+k
>>790
駅周辺の需要によって降車人数を見る必要もあるね。
集客力と言うのは難しいから、単純に待ち人数を使っても良いかも。
0793名前は開発中のものです。2010/05/14(金) 21:03:54ID:cRuw4M+k
http://wwwtb.mlit.go.jp/chubu/kikaku/chikousin/toshin2/toshin2_shiryo5.pdf
これの一番上の図を見ると、鉄道のトリップ距離と利用者密度の曲線が書けそうだが。
riorio氏の案で言えば2に近いが、これは都市内交通だから、トリップの最大距離自体が短い。
トリップ距離が無限に仮定できるなら、自然対数的に減少していっても良いのではないだろうか?
0794名前は開発中のものです。2010/05/14(金) 21:05:13ID:cRuw4M+k
>>791
>案として「乗車数以下の下車数縛り」はとして出せばいいでしょ?
これでは永遠に乗客が増え続ける。

それくらい考えなきゃだめね。
0795名前は開発中のものです。2010/05/14(金) 21:09:37ID:/+g02z02
待ち人数だと乗車と大体等価っぽくなるように思えるんだけど、
学校やビジネス街だと朝降車が多くて夕〜夜に乗車が多くなって欲しくね?
負荷的にも乗車待ち数の計算と直観的には大して変わらないように思えるのだが。
0796名前は開発中のものです。2010/05/14(金) 21:17:49ID:GATFHMtN
>>794
なんで否定なのかな?ま、それはいいや。よくわかってないと見えるし。
で案は >>793 って事だとriorioさんの2案でいいのかな?

なら私も同様ですよ。
0797名前は開発中のものです。2010/05/14(金) 21:36:42ID:cRuw4M+k
>>796
たぶん一番分かってないのは

全列車共通はありえないし、>>793見ると分かるとおり直線的な減少もあり得ない。
riorio氏2案+>>789
min(1,exp(k*((-distance/amenity**3)-amenity*2)))というのはどうだろう。
ある点まで1で、そこから先は自然関数で減少。
「ある点」と「減少の傾き」はamenityで決まる。
0798riorio ◆rio2xMQlrQ 2010/05/14(金) 21:43:27ID:qTKfnyO5
今の人口クラスは、calcPopulationメソッドで吐き出す人口を時間帯に応じて
変化させながら返すことだけしか実装されてないんだよね。
だからそれそのまま利用することはできない。

まぁ必要とあらば、calcEnteringメソッドとでも名付けましょうか、下車需要を
返すものも追加して、もちろんそれがどのような時間変化するかのクラスごと
実装書き分けて、それ使うようにしてもいいけど。

でもあまりその影響を受けすぎるのもあれだから、gonePassengersの考え方で
arrivedPassengersもカウントして、需要を満たしつつあったらあんまり降りない
とかいうことにすべきなんだろうか?

今は問答無用で次の停車駅で全員降りちゃうわけで。
それにくらべたらあんまり難しいことせずに単調減少でも違いとしていいんじゃねーかと
思ってたりもするのだが。
0799riorio ◆rio2xMQlrQ 2010/05/14(金) 21:49:15ID:qTKfnyO5
>>797
>見ると分かるとおり直線的な減少もあり得ない。

はい?
http://u4.getuploader.com/freetrain/download/74/%E4%B9%97%E8%BB%8A%E7%8E%87%E5%A4%89%E5%8B%95mlit.PNG
0800riorio ◆rio2xMQlrQ 2010/05/14(金) 21:57:27ID:qTKfnyO5
あと、amenityは使いません。
1970年ごろだと、中電は新車で長距離列車は旧型客車なんてこともザラだったわけで。

列車ごとに個性的・動的な減少パラメータを持たせたいということであれば、それは
新パラメータを追加する方向で考えようと思います。
0801名前は開発中のものです。2010/05/14(金) 22:14:11ID:cRuw4M+k
>>799
おい、まさかそのグラフの見方も分からんのか?
そのグラフはトリップ長の分布。そのグラフから>>787の図を書いてみろ。
そのピンクの線の傾きこそ、短距離利用が多く、長距離になるにつれて利用者が減少している事を表しているのだ。

直線的減少はバスや自動車の方だな。
0802名前は開発中のものです。2010/05/14(金) 22:25:36ID:cRuw4M+k
ただ
・旅客の流入が一切無い
・駅に停車するごとに距離カウントリセット
という仮定なら>>787の3案でも自然対数的な利用者の分布を再現できるな。

個々の旅客に距離を持たせるのは無理だろうし、>>787の3案で良さそうだな。
ただ、むやみやたらにパラメータを増やされるのはごめんだ。
何でもかんでも新規パラメータに頼らず、既存のパラメータだけでやるべきだし
そういう設計思想を持たないと、今後の新機能追加がどんどん面倒になる。
0803名前は開発中のものです。2010/05/14(金) 22:30:07ID:/+g02z02
>778-779からすると、個々の客に距離をもたせる
(そうでないとA駅からの客とB駅からの客の運賃が計算できない)と判断出来るが。
0804OPB ◆gJsqBz3wKU 2010/05/14(金) 22:37:32ID:Te7AqikM
>>786

> 「読めませんー」ということなら翻訳します。

読めませんーwww

まぁ、でもなんとなく子会社の利益と経費が同額な理由はつかめたかも。

> すべての建物一括で、毎月1日に前月分の収支計算して収入支出、じゃダメかな。
> 29日に建てた建物は2日しか存在してなくても一ヶ月分の収入になっちゃたりするけど
> もうそれは誤差ということで。

それでよろしいんじゃないですか。
子会社というよりも、建物をテナントとして貸しているというイメージなら
29日竣工の建物から収入があっても違和感無いし。

ただ、β2はともかくα3でプレイしているヒトは
「一か月も子会社収入無しじゃ待ってらんねー」
と思うかもですが。
0805蒼剣☆RUSH2010/05/14(金) 22:38:03ID:/y/7EEm3
ID:cRuw4M+kはいつもの粘着荒らし。
みんなスルーな。
riorio氏もどうせ、こいつはわけわからん仕様しか出してこないのだから、相手にしない。
0806名前は開発中のものです。2010/05/14(金) 22:39:26ID:cRuw4M+k
>>803
なるほど。なんかややこしくなりそうだな。。。

運賃なんて単純に距離比例だから
たとえB駅で旅客の乗降は無くても、B駅に停車した時点で、A駅から乗車した乗客全員分の運賃を計上してしまっても良さそうだが。。。
0807riorio ◆rio2xMQlrQ 2010/05/14(金) 22:52:43ID:qTKfnyO5
>>801
>そのグラフはトリップ長の分布。そのグラフから>>787の図を書いてみろ

http://u4.getuploader.com/freetrain/download/75/%E4%B9%97%E8%BB%8A%E7%8E%87%E5%A4%89%E5%8B%95%E6%A1%88%E3%82%B0%E3%83%A9%E3%83%952.PNG
0808名前は開発中のものです。2010/05/14(金) 23:01:15ID:/+g02z02
ところで横軸の距離って最短距離?それとも道のり?
0809riorio ◆rio2xMQlrQ 2010/05/15(土) 01:13:54ID:2hPYeG8S
ごめんごめん。
身内に解説してもらってようやく理解した。
とりあえず>>807のほうで。

>面倒なので一次関数(直線)にしちゃう。

は取り消し。

でもなぁ。
通勤列車ではMath.Pow(a,-distance)ってことに(aはEでも他の適当な数でも)なるのか、これ。
それはいいとして。
長距離列車だと意外と一次関数になりそうな気がするんだよなぁ。遠くに行きたい人こそが
その列車を選んで乗るわけだから。もっともFreeTrainの客は列車を選べず拉致られてる
んだけどw

あ。あと問題なのは。「乗り続ける客」を計算するより、「今こここの駅で降りる人数」
を計算したほうが実装上使い勝手がいい、ってことだな。
ある駅に停車したときに「今こここの駅で降りる人数」をどういう数式で出すか。

>>808
最短距離。

ただし列車運行経費はそれとは別に道のりで3ボクセル(V2仕様)動く度に計上
されてる。
0810名前は開発中のものです。2010/05/15(土) 01:25:45ID:+HqYoqg/
集客施設の集客イベントと最寄駅での下車傾向を連動させる(施設の集客ピーク時間帯に最寄駅に到着する列車について
下車率にある程度の上方補正をかける)ことができれば良さそうだけど...。(これをやるには下車処理ルーチンだけでなく施設側
のプロパティにも手を入れる必要がありそう?)
0811名前は開発中のものです。2010/05/15(土) 01:26:03ID:eQYDLNgp
駅前にアーケード商店街を立てたい
0812riorio ◆rio2xMQlrQ 2010/05/15(土) 01:31:59ID:2hPYeG8S
>>810
798にも書いたけど、建物・施設のplugin.xmlの記述を書き換える必要はなく、
calcEnteringのような新メソッドを各コントリビューション定義に書き足し、それがどのような
時間帯変動を示すか現行populatinのような表を作って数字埋め込めばイケます。

>>811
創作館さんのアーケード道路プラグインをうまく活用してどうぞ。
0813名前は開発中のものです。2010/05/15(土) 01:45:02ID:oQLaZ4uv
>最短距離。
そうすると、例えば2駅A/Bからなる環状線を作ったりすると
・A駅で100人乗ったとする。
・B駅で半分、50人降りたとする。(残り50人)
・A駅へ戻るが、距離0なので(Bで降りなかった残りの)50人は降りることは無い
・B駅では最初に付いたときと同じ最短距離なので50人が残る。誰も降りない。
以下同様。。。となるように思えるが如何か?
0814riorio ◆rio2xMQlrQ 2010/05/15(土) 01:48:22ID:2hPYeG8S
>>813
A駅で乗車した人数に対する比率で考えるとそうなっちゃうので、
「今乗ってる人数」に対する比率でおろしちゃえばいいのでは。

そうしたら、1周加わるごと25人・13人・7人・4人となっていきますよね。

あとは最遠駅に「強制全員下車」をプレイヤーのほうでダイヤ組むか。
0815名前は開発中のものです。2010/05/15(土) 01:54:58ID:oQLaZ4uv
それがまさに上で挙げられていた指数関数による低減ですよ。
0816riorio ◆rio2xMQlrQ 2010/05/15(土) 02:05:35ID:2hPYeG8S
だからそうしようっていうのが>>807じゃんちゃんと見てる?
0817名前は開発中のものです。2010/05/15(土) 02:10:14ID:u1w5QVOQ
>>802,806+降車駅の需要を勘案したアルゴリズムじゃだめかな。
これなら必要な情報は少ないから簡単に組める気がするけど。
・距離カウントは駅で客扱い停車するごとにリセットすれば、自然対数的な減少をある程度再現できそう。
・運賃は客扱い停車した時点で、降車しない客に対しても一旦計上(初乗り運賃分(が実装されていればの話だが)は乗車時に徴収)すれば
 運賃取りっぱぐれも無い。
以下は要望
・運賃は駅間の直線距離でなく、実際の運行経路に応じて徴収する
 (実際の鉄道の運賃計算方法がこの方式。環状線でなくてもループ線とか作っても利益にならないのは嫌だな。)
0818名前は開発中のものです。2010/05/15(土) 02:13:02ID:oQLaZ4uv
あと。もう少し。
強制下車が無いとした場合、今まで半周当たり100人分の売上があったけど、
修正後は今までより回す回数を多くしないといけないので運賃収入が減る
(というか収入のためのコストが増加する)ことになる。
なので、これに会わせてなにがしかの調整を後で入れる必要があるかも。

強制下車がある場合(環状線に限らず)、ある程度街が発展してしまう
(現状でどの区間でも列車がほぼ満員となるくらい)と、
全駅で強制下車させた方が有利になる
(運賃収入増加+下車人数増加で街が発展しやすくなる...よね?)んだけど、
それくらい発展してもあえて強制下車させないほうが有利になる点が
何かあった方がよさそうな気もするが、さて何が出来るか思い付かない...
0819riorio ◆rio2xMQlrQ 2010/05/15(土) 02:24:59ID:2hPYeG8S
>>817
>・距離カウントは駅で客扱い停車するごとにリセットすれば、自然対数的な減少をある程度再現できそう

ごめん。よくわからない。
ちゃんと乗車駅管理とそこからの距離を個々に計算しないことには、自然対数的でも他の数式でも
減少を実現できないのでは?
あと「乗車駅情報」は持たすから。というか持たないとデバッグもままならないのでw

>・運賃は客扱い停車した時点で、降車しない客に対しても一旦計上

最短距離で計算と矛盾するので無理。

>実際の鉄道の運賃計算方法がこの方式

大都市近郊区間の考え方を調べてきてくださいな。
最短「直線距離」ではないけど、「実際の乗車経路」でもないから。
そのうえでFreeTrain EX Avで可能な手段でより近いのは最短直線距離計算になる。
あと昔は長万部以南〜札幌以遠の函館本線周り計算とか、上野〜仙台の東北本線周り
計算とか、乗った列車によって乗客が損しないような規定があったこともあった。
■ このスレッドは過去ログ倉庫に格納されています