1 :
名前は開発中のものです。 :
2010/03/30(火) 22:05:34 ID:62jSr8U0
[お約束] ・質問は各ヘルプ・wiki・スレ過去ログ・関連ガイドサイト・掲示板に目を通してから。 ・エラー/バグ報告は、できるだけ行いましょう。エラーメッセージの内容は正確詳細に。 FreeTrainの旧バージョン・EXバージョンは現在誰もメンテナンスしていませんので バグフィックスや機能追加は期待できません。 FreeTrainについてはFreeTrainEX Avのみが現在メンテナンスされています。 FreeTrainEX Avのバグ報告は、このスレかSourceForge.jp内のフォーラムどちらでも かまいませんので具体的に行いましょう。 Tera Trainのバグ報告は、公式wiki内の掲示板にて行いましょう。 [FreeTrain] ・DirectX8以降9.0cまでと.NET2.0実行環境がインストールされていなければ、FreeTrainは動作しません。 EXまでのFreeTrainは.NET Framework1.1必須でしたが、 FreeTrainEX Avでは.NET Framework2.0必須に変わっています。 ・Windows Vista/7では、FreeTrainEX Avのβ2以降もしくはプロトタイプ3のみ動作します。 その際DirectX9.0cのランタイムが必要です。 ・FreeTrain/EX/Avの正式版1.0以前はVista/7で動きません。 BVEと同様のDLLインストールで動くようになる裏技はありますが、サポート外なので 試みられる方は自力で調べてがんばってください。 ・zipの解凍やpluginのインストールは関連サイトのヘルプに従えば簡単にできますので 自力でおこなってください。配布pluginのインストールができないほどの人は誰も助けて くれません。 ・フォーラムに書き込むか迷ったらとりあえずここで聞くのも吉かと。 ・転んでも泣かない。
時間単位についてだけど、最小時間1秒だとやはり問題が多すぎるな。 単純に、1日あたりの列車の走行距離が従来の60倍になることで ダイヤ作成に手間がかかりすぎてしまう。 1日のダイヤを作るのに、従来の2か月分のダイヤ設定操作が必要になる。 今のFTで1週間分の運用を書くだけで数時間かかるのに、60日分×7のダイヤ入力作業なんて誰ができるの? ダイヤ重視派/実在路線再現派というが たとえば山手線のダイヤを再現するには、50運用分のダイヤ入力作業が必要になる。 1周3時間として1日6周、180駅。これを50運用分入力できる人なんて存在するのか? ただ列車が進む速度が本物っぽいという安易な理由でやると、後で大変なことになるよ。 表示だって1秒毎に更新だと、今の120倍の処理が必要になる。 1日が従来換算で4ヶ月になる計算だ。 CPUのシングルスレッド性能がこれ以上伸びない状況で、この処理量の増加は危険。 文句ばかりで申し訳ないが、ゲームバランスの根幹に当たる部分を安易に決めすぎていると思うので 敢えてきつい表現で書かせていただいた。 このような開発方針では、せっかく新機能を実装しても、遊びたくても手を出せない。
今夜は本体開発休んでマップ進めますかねー > 1日のダイヤを作るのに、従来の2か月分のダイヤ設定操作が必要になる。 > 今のFTで1週間分の運用を書くだけで数時間かかるのに、60日分×7のダイヤ入力作業なんて誰ができるの? そう単純に労力増加はしないとふんでる。 ver2まで従来では、ちょっと長距離走らせると列車が往復するのに4日かかったりしてたからね。 1運用サイクルを4日が必要だったところ、たとえばPrototype3では1/3日になって1日に 3往復できたりするようになるよね。 それに現実には「ラッシュアワーにはその路線の車両が全部出払うほど本数多いが、 昼間は半分ぐらい、真夜中は全部車庫に入っておやすみ」ということがあるわけだが。 従来FTでは車庫に入れる時間的余裕がなく駅で止めっぱなしとか、場合によっては 夜通し走りっぱなしにしないと運用できないことがあったわけで。 0時〜6時に車庫に入ってるだけで1日の1/4は休んでるわけだから、その間はダイヤ 組まなくていいわけだよ。 昼間休めばさらに減る。 いっちーさんがニコ動にあげてたモノレール動画はラッシュ時と閑散時をダイヤ変え たり車庫入れしたりしててすげーーなぁと思ったけど。従来時間軸であれはかなり稀 な事例だと思う。 > たとえば山手線のダイヤを再現するには、50運用分のダイヤ入力作業が必要になる。 > 1周3時間として1日6周、180駅。これを50運用分入力できる人なんて存在するのか? 自分自身が今、Prototype3使って山手線再現に取り組んでるからw 線路がつながって電車実際に入れてみてどうなるか体験してみますわ。 3.0.0.4で1秒単位にしたのは、仮走行してみて遅いと感じたからなんですけどね。 ちなみにリアルは1周1時間だから50運用必要なわけで、1周3時間だったら17運用 しかいらないと思う。というか電車区に土地なくて22編成しか置けなかったw
> 表示だって1秒毎に更新だと、今の120倍の処理が必要になる。 > 1日が従来換算で4ヶ月になる計算だ。 > CPUのシングルスレッド性能がこれ以上伸びない状況で、この処理量の増加は危険。 FreeTrain開発開始当初からはCPUも飛躍的に高速になってるし。 従来速度でCPUがフルに演算しなきゃいけないのは最高速と高速のときぐらい。 普通進行だとウェイト=「待ちぼうけ」で時間つぶしてたようなもんなんだよね。 3.0.0.6でも、列車追跡すると流石に重いが、追跡さえせず新規描画が発生しなければ 最高速でもかなり軽いですよ。 なんにしても、こっちで一方的に決めてるのではなくて、Prototypeとして公開して 実際にプレイしてどうだったか意見交換できる場を作ってるわけなので。 そこは意見があるなら積極的にPrototypeを遊んでもらって。 脳内で架空の思考をするのではなく。 実物で遊んだその結果としての感想を書いてもらったら非常に有用。 3.0.0.7では速度軸も固定じゃなくオプションで可変にしてありますから。その中で いろいろ選んでどの値だとどうなるか体験してもらって。体験した結果からこの 値がよかったと思うとか、この値は絶対不要誰も遊びたがらないから消してよし とか言ってもらえたらいいなー
とりあえずさらにアホみたいに電車を線路に乗っけられるのは良い事だ。
環状作ろうとしたときは8両ホームとかにしたせいで 1駅がでかくなっちゃって1周1日で終われなかったことならw 画像縮尺と時間単位が今までのだと微妙に合ってないなとは思ってたんだけどね リアル1分=ゲーム内*分みたいな内部設計は、さすがにこういうゲームじゃ無理っぽいかな
やる気次第で
>>9 >1運用サイクルを4日が必要だったところ、たとえばPrototype3では1/3日になって1日に
>3往復できたりするようになるよね。
逆に言うと
「3往復分のダイヤを(コピペでもなんでも)書かないと、朝から晩まで列車を動かす事さえできない」
「間を持たすために必要以上に労力がかかる」
という事です。
現在の時間軸でもある程度ラッシュと昼間、夜間の表情は出せるし
http://ranobe.sakura.ne.jp/src/up51845.zip 確かに今の数分の一程度の最小時間なら、もっと時間帯ごとにガラッと列車本数が変える事もできて嬉しいんだけど
あまりに細かすぎると
・「5分間隔の頻発運転」なのに画面内はガラガラで、見た目が悪い とか
・針の穴に糸を通すような複雑なダイヤを組むと、1分間隔、数十秒間隔という超人ダイヤになる とか
・間を持たすために、1〜2時間単位でのパターンダイヤを作って、それを繰り返すだけの手抜きダイヤになる とか
あまり良くない気がするんだよな。
画面内がガラガラだと見た目が悪いっていうのも、なんか変な考え方だなぁーって 思うんだけど。 どっち向いても電車が来てるなんてのは朝ラッシュの新宿とか下北沢とかだけで。 閑散時間帯は6分に1回しか電車が見えないのがふつーなわけだし。 そのふつーの状況を作れたら悪いって言われたら困っちゃう。 それに、Prototype3が進行したからといってβ2の完成を止めるわけじゃないですから。 従来時間軸にのっかってできる改良点はβ2系統にもやっていきますから、従来時間軸 のほうが見た目好きだとか簡単だって人は2を遊んでもらえばいいわけです。 とりあえず今朝、3.0.0.7で5通りの時間進行をいつでも切り替えて選べるバージョン出して ますので。それやってみてくださいよ。
両者の意見を見てみたけど、これってリアル派と箱庭派の違いかなぁという気もする。 リアル派は細かいほどいい、箱庭派は細かくなくてもいいからチマチマと動く画面を見て 満足したい、自分勝手にこう想像してみたのだけど。 もし、そうであるならばどこかで妥協点を探らないと駄目かなと思う。 ちなみに自分としてはそんなに綿密にダイヤ組みたいわけじゃないので、ある程度簡易的 でいいかなと。 どっちにしても開発はりおりおさんまかせなので、舵取りはお願いします!><
amazonの最新作のレビューで時間がリアルと違うって批判ばかりだったな
18 :
riorio ◆rio2xMQlrQ :2010/04/01(木) 00:37:21 ID:YhJFv1pK
アイディアメモ: 列車・ダイヤはすべて無視して。 マップの端から端まで四角形(直方体)にずーっと走査していって。 各ボクセル上にあるものをコントリビューションIDかなにか使ってテキストファイルに 書き出していくことってできないだろうか。 そして、書き出したものをまた再現するツールを用意する。 そうしたら、EX/Av1,2/Av3のバージョンの垣根を超えて、マップデータの変換が できないだろうか。 中間のテキストファイルのサイズがめっちゃでかくなりそうだけど。 誰かやってみない?
>>18 それは少し興味あるかも。
必ずやります! とは宣言できないけれども、
とりあえず試みてみたいです。
現在複数のバージョンがあるようですが、
どれをベースに開発すべきですか?
20 :
nanashi :2010/04/01(木) 06:05:22 ID:2TiAP2tV
>>riorioさん
>>5-7 恐縮ですが、あまり使われてないプラグインの面倒を見て下さって大変ありがとうございました。
>>19 書き出しはEXが一番需要あるんじゃないでしょうか。
取り込みはAvの1,2(この間は互換性高し)でどうでしょう。
>>21 なるほど。ではとりあえずEX用に読み書きできるようにして、
その後、Avでも取り込めるよう調整する、といった手順が良さそうですね。
教えて君で申し訳ないのですが、EXの最終バージョンというか、
みなさんが多く遊んでいるバージョンはどれなのでしょうか?
この機能の目的って、EXを使い続けている人々にAvへ移行してもらう
のが主目的?なんですよね? その対象バージョンが知りたいです。
>>23 了解しました。
Avのほうは、とりあえず1.0.1を対象にしてみたいと思います。
>>16 あんまり舵取りって得意じゃないのでねぇ〜
あと自分がいちばんのプレイヤーであって、自分の好みが出るっていうのもあるし。
どうしても1つに絞らなきゃいけない理由がなければ、3.0.0.7みたいにオプション画面
で好きに選べる状態でリリースしてもいい気もしてます。
あ。あと列車の1ボクセルすすむ秒数ばかり議論してきましたが。
左上のゲーム進行速度が「ゆっくり」「普通」「高速」などのときにどのぐらいの時間進行
になるといいのかも、3.0.0.7で遊んだら希望を聞かせてください。
今は適当なInterval数値を設定してますが。
自分もまだ線路建設中で、実際に列車走らせて眺める段階にきてないので。
街を眺めるときや、街の発展を待つときにどのぐらいのInterval値が適当なのかわから
ないのです。
もし列車の速度をオプション可変にしたら、このInterval値もそれに連動して調整した
ほうが快適なプレイになるかもしれませんので。
それならそのようにプログラムしますし。
どの速度モードでプレイしたときこれこれのゲーム速度のIntervalはこれがいいと
思ったって教えてくださいね。
>>20 前スレ978さんにもお礼いっておいてー
どこを修正してもらったのかまだ見てない(汗
Visual Studioでデバッグしようとすると、 駅舎を建てた瞬間に 'System.IndexOutOfRangeException' の初回例外が FreeTrain.Core.dll で発生しました。 'System.IndexOutOfRangeException' の初回例外が FreeTrain.Core.dll で発生しました。 がぶわわーーーーーーっと出まくるんだけど。 これなんぞ?
FreeTrain EX Av Beta2.0.1.5公開
http://sourceforge.jp/projects/freetrain-exav/news/ foobarbazerさんがEX向けに公開していた反転折返機能追加ダイヤ設定pluginを
Av 2.0向けに移植したものです。
ソースもコミットしてあるので読めます。
今回改良した部分は/plugins/org.kohsuke.freetrain.tc.tatです。
【既知の問題点】
・列車情報・列車追跡ウィンドウに反転回送時に回送表示が出ない
・反転時に、1割ぐらいの確率(発生条件不明)で列車長ぶんワープする
これが分からんのですよ。
回送運転はちゃんとされてて乗客載せないようになってるのに、表示だけに回送が
出てくれない。おかしい。
あと列車ワープも条件がわかりません。9割は問題ないんですけど。
あとワープしても線路を外れたり行方不明になったりはしないみたいです。
分かる方いたらおしえてください。
30 :
19 :2010/04/01(木) 19:50:21 ID:7pzFvUyB
EXとAv1を対象に中間ファイル出力を試すと言ったけど、 旧バージョンはVistaで動かないのをすっかり忘れてたw というわけで、とりあえずAv2.0.1.4で色々実験して 最低限の内容把握と動作は出来たので、明日は実際に 作り込みたいのですが、このバージョンで動く適当な サンプルデータをお持ちの方は居ないですかね? 頂けると非常に助かります。 それにしても、今回初めてFreeTrainのソースを読んだけれども…… よくこんな「正しいコーディング」でゲームを作ったものなぁと思った。 普通、ゲームプログラムなんてもっと汚いものでしょ? まあ、その正しいコーディングのおかげで、C#を知らない私でも すんなり読むことができた訳だけど、このソースをいじりたいとかは 正直全く思わなかった。汚したくないです。コメント英語だし……。
32 :
19 :2010/04/01(木) 21:10:32 ID:7pzFvUyB
>>31 頂きました。
が、正直に言うと実は私はほとんどFreeTrainをプレイしたことがなく、
Plugin事情を知らないためか、上手く動かせませんでした。
下記の手順で合っているか教えて頂けますか?
1.
http://sourceforge.jp/projects/freetrain-exav/ から
Beta 2.0.1.4 と PluginSet 20050904 を取得
2. Beta 2.0.1.4 を展開し、plugin フォルダに PluginSet を
展開したものをコピー
3.
>>30 の JUNKplugins.zip を展開したものを plugin フォルダにコピー
起動時に、「〜がロードできませんでした。」と
何度も言われて、最後に「多すぎ」と言われます。
JUNKplugins をコピーする際に、重複するものをどうすべきか
わからず、色々試したつもりなのですがダメでした。
FreeTrainプレイヤーなら常識の範囲で解決できるのかも
しれませんが、教えていただけると助かります。
33 :
19 :2010/04/01(木) 21:20:57 ID:7pzFvUyB
追記。お返事は明日以降で結構です。 今すぐに必要というわけではありませんので。
35 :
19 :2010/04/02(金) 05:45:40 ID:8vdVRGek
>>34 起動はするようになりました。
が、セーブデータ(チョココロネ)の読み込みで、
コントリビューション"{230E8F56-F976-4061-C477-29817768760F}-d3"を含むプラグインが見つかりません
と言われてしまいます。
FreeTrainでセーブデータのやり取りするのって実は結構大変?
ひょっとして面倒なとこ頼んじゃったのかな。ゴメンナサイ。
でもある意味それに対するひとつの対処法としても、今回の
中間ファイル機能は役立つだろうから最後まで協力してね〜。
>>35 えぇー
それ持ってないし使ってないはずなんですが。
っていうかウチでまっさらから2.0.1.4入れてJUNK2pluginsコピーして
チョココロネ動くんですが…… あっれー?
こっちのセーブデータ使ってみてください。今置き直しました。
http://u4.getuploader.com/freetrain/download/48/B203.zip DLpass: riorio
> FreeTrainでセーブデータのやり取りするのって実は結構大変?
なんですーー
こういう風に未公開自作pluginとか、他の人の列車を勝手気まま改造したの
とか使ってると……
> 最後まで協力してね〜。
ういーっしゅ。今日は結構時間に余裕あるので1/hrでスレチェックしてますので
お気軽にどうぞー
>riorioさん 動画の編集に新版開発と乙です 今動画を見ていますが、余裕があればマイリストにまとめてみてはいかがでしょうか マイリストにまとめられれば見やすくなりますし、もう少したくさんの人に興味を持ってもらえるかもしれません
38 :
19 :2010/04/02(金) 07:38:27 ID:8vdVRGek
>>36 出来ました!
ありがとうございました〜
ではとりあえずこれのエクスポートが出来るようにしてみますね。
それにしても、他の人のセーブデータ見るのって楽しいですよね〜。
自分で街を作る気力は無いけど、みんなが作成したデータを
スクリーンセーバーっぽく次々眺めていくだけのような仕組みが
あればそれだけで何時間も持ちそう。
40 :
19 :2010/04/02(金) 11:56:00 ID:8vdVRGek
とりあえず線路の出力だけ作成しました。
出力だけ出来ても意味無いと思いますが、
ファイル形式をdxf(AutoCAD)にしましたので、
CADソフトで読み込みことが出来るはずです。
配線図っぽくなりますね。
フリーのCADソフトで読んだ画面サンプル
http://www.free.netgamers.jp/freetrain/choco.png プラグイン本体はこちらから
http://www.free.netgamers.jp/freetrain/ VistaのAv2.0.1.4でしか試していないのですが、
他のバージョンで動かない理由は特に思い当たりません。
FreeTrainのプラグイン事情を知らない無責任発言ですけど。
ところで、今度は当然ながら読み込み処理を作成しようと
思ったんですが、線路を復元する前には、地形を復元する
必要があると思います。
で、地形は地形ローダーがありますが、まさかロードは
できてもセーブは出来ないというオチは無いですか?w
だとしたら、まずそっちを先に作らないと……
はやっ 地形のセーブはできないですねぇー 地形というかボクセルの地表座標?を記録していけばいいのかしら。 地形はいじったことないのでなんとも。 ロードも、モノクロ画像からその濃淡を高低に変換して地形を作るというものなので 意図してるような地形のローダというのとは違うように思います。
ExAv1.0以来やってなくて今2.0.1.5インスコしたんだけどフォルダしか出てこない… どうやったら本体とかプラグインとか出てくるか誰か教えて偉い人…orz
43 :
19 :2010/04/02(金) 13:01:07 ID:8vdVRGek
>>41 そうか〜出来ないのかぁ。
自分で一から作るのならば、やっぱりどうせならテキスト
形式がいいし、フォーマットもXMLのJPGIS(GML)とかがいいよな〜。
でもそれは労力が……。
ちなにみ、dxf出力は以前既に作成したものがあったので、
それを流用しただけです。プログラミングが速い訳ではないんですよ。
>>42 そのフォルダの中に本体入ってませんか
>>43 XMLじゃなくても、テキストベタ打ちでもいいようにも思いますが。
あとメニューの位置は、鉄道じゃなくてファイルがいいと思います。
CADソフトって今までまったく縁がなかったのでJWWとLiteCADってのとりあえず
入れてみたんだけど、さっぱり使い方が分からない。
LiteCADはDXFが読めるって書いてあるけどファイル読み込みで.lcfしか選択肢に
出てこないし。
JWWでも出力したファイルを読み込めるけど線いっぽんも出てこないなんでーーーw
大事なこと書き忘れた(汗) 1.0と3.0で動きました。 たぶん動いたでしょう。 dxfファIル読めないから結果分からないけど。エラーは起きなかったので。
46 :
19 :2010/04/02(金) 13:26:36 ID:8vdVRGek
>>44 メニューの位置は、今度修正するときに変えときますね。
ファイルフォーマットは、まあ単純なCSVとかでもいいんですけど、
やっぱり何かしらの形式じゃないと面白くないし……。
別のソフトで開いてニヤニヤしたいし。
CADソフトは、
>>40 で使用したソフトは「PC定規」というソフトです。
ググれば先頭に出てきます。出力したdxfファイルをドラッグ&ドロップして
いきなりあの
>>40 でキャプチャした画面がでますので簡単ですよ。
>>42 こっちも似たような現象があった。
3.0.0.7を+Lhacaで解凍したらフォルダしかなかった。中身は空っぽ、本体もなし。
ためしにExplzhに UNZIP32.DLLをぶち込んで3.0.0.7を解凍すると
正常にできたので、ひょっとしたら解凍ツールによって
違いがあるのかも。原因はよくわからん。
48 :
19 :2010/04/02(金) 14:19:43 ID:8vdVRGek
>>45 動いて安心しました。
あとはEXで動けば心配なさそうですね。
>>47 むぅ
それは問題だ
圧縮に使ってるのはExplzh5.59(今5.60にアップデート)
Zip圧縮ライブラリはArcext.dllで
圧縮率8
圧縮メソッドはBzip2
なのだが。
別の圧縮メソッドのほうがよかったりするのかな。
>>46 出ました。
これ2Dでしか使えないのかな。
3Dでぐりぐりして遊びたかったのに。秋葉原駅とか。
>>48 EXは.NET1.1なので、1.1環境でビルドしないと動かないと思いますね。
あとビルドオプションの対象CPUは「x86」にしておいてください。
「Any CPU」だと64bit環境で動かない可能性があります。
50 :
19 :2010/04/02(金) 15:52:41 ID:8vdVRGek
>>49 秋葉原駅は3Dで見るとカッコイイですよね〜。
フリーの3D CADソフトってあるのかなぁ?
3Dモデリングソフトだと、多分読めないだろうし
(線情報のみで、しかも属性とか何も定義してない
シンプルなデータしか出力してないため)。
EXはそのままじゃダメなのかぁ。
C#の事情は全然知らないですけど、.NET2.0の機能を
使用してなければ、そのまま動いたりしないんですかね?
ちなみに、コマンドラインから何もオプション付けずに
コンパイルしたんですけど。
スレ違い
> フリーの3D CADソフトってあるのかなぁ? なかなかなさそうで。 さっき探してきて入れてみたのは「ポリゴン職人」てやつです。 ウォークスルー機能があったりして面白そうw これはDXFファイルの「3D Face」フォーマットをインポートできるそうなので、 3D Faceフォーマットに沿って線データを構築して渡せば、FreeTrainで組んだ 線路の形に沿って歩けるんじゃないでしょうかww CADのことはよーわからんので、簡単にできるものなのか簡単じゃないことなのか 全然わかりませんけど。 あ、あとFreeTrainの線路も高さと立体交差のあるものなので。 2D出力だといろいろ残念だとも思いました。 あとでいじっくってて「そっかー」と気づいたんですけどね。
2chが大規模規制かかってて、ここに書きたいことあるのに書けねーーってコトがあるとなので。
wikiにコメントフォームつけて転載依頼ページ作りました。
まぁ前から雑談ページにコーナーもうけてあったのですが。
肥大してたので独立ということで。
ページのほうにも書いてますが、バグ報告とか要望とかで、SourceForge.jpのフォーラムに
スレッドがあるものについてはSourceForge.jpへの投稿で用事を済ませてくださいませ。
wikiのページはこちら
http://www19.atwiki.jp/freetrain-exav/pages/88.html
FreeTrainEX Av Beta2.0.1.6出しました。 2.0.1.5で追加した「反転折返」機能にワープバグがあったのを修正しました。 まだバグがあったりしないか、反転機能をいじめぬいてください。 なお、駅だけでなく信号でも反転できますが、そのとき列車編成がポイント上や カーブ上にあるときは反転できないので反転せず折り返していきます。 これはバグではなく仕様です。 反転させたいときは列車長すべてが一直線上に乗る配線にしてください。 なお、列車情報・列車追跡ウインドウにおいて、回送を指定しても回送表示に ならないのはいまだ直っておりません。 原因が分かったかた、こう修正したらいいよと教えてください。
すみません。 Av Beta 2.0.1.5〜2.0.1.6に反転機能に由来すると思われるバグがありました。 まだ現象を確認しただけで原因箇所の特定に至ってないので対処はできてません。 どんなバグか気づいた人には10ガバスw
57 :
42 :2010/04/04(日) 16:15:38 ID:ipsprIlc
>>47 thx。
こっちも+lhacaユーザーなもんで…
試しにzipの解凍ウィザード使ったら行けたわ。
wikiにバグ報告あったので転載 これから現象確認して対処します。 Prototype3.0.0.7でダイヤいじっているのですが… 高度なダイヤ設定において、駅や信号などで仮に5時00分00秒と設定して、 そのダイヤにした車両設置して運行をさせるのですが、 その駅や信号に おいて勝手に折り返し発車もしくは発車(?)されてしまいます。 これはバグか仕様なのでしょうか?? 0.81とかその前のものだと、 高度 設定で何も入れていない場合は ずっと停車しっぱなしだった気がしたのですが… -- 名無しさん (2010-04-04 22:03:08)
>>60 すみません。
この現象、3.0.0.9において確認できませんでした。
何も入れていない高度な設定を適用したダイヤを持たせた列車は、
その駅でいつまでもずっと停車しています。
もうちょっと分かりやすい、こうしたときこうなるのはおかしくないかと
いう説明があると確認しやすいのですが。
3.0.0.6で
>>60 の現象が起こったけど、3.0.0.9で同じダイヤを読ませたところ発生しませんね
隣の駅と駅間および駅と信号間の走行時間が2分未満および5分以上だった発生
高度な設定でダイヤを組んでも適用されず、30秒ほど停車して勝手に折返し運転を同じく区間で繰り返すって感じでした
>>62 ありがとうございます
では3.0.0.6でエンバグしてたのが、3.0.0.9で直ってるという認識でよさそうですね。
SourceForge.jpにこういうバグ報告があったので動作とソース見てみたけど
>ハイトカット-1にプラットフォームを建設する際、
>・線路に沿わず単体で建設する
>・ハイトカット-2に障害物がない
>以上の条件が重なるとハイトカット-2の場所にプラットフォームが建設されます。
地下が3レベル以上ある場合は、-2の場所ではなく一番底に建設されますね。
で。建設時の半透明予定表示も-1の場所や底じゃないレベルには表示されないので、
プラットフォーム建設ルーチンではなく、座標計算(Location)ルーチンにバグがある
ものと思われます。
画面上のマウスカーソルの位置をXYZ3次元座標に計算変換するルーチンね。
Care\world\Location.csあたりかなぁー
ちょっと時間かかるかもしれません。
Beta2 / Prototype3に共通すると思われるバグ報告がありました。
現象の確認はしています。
対処は、どのぐらい時間かかるか不明です。
当面、Beta2及びPrototype3でプレイする場合は、こまめに名前変えつつセーブしていって、
エラーで止まったらFreeTrain EX Avを一度終了してもらって再起動して、最後の正常セーブ
地点をロードしてやりなおしということでお願いします。
DirectXの詳しい人だれかきてーー(切実)
http://sourceforge.jp/forum/forum.php?thread_id=25949&forum_id=17592 3.0.0.9でプレイ中に下記エラーが発生。
発車ベルは鳴り、車両は1両分動いた状態で停止。
その後は時間が停止したままになる。
時間設定は選択できるが時計は動かない。
続行不能なので意味はないが、線路を引くなどの作業はできる。
【エラーレポートの内容】
HRESULT からの例外: 0x88781165
場所 System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
場所 freetrain.DirectXWrapper.Performance.play(Segment seg, Int32 leadTime)
場所 c:\ftsrc\trunk\lib\directxwraper\directaudio.cpp:行 483
3.0.09で本格的にダイヤ組んで、駅4つ+マップ外の単線路線で営業列車上下53本+回送8本の 列車を走らせる事ができたけど、これだけの本数になるとダイヤを組むが大変でした 特に高度な設定でダイヤを組む時の効率が良くないですね 複数の駅を同時に設定できたり、直接数字を入力できたらいいかも ゲームの進行速度遅ですが、1時間30分ほど放置してみたところ 普通で1日ちょっと、超高速で4日ほどしか経過してなかったので、これでは遅すぎですね。 ゲーム進行速度「普通」で1時間放置して1週間は経過してもいいかな
最低速基準の時間周期に倍速値乗算という形なら いじりやすかったんだろうけどね
>>65 単線で53本とはおそろしいですね。
動画見てみたい。
ダイヤ入力はどーしたもんかね。
複数の駅を一括して入れれたらいいのかもしれないけど……
自分の手には余るなぁ。
> ゲーム進行速度「普通」で1時間放置して1週間は経過してもいいかな
そこはどうなのかな。
「普通」はあくまでも、列車が画面内を走る絵の速度感がリアルに感じられる
時間進行にすべきと思います。
箱庭として眺めたときに、イイ感じの時間にしたい。
「高速」から上はいくらでも変えたいと思いますけどね。
なのでプロトタイプでは高速と最高速の間に超高速を入れてみましたし。
適切にとれる値があれば、さらに間をとってもいいです。
あと今はゆっくり〜超高速時のウェイトであるInterval値が、速度の基準軸に
かかわらず固定ですけど。
オプションで速度軸変えたらInterval値も連動で変わった方がいいのかな。
最高速はノーウェイトでCPUの限りつっぱしるわけなので。
画面内に書き換わる箇所がない地点をマップに置いて走らせるとより高速に
時間が進みます。追跡とかするとかなり遅くなります。これはしょうがない。
>>67 列車の走行、箱庭感を楽しめるゲームなのに
早く進めるためにはマップを見てはいけないと言う事ですね。
また「ダイヤ重視、現実路線再現重視」を自称しつつ「列車の本数を間引けば良い」と言う。
主張に一貫性が無さ過ぎるのでは。
ちなみに、同時に数十編成走ると低速でも処理が遅れます。
マップを消して最高速で回しても、何も走っていない状態の数十倍遅いです。
>>67 1日で上下61本という事は、今の感覚で言うと「2ヶ月で61本」
すなわち24時間にわずか1本という列車密度ですよ。
これだけしか走らせないのに、ダイヤの作成に非常に手間がかかるという事。
イメージできますか?
>>69 >「列車の本数を間引けば良い」と言う。
んなこといったっけ?
>早く進めるためにはマップを見てはいけないと言う事ですね。
あたりまえです。
見たきゃ見ればいいし。それが時間早回しとのトレードオフなんだから。
繰り返しますが、「高速」「超高速」のInterval値であればいくらでも調整可能です。
具体的にいくつがいいという希望があればおっしゃってください。
「最高速」は無ウェイトで全力回転してこれなんで、これ以上はどうしようもありません。
高速なCPUを積んだPCに買い換えてください。
>ちなみに、同時に数十編成走ると低速でも処理が遅れます。
これはどうなるか、自分で開発してるマップでやってみて検証します。
ちなみに低速じゃなく「ゆっくり」のことだよね?
>マップを消して最高速で回しても、何も走っていない状態の数十倍遅いです。
そらCPUが仕事してるんだから当たり前。
バージョン1でも2でもそうだったでしょ?
>>71 >今の感覚で言うと
なんで今の感覚で言うの?
それがまず間違いだと思う。
2以前とプロトタイプ3は時間進行軸がまるっきり違ってるんだから。
それを同列に語ろうとするのがおかしい。
>これだけしか走らせないのに、ダイヤの作成に非常に手間がかかるという事。
>イメージできますか?
さぁー
まだうちの山手線には列車が走ってないのでねぇー
でも従来の、一往復に4日かかる中でダイヤ組んでた時よりはラクになると思いますよ。
あとFreeTrainは誰でも開発に参加できるわけですから、「手間がかかることを実感した
私がこんなにダイヤが組みやすいpluginを作り上げてきました!」って披露してもらって
いいわけですよ。
どんどんやってってもらったらいいと思います。
>>72 >高速なCPUを積んだPCに買い換えてください。
3年前と現在で、シングルスレッド性能が何倍に伸びているのでしょうか。
FTをマルチスレッド対応にしてから言うべきです。
あー、言っとくけど自分が開発に使ってるPCは4年前のアーキテクチャだからw 遅いよww 最新CPUにしたらシングルスレッド性能でこれの3倍にはなるだろなー そんなPC欲しいなーー >FTをマルチスレッド対応にしてから言うべきです。 FreeTrainは誰でも(ry 「こんなにマルチスレッドで(ry きました(ry ちゅうかマルチスレッドで処理して問題ない部分てあるんかね、FreeTrainで。
>>73 >一往復に4日かかる中でダイヤ組んでた時よりはラクになると思いますよ。
4日→96分
従来は1往復分のダイヤをうまく作れば、そこに4編成乗せることができたのが
1日分、8往復のダイヤを全て書かないと、1編成の列車を走らす事さえできない状況になる。
これが本当に楽なんでしょうか。
連投規制にかかった 支援おねがい
>>77 支援?モナ板に居た頃はよくあったが、AAでも投下するのか?
79 :
65 :2010/04/07(水) 01:46:27 ID:HV5+akRs
>>67 なるほど
普通は現在ぐらいの速さで、その代わり高速以上をもっと速くですかね
自分のやり方は都市計画やダイヤを考えてるバックグランドで進めてるので
最高速だと早すぎるの、超高速と中間の速度がほしいと感じましたね
ダイヤの入力は難しそうですね
そういえば、0,1,2,3,4,5のキーで時間を選べることについさっき気づきました
これを使えば少しは違うかな?
>単線で53本とはおそろしいですね。
>動画見てみたい。
数えなおしたら全部で54本でした
動画は今ところあげるよていはありませんがので・・・
単線だと交換の関係で1時間に3往復ぐらいが限界ですかね
それでも、2.0だと1日に20本ぐらいがやったとだったので十分多いんですけどね
複線ならば1時間に6本とかできそうですが、管理とダイヤを組むのが大変ですが
>>78 さっきから「連続投稿? 5回」って出て書き込みできないんですわー
とりあえずダイアルアップして回避。
--- --- ---
いや、真面目な話よ。
私自身も現開発リーダーであると同時に1人のゲームプレイヤーでもあるわけなので。
マルチスレッド対応で処理が高速になればそれは私自身もうれしいよ?
うれしいけどさ。
ぱっと全体眺めたとき、この処理をマルチスレッド化できる、と気がつく点がないわ
けよ。
株式とかサッカー場ぐらいはマルチ化できるかもしんないけど。
逆に言えばそんなところマルチにしたところで処理が高速にならないよね。
内部の地形線形列車もろもろのデータ保持にしても、マルチスレッド処理をまったく
想定
してないでしょ。
最高速で回したときなにが一番重いかって列車の進行なんだろうけど。
今のママ無理矢理マルチスレッドにしたら、
「列車Aと列車B、どっちが先に駅乙に着くかそのときどきじゃないと分かりません」
みたいなことになっちゃわない??
>>76 Prototype3だとダイヤ設定が苦痛だというかたにはBeta2でのプレイをお勧めします。
Prototype3でラクチンなダイヤ設定のpluginができましたーと公開してもらえたら
それは喜んで(ry
電車を動かすスレッドと、町が発展するスレッドは分けられるような気はする。 だって電車が影響はあるけど、実際の町は電車関係なしに発展していくじゃない?
>>80 あなた自分勝手すぎじゃないかな。
自分がテキトーに決めた仕様によってどのような結果が起こるのか、少しは考えてから実行に移して欲しいですね。
せっかく頑張ってるし今後に期待したいのに、非常に勿体無い。
いやー 「Prototype」 この意味をよく考えて欲しいな。 あと 「β」 もね。 理解できなきゃ1.0.1遊んでるよろし。 時間軸を変更した実行バイナリ実物を提供しないことには、架空の想像であれやこれや 空論いじくりまわしたってなんにもなんないわけですよ。 そういうのは「考えたつもりでただ休んでる」って言うの。 実物、できた、はいこれ。 実行してみてこうだった、よかったよくなかった、こうだったらもっといい、そういう意見交換 するベースとしての実行バイナリじゃないですか。 まさに文字通りの「Prototype」なわけです。わかる? とりあえず初期値はこっちで決めてみました、ってだけ。 なにがしかの値に決めなきゃ実行バイナリは提供できるはずがない。 どういう結果が起こるのか、実物送り出さなきゃわかりようがないから、それを知るための 「Prototype」なわけです。 こういう開発方針が気に入らなければ、どうぞ今のFreeTrain EX Avをベースにしてかまいま せんから、あなたがリーダーとしてあなたが100%気に入る新プロジェクトを運営していってく ださいな。 応援もしませんが邪魔はしませんから。
>>83 時間軸なんてただ時間読み替えるだけでここまでいろいろ考えられるのに
無駄な努力だと思いますね。
しばらくはExやり続ける事にします。
>えるだけでここまでいろいろ考えられるのに
私がPrototype3を公開するまでの間、あなたがそういう考えをただの一度も
このスレに書いて示さなかったことと、今夜こうしてぐちゃぐちゃ言い始めた
ことの両方が、私の選択の正しさを証明しているんでどうでもいいです。(笑)
それはそれとして今後の開発の参考として時間軸のベースは何秒が人気
なのかは調べておいた方がいいかなと思いましたので。
wikiのほうに投票フォームを設置してみました。
おひまなかた、投票していってくださいませ。
>>81 なるほど。街が発展する段階になったらそれは効いてきそうですね。研究してみます。
wikiの代理投稿ページにもモガミさんから
>鉄道プラグインの描写と、建築物プラグインの描写を別に分けるってのはどうなんですかね。
という記入がありましたが。うーーん、建築物の中を列車が走っていくのでこれは無理じゃ
ないかなと思いますね。
>>85 >私がPrototype3を公開するまでの間、あなたがそういう考えをただの一度も
>このスレに書いて示さなかったことと、今夜こうしてぐちゃぐちゃ言い始めた
>ことの両方が、私の選択の正しさを証明しているんでどうでもいいです。(笑)
1年半も前に動画公開したのに。
http://www.nicovideo.jp/watch/sm5064233 それ以前にも色々と議論があったのに。
そんな経緯が有ったことも知らずに。。。
だからEXが好きならずっとEXやっててもらっていいから。 EXが好きなあなたを無理矢理EXからひっぺがしてAv3を強要しようだなんて しませんから。 どうぞご自由にしてくださいな。 そのかわり、Prototypeをプレイもせずに文句ばっか書き連ねる妨害行為は 今後ともなさらないでくださいね。 お願いします。 ほかのみなさんは、ぜひ実際にその手でPrototype3をプレイしていただいて。 その上でその目で時間軸とゲーム進行の関係を感じていただいて。 それを感想や希望としてスレ・wiki・SourceForgeフォーラムで開発側に伝えて いただけたらと思います。 3の時間軸が好きな人のできるだけ多くの人に満足していただける3にしたい ですね。 そういえばYzさんが秒単位改造バイナリを出したときには、売上レポートの日計 が狂ったりしてたということが過去ログにありましたが。 今回のPrototypeではそのへんどうなんでしょ。 誰も気にしてない?(苦笑)
代理投稿依頼 今軽く自分なりにマルチスレッド化を考えてみた範囲でも。 ゲーム内最小時間=ゲームループぶんの処理が完全に完結したことを知って次に進む ということにしないといけないので。 街の発展を別スレッドにしようとして、さてどうなる???ってとこでつまづいた。 マルチスレッド化は難しいと思う。 というのは今のFreeTrainだと1秒毎に街が発展し、電車が移動し、その結果を描画している のでこれをバラバラにすると街の発展速度と電車の移動がずれたり、画面の描画も他の スレッドの遅れでカタついたように見えたりすると思われる。 ゲームループというのはそういう矛盾をなくすための知恵なので、これを崩すようなマルチ 化は難しいかと。 やるとしたら、ダイアログとか開いてる間も裏で普通に時間が経過させたりとか、街の発展 と電車の移動と描画は別スレにして1秒毎の街の発展処理と電車移動が終わったら描画 するという制御をすれば使えないこともないような。
>>79 >普通は現在ぐらいの速さで、その代わり高速以上をもっと速くですかね
>最高速だと早すぎるの、超高速と中間の速度がほしいと感じましたね
了解です。
次にソースいじることがあったら、そのときあわせてこれを盛り込みたいと思います。
高速・超高速・最高速だと分かりづらいから、高速1・高速2・高速3・最高速にするかな。
名前だけのことだけど。
>>88 ごめん。
連投規制がこわくて自分の感想をあわせて書いてたらごっちゃになった。
6行目までは私の感想。
8行目以降が代理依頼のあった内容。
昨今のプログラム事情は良くわからんが、マルチコアのCPUだとスレッドごとに コアを割り当ててくれたりはしないのか?1本のタスクをコアで分け合ったり出来る なら、スレッドに分ける意味は無いだろうが。 それにあんまり厳密にやらなくても多少のズレは気がつかないし、スレッドはある 程度止めたり制御できるでしょう。まさかオブジェクト指向(笑)だって時刻に相当する 変数を参照できるだろうし、流したら流しっぱなしってアホな仕様にはなってないはず。
代理投稿依頼 第3者の意見ですが参考になれば。 マルチスレッド化についてですが、こういった列車を50編成動かすといった単純作業の繰り返しは、 非常にマルチスレッドに向いている処理だと思います。おそらくコア数にほぼ正比例して速度が 向上すると思われます。 と同時に、マルチスレッド向けに設計されていないプログラムをマルチスレッド化するのは非常に 大変な作業です。それにそうやって無理やりマルチスレッド化したプログラムは、コア数が増えて も正比例して速度が向上したりはしません。 もしFreeTrainを「マルチスレッド化」するだけであれば、それほど難しい作業ではないのかもしれ ません。が、コア数に応じてキチンと速度が向上するようにするには、恐らくメインルーチンの 全面書き直しを余儀なくされると思います。 というわけで、マルチスレッド化を議論するのであればまず、「1.最小限の修正でチョットでも速く なればイイなぁ」「2.コア数が倍になれば、処理速度も倍くらいになって欲しいなぁ」という選択肢 からどちらかを選ぶところから始めないと、後でヒドイ結果になると思います。 -- T.Umezawa
マルチスレッド化で盛り上がる以前に、 ID:IoF+8pgA氏の主張は論点がずれていると思う。 まず、ダイヤ設定の煩雑さに関しては、 マルチスレッド化でどうなるものではなく、 純粋にUIの工夫で解決すべき問題だと思う。 例えば、ある駅のダイヤ設定で、その駅に関する 全車両のダイヤを一覧表示して修正が可能にするとか。 #その為には、今の既存のダイヤデータ構造や設定方式を #根本から変えなきゃならないかもしれないけど それから、実際のプレイ時間についてだけど、 ゲーム時間の進行をリアルに近づけるということは、 列車が動く距離とそれにかかるゲーム時間もリアルに近づくわけで、 画面上を電車が動いている様子が眺められるということは、 ゲーム時間はそれだけゆったり流れるしかない、ということ。 これはマルチスレッド化しても同じ。 もし、画面を眺めつつ、ゲーム時間進行は高速にすべしというなら、 従来の1マス通過に1〜数分かかるような非リアルな時間進行にするか、 列車が目にもとまらぬ速さで画面を駆け抜けるような、 リアル進行の超早回しで実現するかの二択だろう。 俺からすれば、後者の選択は「早く進めたいならマップを見ない」というのと 大差ないことのように思えるし、もし街の発展だけ見ていたいなら、 いっそ列車運行を非表示にして描画速度向上を図る方が効果的だろう。
遅いからマルチに!とかする前に どこが本当に遅いのかとか調べたほうが? 描画停止してみたり、町の発展止めてみたり
マルチ対応にしても2コアで倍には絶対ならないし(せいぜい1.5倍程度) プログラムは複雑になるしバグも増えるし やることなんも無くなって暇になってから作業したんでいいと思うよ FreeTrain2を作るつもりなら別だけど
〜日〜時まで描画停止するっていうタイマーみたいなのはあってもいいかも 時間きたら一時停止って感じで ってあったっけこの機能
その機能はないですねぇ。 描画演算はマップの開かれてる部分にしかしてないので、 マップを最小にして最高速にしたら同じことになるんじゃないかな。 まぁそれでタイマーがあるといいってことですよね。 タイマー、んーー、実装出来るかな。 今後の研究にします。 余談: 山手線マップの中央線部分に特急(高速)走らせたら、新宿→東京で45分ぐらいかかっちゃった。 15分ぐらいで走ってくれないとリアルどおりの折り返しダイヤは組めないので、やはり 縮尺からすると速度は1/3ってところのよう。
FreeTrain EX Av プロトタイプ3.0.0.10を出しました。
SourceForge.jpからどうぞ。
高度なダイヤ設定の画面で秒の桁に不備があったのの修正と。
ゲームの進行速度について要望があった
>>79 のの取り込みをしました。
進行速度は3.0.0.10をプレイした感想からフィードバックもしたいですので
また感想お聞かせください。
ソースもうpろだにあげてあります。
> 0,1,2,3,4,5のキーで時間を選べることについさっき気づきました
これってソースのどこで設定してあるんだろう。
高度なダイヤのStationAdvancedDialog.cs見てもそれっぽい箇所が
ないんだよなー
>>92 >まず、ダイヤ設定の煩雑さに関しては、
>マルチスレッド化でどうなるものではなく、
>純粋にUIの工夫で解決すべき問題だと思う。
UIを工夫してどうにかなる範囲ではないと思うけどな。
結局のところ
>>93 のとおりの結果。
>縮尺からすると速度は1/3ってところのよう。
このような中途半端なリアルさを追求するよりは、ダイヤ作成の手間が増えない方が良いでしょう。
現状のFreeTrain、もしくはA列車シリーズというのは、不満はあってもゲームバランス的には優れている。
そこを覆す明確な理由が無い限り、最小時間単位を大幅に変更する事は出来ないんじゃないか。
私が過去に提案した「5秒単位」も、現状から考えると随分思い切った変更だと思うし
これでも利点より弊害の方が多くなるかもしれない。
マルチスレッド化については
>実際のプレイ時間について
の方にかかってくる話です。
ここ数年のトレンドとして「高速なCPU」=「マルチコア化&マルチスレッド性能の向上」である以上
FreeTrainにおける処理能力が飛躍的に向上することは望めない。
そこを勘違いしないで開発して欲しい。
あなたは、Prototype3で遊んでいて2年目の春を迎えられますか?
>>65 >>79 でふと思いついて、思いついただけでまだソースはいじってないけど。
今ダイヤの時・分・秒の入力はドロップダウンリスト使ってるんだけど、
これをNumericUpDownにしたほうが便利だったりするかな。
ちっちゃいボタン押して値を上下させることもできるし、
直接入力することもできる。
従来のドロップダウンリストは廃止せずそのまま継続して、
NumericUpDownのほうは「高度なダイヤ2」とかって名前の新たなボタンを
押した時だけウィンドウが開くようにして。
もちろんいじったダイヤの中身は両方で共通。
>>98 >ゲームバランス的には優れている。
だから、あなたとそのほかあなたと同じくそう思う人は今後もFreeTrain EXなり、
私の管理してる1.0系統・Beta2系統で遊べばいいことでしょう。
誰もあなたからEXを取り上げたりしないって何度言わせるんですか?
Av @wikiのFAQにも、こうこういう人には1.0/2.0系統の時間軸が向いてますという
ことを先日書き加えました。
3系統は3系統が好きな人がプレイすればいいです。
1/2系統が好きな人向けには1/2系統はメンテナンスを続けます。
3系統が好きじゃない人に3系統を強要したりなどということは絶対ありえません。
>私が過去に提案した「5秒単位」も、現状から考えると随分思い切った変更だと思うし
>これでも利点より弊害の方が多くなるかもしれない。
押し付けがましい見せかけだけの譲歩は不要です。
そういうことは実際に今のPrototypeで5秒単位をプレイしてから言ってください。
今とってるアンケートの結果で4秒単位や5秒単位が誰もやってねーってことになれば
存在してても意味ないから将来のβ格上げのときにはそういうのは削るかねー
>あなたは、Prototype3で遊んでいて2年目の春を迎えられますか?
プゲラ
こういうことは自分自身がPrototype3をプレイしている人が言うとカッコつくんであって。
食わず嫌い選手権してる人が言ってもこっぱずかしいだけですよw
ちなみにウチの山手線は6月16日です。
>>98 ×結局のところ
>>93 のとおりの結果。
○結局のところ
>>96 のとおりの結果。
>>96 >縮尺からすると速度は1/3ってところのよう。
その中途半端さのために、ダイヤ作成の手間をかけて意味あるのかな。
それに、俺には四季の変化を犠牲には出来ないよ。
仮にもプロジェクトリーダーなら、他人煽ってないで、この切実な意見に明確な答えを示してよ。
3系統は独自の遊び方を追求することでいいと思う。
> 明確な答え 「どうぞEXをお遊びください」 > その中途半端さのために 中途半端かどうかは、3を実際にプレイしている人が判断することだな。 プレイもせずに悪口かきまくるだけの人は関係ない。
>>100 >押し付けがましい見せかけだけの譲歩
はじめに時間単位について発言した前スレ
>>945 よりはるか以前、2008年ごろからずっとこの「5秒単位」で一貫しています。
私個人的には、これ以上長いとつまらないし、短くても手間がかかるだけ。
あくまで個人的な意見ですし、多数の同意を得られない仕様を策定しても仕方が無いですから
様々な立場から、メリット・デメリットを机上で検討しているわけです。
まぁ、どうしても溝が埋まらないのであれば、いくつも時間軸をもつという
仕様にするのもアリなのかなと思いますけど。あまり無謀な仕様に統一して欲しくはないですね。
FreeTrainに期待してますから。
>ちなみにウチの山手線は6月16日です。
大した建物もない平面に何も走ってない線路なら妥当では。
かなり手間のかかる事やってますし。
>>103 私は悪口を書いているつもりではない。誤解しないで欲しい。
考えられる現象を列挙し、懸念を表明しているだけです。
>ちなみにウチの山手線は6月16日です。 妥当といったが、6月16日では約25年分か。。。 この時間が長いと思う人もいるんじゃないでしょうか。 何も処理してなければ1年でも大した時間にならないから、イメージしづらいとは思うけど。
FreeTrain EX AvのPrototypeであるALPHA3.0.1.0出しました。 ○3.0.0.10からの変更点 ・高度なダイヤ設定に数値入力モードを追加 従来のドロップダウンリスト方式の「高度なダイヤ設定」はそのまま残し、新たに 「高度なダイヤ数値入力」を設けて、こちらではNumericUpDownにより時分秒を テンキーによる直接数値入力も受け付けるようにしてみました。 なお、「いつでも」という意味の「*」を入力したいときは、-1時/-1分/-15秒を入力 してください。
108 :
92 :2010/04/07(水) 21:50:29 ID:uzM4h36c
92さんの代理投稿
----
>>98 >UIを工夫してどうにかなる範囲ではないと思うけどな。
それは、あなたの論点が一貫せず、あちこちに飛んでいるからでしょう。
あなたは、ダイヤ設定が大変になった、という他の人の指摘に便乗して、
そもそも列車運行が遅い、と別の文句をぶちまけてるように感じます。
本当に言いたいのは
>>69 の列車の数が増えると遅くなる、ってことじゃないんですか?
他人の意見に便乗せずに、ちゃんと自分の言いたいことを整理してレスしましょう。
でないと、余計な誤解や無駄な議論を生むだけだと思います。
本当にダイヤ設定の「手間」の問題なら、マルチスレッドの話に絡むはずがない。
列車の本数が増えると進行遅くなるというならば、
それはダイヤの設定と関係ないかもしれない。
ダイヤ設定が複雑になったせいで、同じ本数を走らせても
従来より処理時間が目に見えてかかるようになった、
というなら判らなくもありませんが、ならば、そういう話をすべきです。
他人の意見に便乗して、感情的に不満を言うだけでは
建設的な議論にはなり得ませんよ?
-- 本スレ92 (2010-04-07 20:32:51)
誤解があるようなので再度明確にしておきますが。
>>104 > FreeTrainに期待してますから。
私が今現在開発リーダーをしている「FreeTrain EX Av」は、
「FreeTrainでは『ありません』」。
Avの Another version という名前が示すとおり、FreeTrain EXをベースとした、
ひとつの機能実装例にすぎず、FreeTrainそのものではありえません。
このことは前リーダー当初からSourceForge.jpや@wikiほか所々で明確に
してきたとおりです。
ですのでFreeTrainに対する期待はFreeTrainに対して正確に向けていただいて、
当方ほか Another version 関係者には向けないようお願いいたします。
あ、そうそう。3.0.1.0で追加の数値入力なんですが。
>>107 不具合というわけでもなく仕様というわけでもなく、びみょーに使いづらいところがあって。
時とか分とか数値で入力したときについ「カン」とEnter押しちゃうと、入力キャンセルに
なって前画面に戻ってしまうんですよね。
このときに一番期待される動作は入力中の項目を確定して次の項目(時だったら分、
分だったら秒)に入力位置を移動することかなぁと思ったのですが。
勝手にリストに追加されても困るしね。
たぶんこう、formのプロパティでなんかを調節したらこのEnterの動作の変更って
できるんじゃないかなーって思うんですけど。
どうやるのか分からないので、詳しい方おねがいっていうか。
ソースもうpろだにありますので。
92さんの代理投稿 ----- もう一点、ID:IoF+8pgA氏の論点がごちゃごちゃなところを指摘すると、 りおりお氏の山手線がどれくらいゲーム時間がかかるかは、本来処理速度とは 関係ありません。 これは単純にマップの1マスのスケールと、時間スケールのズレの問題で、 山手線をどれくらいのサイズでマップ上に再現するかで変わる話です。 とうぜん、万人がりおいお氏と同じサイズで作るとは限りませんし、 この問題がマルチスレッド化で解決するはずもありません。 何が主張したいのか、本人も考えがまとまっていないのでは? と思わずにはいられません。 -- 本スレ92 (2010-04-07 22:22:16)
>>108 いくつかの話題が並行してるから混乱を来している様ですね。
まぁ、ダイヤも処理も列車速度、ゲーム性も全てが問題なんだけど。
>>109 はぁ。。。
ではあなたがここに書き込むべきでも、読むべきでもないのでは?
ここがFreeTrainだけのスレではないのは分ってるけど
そもそも私はExAvに関して「だけ」言及しているわけではないんだよ。
ExやFreeTrainと共通する問題を改良しようと試みている事に関してコメントしているに過ぎない。
あなたがFreeTrainをベースに開発しているからこそ、それに対して意見を表明している。
それに対して意見を頂けるから、ここであなたと議論できるのですよ。それが嫌なら見ない、書かない方がいい。
あと、他人の内心にまで口出しする権利はあなたにはない。
一応言いますが 「りおりおのカキコがキモイから私が作ったプラグインはExAvで使うな」 とか幼稚な事は言わないので安心してください。 多くの人が自由にゲームを楽しんでくれる事が私の喜びです。
>>112 あなたがやってるのは、おもちゃ屋の前でワンワン泣き叫んでおもちゃを
ねだってるお子ちゃまと同じことで、これっぽっちも議論になんかなってません。
議論してるつもりなんでしたら大きな勘違い。
議論というのは、共通の知識経験ベース(今回の場合であれば用意されている
Prototype3.0を実際にプレイするということ)にもとづいて意見交換すること。
あなたにはそれがまるっきり欠けている。
つまりそれは「議論する気なんかハナっからない」ということを客観的に証明
してるの。
ほかの議論する気のある人はちゃんとPrototype3.0をプレイしたうえでその
感想を書いてるからね。
それは「議論」と呼べるものになりますわ。
この意味が分からないなら、それはやっぱりあなたがお子ちゃまだから理解
できてないってことにほかなりません。
結論でたら呼んで
>>114 あなたのプロトタイプ、そもそも私の環境で動かないんだもの。
(自分で対応して動かせるかの調査、バグ報告等を怠ったのは私の怠慢である事は認めます)
以前に時間単位を変更した試作版が出ているでしょう。
私が話しているような、基本的な問題を論ずるにはあれで十分です。
実際にプレーしてみても、私の予想がそのまま現実になるだけじゃないでしょうか?
それに実際に私の予想通りの意見が出ているじゃないですか。
こんな単純な問題「やらなければわからない」はずが無いでしょう?
それはおかしいな〜〜〜〜〜 「Prototype3が動きません」 という報告は、少なくとも3.0.0.4以降では一件もうけてないのですが。 もしあれば、2chが規制されててかけないならSourceForge.jpに相談あるはずです よねぇ。そこで配布してるんだから。 まぁこれが動かないって、よほど特殊な環境なんでしょうね。 2000/XP/Vista/7でふっつーーに動いてるんだから。 その環境であれば、今後ともAvが動く見込みはないでしょうし、動かせるようにしろ と言われてもそんな特殊すぎる環境に対応するコスト・メリットはありませんから、 対応しません。 つまり、あなたがAvに対して口出しする意味はこれまでもこれからも皆無ということ です。 大人なんでしたらご理解ください。 あとコテトリつけてもらえますか。 NG登録しとくんで
>>117 最新バージョンを起動したところ動いたのでコメントさせていただく。
この5秒単位、裏では1秒ごとに処理しつつ単に列車を動かすのを5秒間隔にしただけか。。。
そりゃ話が通じないわけだ。私が提案する最小時間単位5秒とは全然認識が違う。
自分もコテはつけてほしいな。 正直横から見ててここ何日かのID:qT+3Ff6zの書き込みは FreeTrainの開発妨害を目的にしてるとしか思えんわ。 開発リーダーへの中傷も目にあまるものがあるし。
>>119 中傷?どこが。
私はりおりお氏を怒らせたくて書いてるわけじゃなく
出来る限り表現を抑えて書いてますよ。
わざとか無意識か知らんが、他人の神経を逆なでするような
荒れそうな文体の書き込みのほうが問題なんじゃないか。
キモいっていうのは立派な中傷だと思うね。 「幼稚なことは言わないので安心して」 なんていうのは、言わないけど思ってるっことですよね。 あるいは、プラグイン使うなとは言わないけどキモイとは言うぞ、か、どっちかね。 十分幼稚だと思うよ。 >わざとか無意識か知らんが、他人の神経を逆なでするような >荒れそうな文体の書き込みのほうが問題なんじゃないか。 なら、あなたがrio2氏のコテをNG登録しとけばいいのでは。 神経さかなでされなくてすむでしょう。 そのためにNGって機能が専用ブラウザにあるんじゃないですかね。 あとあなたの書き込みで私は神経さかなでされまくって見るのもイヤなので、 コテつけてください。
あぁ。 自分がこのスレを荒らして開発を邪魔してるって自覚はあったんだ。 てっきりその自覚もないかと思ってたわ。 毎日NG登録追加するのめんどくさいからコテ希望。
>>123 プロジェクトリーダーに意見を言っただけで荒らし?
正直、そんなに意見を聞きたくないなら、あなた方がこのスレを使う意味がないのでは。
「意見を言っただけ」、あれが「だけ」? おいおい。マジでそう信じてるのかよ。 だけなもんかい。 実際にプレイして感想を書いたのなら意見を言ったでとおるかもしれないけど。 プレイはしない。 毎日スレに張り付いて連投。 書き込む内容はプロトタイプのネガキャンばかり。 プロジェクトリーダーの進めようとしていることに反対反対なにがなんでも反対 絶対反対。 プレイしてから書いたらと指摘されると「動かない」とこれまたネガキャン。 一見ふつうの意見っぽい書き込みがあっても、その底にあるのはプロトタイプを つぶしてやろう、プロジェクトリーダーをつぶしてやろうという魂胆ですよね。 自分が一番スレで古株なんだ、自分が一番エラいんだ。 あとから来てリーダーになったやつなんか知るかと。 レスがつづくとだんだんボロが出てくる。 自分が他人からどう見られてるか、ちょっとひいて客観的に見た方がいいですよ。
>>125 あなたは他人の心の中が見えると勘違いしているようだ。
ちょっと落ち着いて、みんなの文章を読み直した方がいいと思うよ。
なんか単発ふえたな。
伸びてると思えばまたこの流れか おまえら国会議員みたいなやりとりすんなよw りおりおさんも対案のない反対意見にまで反応せず 適当に流しといた方がいいよ
放っておけよこんな奴 いずれ飽きて消える
>>129 すいません、まだ古いままだったみたいです。
今もっかい置き直しました。
バージョンナンバーは変わりません。
DirectXWrapper.DLLのタイムスタンプが今日になってればOKです。
>>64 エラーの発生条件がしぼりこめない
単体で最高速で30分まわしてやっとエラーが1回起きた。
Visual Studioのデバッグモードでイミディエイトウィンドウ監視しながらだと
1時間まわしてもエラー起きない。
むぅーーー
とりあえず3.0.1.1でもエラーが起こることははっきりしているのだが。
そのときどんな変数が渡されてるかなんだよなー
駅の同時発車で起こりやすいっぽいから10列車同時発車全部異なる発車メロディなんて
のも試してみたし。
建物建設でも起こるから建物いっぱい建ててみたりもしたけど。
さっきから数分毎に HRESULT からの例外: 0x88781165 場所 System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) 場所 freetrain.DirectXWrapper.Performance.play(Segment seg, Int32 leadTime) 場所 c:\ftsrc\trunk\lib\directxwraper\directaudio.cpp:行 483 場所 freetrain.framework.sound.SoundEffectManager.play(Segment seg, Int32 leadTime) 場所 C:\FTsrcTime\trunk\core\framework\sound\SoundEffectManager.cs:行 48 場所 freetrain.framework.sound.RepeatableSoundEffectImpl.onTurnEnd(Object sender, EventArgs a) 場所 C:\FTsrcTime\trunk\core\framework\sound\RepeatableSoundEffectImpl.cs:行 81 場所 freetrain.world.Clock.tick() 場所 C:\FTsrcTime\trunk\core\world\Clock.cs:行 164 場所 freetrain.framework.MainWindow.timerHandler(Object sender, EventArgs e) 場所 C:\FTsrcTime\trunk\core\framework\MainWindow.cs:行 1369 場所 System.Windows.Forms.Timer.OnTick(EventArgs e) 場所 System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m) 場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) の表示が出てゲーム内の時間の進行が止まる。
列車が駅を出発した直後に↑の表示が出てるね。
>>132 まさにそのエラーをつぶそうとデバッグしてるのだが、
デバッグモードでエラーが起きてくれないので
つかまえられない
数分ごとに起きるとなるとそのセーブデータ欲しいぐらいだなw
ただし、エラーは必ず起きるわけではない。 列車の運行本数を増やせば増やすほど頻度が高くなっている感じだ。
・列車が同時発車時にエラー
・建物多数建築中にエラー
ってのはフォーラムに詳細な報告があったので、新たな手がかりにはならないですねぇ……
あと
>>137 のセーブデータをロードしてみたけど、自前のデータとエラー発生確率は
かわらないかんじかな。
特段起きやすいということもなさそう。
なんだろうなぁー
エラーのコードによると
>HRESULT: 0x88781165 (2289570149)
>Name: DMUS_E_TIME_PAST
>Description: The time is in the past, and the operation can not succeed.
ということらしいんで、親C#から呼ぶときのleadtimeがでかすぎるのか??
おまけ
>・「ディフォルトダイヤグラム」で列車が発車しない。
確認できず。
>・駅停車中の列車のダイヤを変更しても反映されない。
これEXからそうですよね。
へたにいじるとバグ誘発しそうなんでいじれない。
>・駅プロパティの利用者数、停車本数が数十分でリセットされる。
これは見ておきます。
>>138 >>・駅停車中の列車のダイヤを変更しても反映されない。
>これEXからそうですよね。
>へたにいじるとバグ誘発しそうなんでいじれない。
表現が曖昧だったかな?正確には
・駅停車中の列車に対して「列車の配置」メニューで
列車に適用するダイヤの種類を変更しても反映されない。
FreeTrainEx20050903バージョンでは動きます。
ただし、駅停車中の列車に「通過」は適用できませんが。
>>139 意味は伝わってます。
んー。Avではずいぶん昔から反映されなかった気がするな。
気のせいかもしれんので。時間あるとき見ておきますが優先度は低めです。
DirectMusicのエラーがやっぱり再現しなくて……
一度自前でエラー起こせたセーブデータでも、リロードするとエラーにならんし。
あと要望がフォーラムにでてましたので転載。
-----
閉塞区間と連動の分岐が欲しい
閉塞信号プラグイン
ttp://www19.atwiki.jp/freetrain-exav/pages/79.html 大変便利なのですが、
閉塞区間に列車が止まっている場合に信号で止まるのではなく、
ポインタが分岐するプラグインを希望します
具体的には普通列車が緩急接続をする駅に近づくと後ろをチェックし、
すぐ後ろに特急が近づいていたら分岐して待避線へ待避という具合に使いたい
分岐→直進→分岐→直進を列車が通るたびに自動で変わるポインタや
2分の1の確率でどちらへ進むか分からないミステリポインタも欲しいです
お願いばかりですいません。
-----
はっはっは。なかなか難しい要望がきましたね。
nanashiさんやってみます?
if( leadTime!=0 ) { MUSIC_TIME t; //readtime(msec) => referencetime([100ns]) handle->ReferenceToMusicTime(leadTime*10*1000 + GetClockTime(handle), &t); leadTime = t; } でどうでしょうか 多分vbとc++では時間の基準値が異なるため(64bitの扱い?) c++に書き換えたときこの部分が抜け落ちたのではないでしょうか(昔のdirectaudioを見るとコメントアウトしてある) それでleadtimeはmsec単位で良いのですよね?違っていたらごめんなさい デバック出力でleadtime-MusicTimeが約800≒DMUS_PPQ[4分音符]≒200ms?となっているのでおそらく間違いはないと思うのですが…
>>141 おおー
なるほど、msecとnsの違いでしたか。
たしかに旧のC#で書かれたDIrectAudioのソースには*10*1000がありました。
DirectMusicは全然詳しくないので助かります。
とりいそぎ、この変更をしたDirectXWrapperを取り込んだβ2.0.1.8とPrototype3.0.1.2
をリリースしました。
よろしくお願いします。
143 :
名前は開発中のものです。 :2010/04/09(金) 10:45:37 ID:ilLLmYNJ
あれー? あれほどコテハンつけろNGにするからと息巻いていたのに、 翌日にはそんなことも忘れて普通に会話ですかwww やっぱり、こいつ言うことがころころ変わるねーw 自演までして擁護しといてこれかよ、これじゃ住民も苦労するわな。 この先迷走するのは目に見えてる、住民乙www
草はやしてるガキんちょよりは大人ってことでしょ。
頑張っててすごいんだけど、今さらこんなゲームの拡張してどうすんだ?というのが素直な感想です どうせならもっとマシなのを1から作ればいいのに
ここまで色々後付すると中はすさまじい事になってるんじゃないかと。 確かに1から作り直してFreeTrainExBver?にすれば、中はすっきりするだろうし、 仕様追加も楽だろうし、速度的にも有利だけど、書き直すってすごく勇気が要る事 だしなぁ。
一旦整理したほうがいい状態になってるとは思うけど ユーザーからみたら地味な作業だから評価されづらいんだよね
んなこたない
とりあえず現状ボトルネックになっている(と想像してるだけだけど、たぶん間違って ない)グラフィック関係だけでも整理できれば、結果として体感速度が上がる(と思う) ので、評価されるんじゃない? 今作業してるの経過時間関係はさらにぐちゃぐちゃだろうけど、これからも仕様変更が 入るだろうから、今いじるのは得策ではないかな。
オリジナルのDirectXラッパーじゃなくて一般に普及してるものをチョイスした方がいいかもな
>>147 >>150 そういうのは自分の仕事ではないと認識しておりますので。
得意としてて「自分がやってやるぜ」って人が出てきてやって
くれるといいなと思ってます。
>>151 そこまで一般に普及しているライブラリってないのよ〜
ライブラリとしては3種類ぐらいあるけど、どれ使っても普及してなくて新たに入れてもらう
ことになるか、今後のメンテナンスが放棄されてるか、まだ発展途上でバグが多く
ドキュメントがほとんどないか、無駄に重いか。
んでプレイヤーには新たにライブラリを入れてもらうことを強いることになるわけだし。
メリットはなにもないですね。
オリジナルのラッパーを書いてくれた方には本当に感謝しています。
最もスマートで美しく速い手段を実現してくれたので。
>>152 別に名指ししてやれとは言ってないのでやらなくても大丈夫でございます。
誰かそういうの得意な人はいねーでございますかねぇ?
オラは他人が読んだら怒り狂う悪のプログラム道を極めんがため、日々悪の
ソースを書いておりますので、プログラム的には力になれないでございます。
申し訳ない。
「A列車つくるよー」スレのorzdenが少しずつ進化していってるようで面白い。
道路が先に実装されたのかー
いいなぁ、道路。
開発はオープンにしてないみたいなので、またーりヲチしてますw
>>153 直接開発に加わらなくても。
バグとかで詰まった時にヒントもらえるだけでもありがたいです。
155 :
19 :2010/04/10(土) 05:46:27 ID:jvjBnLgR
やっと規制解除された〜 プログラムの実行速度に関しては、少なくとも画面周りに関しては 特に重い感じたことは無いけど、他の人と認識が違うのかな? 進行のほうの処理については、まあ確かにボクセル単位の 処理であるにも関わらず微妙に遅い気はしなくもないけど、 AV2までの時間単位であれば特に気になったりはしないなぁ。
うちでFTを遊ぶ時はまず最初にヘイトカットでビルを消す作業からスタートです。
157 :
19 :2010/04/10(土) 15:32:02 ID:jvjBnLgR
地形ファイルの入出力プラグインを作成しました。
http://www.free.netgamers.jp/freetrain/ Av2.0.1.8で、りおりおさんのチョココロネマップを出力し、
Av3.0.1.2で、そのファイルを読み込むまでは確認しました。
ファイル形式は残念ながらいい加減なxmlで妥協して
しまいましたが、一応、国土地理院で配布している
標高データを読むことはできるようです。
ちなみに、読み込み処理はものすごく遅いです。
フリーズしたかと勘違いするくらいに。
誰か MountainVoxel.getTotalHeight() に対応する
高速な MountainVoxel.setTotalHeight() 作って〜
乙です〜。
あぷろだにウィルス(マルウェア)を発見しました ftup0075ですので絶対に見たりしないようお願いします 管理者の方は削除をお願いします
ftup0075削除しました。 報告乙蟻です。
>>157 乙です
開発言語なんですか?
.NET 1.1に移植できればEXでの書き出しもあるいは……
>>160 管理乙です
>>all
駅プロパティの日計が1日たたずにリセットされるののほかに
Prototype3系列でエンバグしたとおもわれる部分てありますー?
集計関係とか全然チェックしてなしにリリースしてるから。
ほかにも問題点あるならまとめて修正してリリースしないと。
なんで自分で直したのに自分でテストしないの? 数字関係は見ただけでわかるだろうに。 全て他人任せかよw
ぶっちゃけるとPrototype3で一度も駅プロパティあけたことないから 見たこともなかったw 案外開発側って自分で想定した動かし方しかしなくて、想定外の 操作したときになんかヘンなになるってことを見落としがちなので 開発者の立場を離れた視点からプレイしたほうがバグってみつか りやすいのです。
だからってテストしないのもどうかと思う
2年1月までほっといたけど、駅のプロパティ以外に集計周りの問題やゲームに支障がでるようなバグはないと思う
ソース追いかけてみたところ、 駅のプロパティのところに直接的なバグがあるのではなく、そこで呼んでた core\world\TimerLength.csのなかの > public static TimeLength fromHours ( long hours ) { return new TimeLength(hours*60*60); } となるべきところが | public static TimeLength fromHours ( long hours ) { return new TimeLength(hours*60); } になってたのがマズかったみたい。 日のほうが > public static TimeLength fromDays ( long days) { return TimeLength.fromHours(days*24); } で引用してたのでそのまま1/60になってたっぽい。 で、駅プロパティ以外にもTimeLength.fromHoursやfromDaysを使ってる ところがあったら全滅だと思うんだけど。 なかったのかな?
そこまでわかっててなぜ調べないの? もしかしてIDEの使い方知らないの? 位置はわかったけどどんな影響があるかわかんないとかそういうこと?
それは違うんじゃない? timelengthはminnute単位で数えてるから じゃあ何所かっていうと… 書き換え後のソースを見てないから違うかもしれないけど clock.csの中でtimelengthのtotalminutesが参照される場所 これはregisterOneShotでcurrentTimeとの加算をしている 予想だけどcurrentTimeが秒単位になっているからじゃないかと
>案外開発側って自分で想定した動かし方しかしなくて、想定外の >操作したときになんかヘンなになるってことを見落としがちなので これはわかるよ。 主観的な観点だけじゃなくて客観的、第三者的な観点でチェックするというのは。 今回のはダイアログ開いたりして見てればすぐわかるようなものじゃないのか? と思って言ってるのだけど。 もちろん協力なんかしないというわけじゃないが、見てすぐわかるものぐらいは リリース前に確認して欲しいと思う。
>>167 >そこまでわかっててなぜ調べないの?
今回直して、潜在的にあったであろうバグはとれたであろうから、
いまさらそれを調べることに価値ってなくね?
>もしかしてIDEの使い方知らないの?
知ってるか知らないかで言えば知らない方に入ると思う。
EEだからかしらんがフォームに不整合あったらすぐ落ちるし。
快適じゃないんでがりがりコード書くときは外部単体エディタ、検索したいときは
Windows標準機能の「検索」で。
>位置はわかったけどどんな影響があるかわかんないとかそういうこと?
微妙に違うかな。
駅プロパティ以外にも影響与えてそうなんだけど与えてなかったのかな?
わかんないけど。
ってとこ。
>>169 線路引いて駅立ててホーム作ってダイヤ組んで列車往復させてポイント作って
分岐させてみたいなテストはやったよー。当然。
最初は「駅を発車しねー」とか「ポイントで曲がらねー」とかバグあったしw
それを繰り返してバグなくなったなと判断した時点で公開したけど。
駅プロパティを見るということがテストからすっぽり抜けてたのだ。
じゃあつまり今回の変更で正しく動作しなくなった部分がないかちゃんとテストしてないってことなんだね
それは「ちゃんと」の定義によるんじゃないかな。 全plugin全機能もうらしてなきゃダメ、といわれたらやってないですし。 基本機能をひととおり、ということならテストしてます。
すぐわかる、直せる&ゲームに直接影響の無いような軽度のバグなら別にどうでもいいさ。 ただ、じっくりテストする余裕が無いというなら、リリースを急ぎすぎない方が良いんじゃない?
まあ、これは開発者がどこまでやる責任があるのかという定義づけの問題だろうな。 俺はここまでしかしないと言えば、それまでだろうし。 厳密に全ての機能を確認となるとかなりの時間かかるだろうし。 いままでの担当者もそこまでやってないと思うけどね。 まあ、忘れていたのならしょうがないよな。 リリースが早いのはみんなにとってメリットもあるけど、テストしきれていないという デメリットもある。 バグもじっくりやってたたき出すという方法ではなく多くの人にプレイしてもらうことでバグを 叩き出す(いわゆる人海戦術)という方法をとられているみたいだけど、デバッグに協力しよう という人が多くないと意味ないよね。 現状いろいろと報告してくれる人がこのスレにはいるみたいだから、機能しているけど。
175 :
19 :2010/04/11(日) 05:37:06 ID:nFKc4etn
開発者にとっての理想は、自分では一切テストプレイせず、 テストは完全にテストプレイヤーに任せられる環境だよね。 そういう環境だと開発スピードは飛躍的に向上するよ。 数あるA列車ライクなフリーソフトの開発プロジェクトで、 何故FreeTrainだけがこんなに成功したのかなと不思議に思い 川口さんが現れた頃のA列車過去スレとか読んでみると、 その開発者側の理想環境がかなり実現されているよね。
176 :
19 :2010/04/11(日) 05:45:19 ID:nFKc4etn
>>161 開発言語はもちろんC#ですけど、環境のことですかね?
Visual Studio 2008 Standard Edition、.NET 3.5 を
使用してますが、コンパイルはコマンドラインからですw
本当はちゃんとソリューションファイルを作成して、
それを .NET 1.1 の開発環境持ってる人に渡してビルドして
もらえば Ex にも対応できるのでしょうが面倒なので……。
>>179 以前C#は知らないみたいなことおっしゃってたきがしたので
C#じゃないのかと思ってました。
C#だったら、SharpDeveloper入れたら1.1向けビルドできるかも。
今回のバイナリのビルドするときオプションでターゲットは.NET2.0にしてました?
ウチ、Express Edition入れるときに一緒に.NETも3.5になっちゃってるんで。
2.0でも3.0でも3.5でも動いてしまうのですが。
もしターゲットが3.5になってたら、2.0しか入ってない人のところで動かないやも。
178 :
19 :2010/04/11(日) 08:06:09 ID:nFKc4etn
>>177 C#知らないって言いましたね。
まあ知らないんですけど、ごく簡単なコーディングなら出来ます。
簡単な処理なら Java や C++/CLI とそんなに違わないですからね。
それに、FreeTrainから呼び出してもらっているDLLはC#ですけど、
そこから更に別のDLLを呼び出していて、それはC++で記述しました。
まあつまり、C#側のDLLはただのラッパーです。
.NET は 3.5 でコンパイルしてました。
3.5 でコンパイルしたら(3.5専用のライブラリを
使用していなくても)2.0では動かないんですかね?
.NET 事情は全く知らないのでよく分かりません。
もし動かないという報告があれば、2.0 でコンパイルしなおします。
Prototype3.0.1.3出しました。
日計関係なおってるはずです。
ただし、3.0.1.2以前に建てた駅は一度撤去して建て直していただく必要があります。
建て直さずに続行すると集計が狂ったままになります。
中身の話すると、駅を建てたときに日を繰り越す処理のイベントハンドラがレジスト
されるので、イベント周期がその時点で決められてしまうため。
3.0.1.3で読み込んでもイベントが3.0.1.2時点の周期で起こってしまうから。
>>178 サブPCから.NET3.5/3.0をアンインストールしてみて動かしたところ、plugin動いた
ので、大丈夫なようです。
もし他の人から動かなかったーって話が出てきたら2.0でお願いします。
表面的なことをいうと、ファイルメニューのなかで「終了」と並びになってますけど、
ここよりもマップキャプチャなどと並びになったほうが美しい感じですね。
メニューの--仕切りの間のどこにはさみこむか指定書式があったような……
180 :
19 :2010/04/11(日) 11:26:20 ID:nFKc4etn
>>179 .NET2.0でのご確認ありがとうございます!
環境をいじれるマシンが手元に無かったので助かりました。
メニューの位置ですけど、確かにそれは感じたんですが、
変更方法が良く分からなかったので諦めましたw
ググレカスというやつですね。
でもあえて聞きます。
ググらなくてもC#が頭に入っているというすばらしい方、
いらっしゃいましたら是非お教え下さいませ。
181 :
19 :2010/04/11(日) 12:04:16 ID:nFKc4etn
今、線路情報の読み込み処理を作成しているんですけど、 何故かマップと線路の位置がズレてしまうんです。 で、その検証用にセーブデータが欲しいのですが、 どなたかご提供頂けないでしょうか? 欲しいデータは、 ・Avの2系又は3系 ・地形がある(平面のみのマップではない) ・四方が海に囲まれていない ・レールが敷いてある です。よろしくお願い致します。
183 :
19 :2010/04/11(日) 12:38:57 ID:nFKc4etn
168は見当違いだったようです すいません menuitemを任意の場所に挿入するにはキーが提供されていれば楽なのですが できるだけ本体のソースを書き変えないなら少しだけ面倒になります 単に挿入位置を探してinsertというだけなのですが 将来仕様変更でitemの並び順が変わらないと仮定できるのであればindexプロパティを変更するだけです
185 :
19 :2010/04/11(日) 16:03:45 ID:nFKc4etn
線路の入力にも対応しました。
ただ、残念ながらまだ地表の線路のみですが。
http://www.free.netgamers.jp/freetrain/ マップとズレる件は、単に私の勘違いからでした。
りおりおさんのチョココロネマップのサイズは
てっきり 400x600x16 だと思っていたのですが、
実際は 400x568x16 で作成されたものなんですね。
それにしても、英語力の無さがこんなに深刻だとは思いませんでした。
分岐レールのクラス名が「JunctionRailRoad」だったとは。
「ジャンクション」とか言われると、高速道路のものしか
思い浮かばない私。分岐はてっきり「ポイント」だと思ってた。
RailRoadでわかるだろw 道路はただのRoad
187 :
19 :2010/04/11(日) 17:13:36 ID:nFKc4etn
確かにねw でも分岐レールはどれだろう〜って流し読みしてる状態だと、 Junctionが目に入った時点で読み飛ばしちゃうんだよー
>>185 そこで日本語変数名ですよ。VC#は通るかわからんけど。
最近はなんか一部で日本語変数名ありじゃね?とか言われちゃってるんで微妙
ですが。
189 :
19 :2010/04/11(日) 17:24:50 ID:nFKc4etn
日本語変数名、可読性が大幅に向上しそうですよね。 英語が苦手な人間にとっては早く普及してもらいたいデス。 っていうかせめて変数名は和製英語使って欲しいです。 分岐器はふつー「ポイント」でしょ? まあPointだと座標と間違えそうで紛らわしいですが。 ちなみに、私の愚作「最強都市計画」では、 分岐器のクラス名はズバリ「Bunki」ですww
日本語⇔英語の用語集があれば便利だと思います!
確かにネット繋がってれば辞書引くのも難しい作業じゃないが。 誰だ変数名をフルスペルで書かなきゃいけないなんて流れを作ったやつは。 俺が言っても仕方ないけど。
192 :
19 :2010/04/11(日) 18:14:22 ID:nFKc4etn
ソース見るとYZさんもコメント英語で書いてるし……。 Yahoo!翻訳する身にもなって欲しいものです。
.NET 1.1 ってMSのサポート期間切れたんじゃなかったっけ? アンインストールしてない人大丈夫?
>>192 そんな糞コメントなんか読み飛ばしてしまえばおK。
無視するがよろし。
>>193 俺普通に1.1/2.0/3.5と入れてるけど?
なんか不味いことあるのかな。
もうセキュリティアップデートが無いってことです
ポイントとかパンタグラフとかVVVFとか 鉄道用語は適当な英語がそのまま使われている。
.Net1.1は延長サポート期間中だから2000やXPと同じ状態でセキュリティアップデートも提供される むしろ問題になるのはwin7でサポートされていないことかな
198 :
19 :2010/04/11(日) 20:32:58 ID:nFKc4etn
過去ログにこんなの見つけた
>768 名前: 川口耕介 投稿日: 02/08/14 10:38 ID:wRbtNI+r
>
>
>>737 >カーブやポイント(ところで英語ではpointって言わないよね)通過中
英語ではpointと言わなくても日本語ではポイントと言うのだから
せめてコメントにカタカナで「ポイント」と記述しておいて欲しい、
と過去ログの中の人に言ってもムダだけど。
鉄道用語の日本語と英語の対応表は欲しいですね。
とりあえずそこまで引っ張る話題でもないでしょう
とりあえず、プログラマは英語ぐらい読めないと三流だぞ。
>>185 >りおりおさんのチョココロネマップのサイズは
>てっきり 400x600x16 だと思っていたのですが、
>実際は 400x568x16 で作成されたものなんですね。
え゛
自分も400x600x16のつもりだった……
568みたいなはんぱな数字にするとは思えないのだがなぁ。
なんだろう???
というか今のFreeTrain EX Avって、そうなる前のEXもなんだけど、
開始後のマップの広さや水面高をプレイヤーが確認する手段が
ないんですよね。
だから今のままだと書き出ししたxmlを読み込むための新規マップの
サイズをどうするかって困る人が多いと思う。
だから書き出しxmlの先頭付近にマップサイズを記録して、読み出し
時にはもう新規マップを確保することまで含めて動作するようにして
いいかもしれない。
あとは「表示」メニューのなかに「マップ基本情報」みたいな項目を
追加して、マップのXYZ広さ・水面高・陸地広さ・線路長などを表示
してくれるpluginがあるとうれしいかもねー
600-16*2=568 高さx2の分じゃないかな。 なぜ差し引かれてるのかは知らないが。
A4だかにあったようなミニマップ表示とまでは言わなくても 表示位置の座標移動ができるといいかも あとからサイズ変更できないからと大きめのマップにして作り出すと 開発前の部分の移動とかアバウトにしかできないし どこを基点に0,0にしてx,yなのかよくわかってないけどw
いわゆる「サテライト」ですよねー 欲しいけど自分の手には余るな…… あと関係ないんだかあるんだかな事で、開始時のマップサイズで 縦横数値打ち込むんだけど、できてきたものが横長につぶれたものに なるのなんでなんだっけ。 いまだ全貌を理解してなくてスマン。 XYZ座標系は、左上すみ最下層が(0,0,0)で、 左下向けてX軸増加 右下向けてY軸増加 だったと思う。 右手系っていえばいいのかな。 親指X・人差し指Y・中指Z。
サテライトって考えようによっては、マップキャプチャの縮小版でしょ? nanasiさんがマップキャプチャ作ってたよね。 あれで1ボクセルを1ピクセルで表示すればサテライト擬きできない?
マップの大きさが可変だから難しいな。
208 :
19 :2010/04/12(月) 06:18:40 ID:RJb+RX/w
>>202 より正確に言うと、
「新規作成」の空マップで 400x568x16 と入力すると、
400x600x16 のマップが生成されるということです。
たぶん
>>203 さんの言うとおり、高さとの整合性のために、
こんな仕様になっているのかなと思う。
まあとにかく、「568」なんていう数字をユーザーに
入力させないと使い物にならないというのは不便だし、
「マップ基本情報」の表示機能を追加したところで、
新規作成で入力した値ではなく、生成後の値がと表示
されてしまうので、何かしらの対策が必要ですね。
チョココロネは、「空マップ作成」ではなく「地形ローダー」で作成したマップ なので(動画参照)、地形ローダーpluginのソース見るとなにか分かる かもしれません。 もし「マップ基本情報」表示pluginを作成するとしたら、生成後の値でいいと 思います。 地形ローダーのほうになにがしかの制約があって数値がずれることがあっても それはしょうがないというか。
210 :
19 :2010/04/12(月) 09:21:10 ID:RJb+RX/w
線路入出力は勾配にも対応しました。 が、残念ながら高架線路に橋脚が表示されません。 高架は SingleRailRoad じゃないのかな? それとも何か付け加える必要がある?? ちなみに、チョココロネマップで試したら、 途中で「資金不足」と言われてしまいましたw この機能では資金を消費しないようにしたいけど、 もうソース読むの疲れた。英語(ry 地形のほうの読み込みはどうにかしないとね……。
211 :
19 :2010/04/12(月) 20:45:53 ID:RJb+RX/w
とりあえず、元のサイズより大きい空マップに 読み込んでもズレなくなりました。
線路入出力はまだ左上の位置確定ができてないのかなー? 保存した時より右下にずれた位置に再現されるっぽい。 高架の橋脚は、んーと、チョココロネでは元から生えてないのでサンプルとして 不適当かも。 下に何もなければ自動で橋脚が生えて、もし鉄道アクセサリプラグイン・建物プラグイン などがすでに地表に存在する上のボクセルに線路をしいたときは橋脚は生えないという 仕様だったと思うので。 そのおかげで、コンクリート橋脚とか盛土高架とか、鉄道アクセサリや建物でリアルな 高架をデザインできることになってまして。 チョココロネの高架はそういう、別プラグインを下に置いた高架になってるのです。 空マップから、レールだけひきまわしたら橋脚がはえたデータができると思うので。 それを書き出してみてどうか、というところですね。 その自動の橋脚はレールと一体の取り扱いになってたような。 橋脚をブルドーザでぶちこわすと上のレールも消えちゃうので。 あとどうでもいいところですが、読み込みのときだけでなく書き出しの時も、拡張子 .dxfとか.xmlが自動で補完されると便利かなと思いました。
213 :
19 :2010/04/12(月) 22:03:20 ID:RJb+RX/w
あれっ、まだズレますか? 本来の位置からはズレても、地形と線路が同じだけ ズレるようにしたつもりなので、少なくともチョココロネ のような島のマップであれば問題ないかなと思ったんですが、 もしズレるようであれば、そのデータも頂けませんか? 高架の橋脚は空マップで試してダメだったので、 SingleRailRoad を生成するだけじゃ足りないようです。 必ず橋脚があるのであれば SingleRailRoad と一体 なのかもしれませんが、地表になにかあると生えない ということは、個別に何か生成しているのかな? でもブルドーザーで一緒に消えるということは、 何かしらの関連付けはされているんでしょうね。 ちなみに、保存のときは一応拡張子は自動で付与されます。 画面には表示されないですけどね。
216 :
19 :2010/04/13(火) 06:57:53 ID:Cwx/ymMX
>>214 頂きました。
>>215 一昔前なら無謀とも思えるリアルな山手再現が実現できた感じですね。
それにしてもFreeTrainは、Vistaにも対応したし、A21を超える
時間軸も手に入れたのにあまり盛り上がらないのは何故?
217 :
19 :2010/04/13(火) 11:07:52 ID:Cwx/ymMX
地形読込、及び線路読込共に位置指定を出来るようにしました。
>>216 まだ川口さんが開発してた頃に私も参加しておりましたが、
その頃のイメージとして、いろんな人のプラグインをまとめて導入出来ず「めんどくさい」というものがありました。
今は、間口を広めるために敷居は低くなってるでしょうか。
現状を知らずに書いておりますので、変化があったのならスマンコ
あと、この板内で勢いTOPなんだから盛り上がってる方じゃネーノ?
このスレにいる歴が長けりゃこれでも十分盛り上がってる部類になるよな 何日もレスつかないこととかザラだったんだからw
220 :
19 :2010/04/13(火) 13:22:46 ID:Cwx/ymMX
昔は.NETのインストールも敷居の高さのひとつだったような。 今は一般的だし、それにプラグインセットも配布されてます。 ニコニコの総統閣下動画じゃないけど、少なくともA7なんか いまだにやってるような人は、よく分からない。
221 :
218 :2010/04/13(火) 13:53:52 ID:TT2EhWKn
FTのインストールをすれば流行りの(現在の作者公認の)プラグインまで導入完了、、、 とかって感じなら激熱なんだけど、そこんとこどーなの?
222 :
19 :2010/04/13(火) 14:16:16 ID:Cwx/ymMX
残念ながら本体とプラグインセットのインストールは別々だけど、 同じ場所で配布されているから面倒ではないと思う。
モガミさんから代理投稿 ---- そろそろ、プラグインのまとめパックも更新するべきなんですかねぇ・・・ -- モガミ (2010-04-13 19:50:50) ---- どうなんでしょう。需要あるんでしょうか。 やるならEX時のPlugin Setとの差分にするんじゃなく、「これ1ついれればOK」な 単体完全版にしたほうがいいのかな。 需要あるならちまちま作業します。 本体に同梱はする予定ありません。 本体が頻繁にバージョンアップする際にpluginsがくっついてくるのはサイズの 肥大になるし無駄が多いです。 あとは、実行ファイルなものは本体バージョン依存になるので、除外。 発車メロディもサイズの問題で別梱包かな。
サイズってか著作権侵害してるようなものの同梱はありえないしな。
発メロはまだまだ。 いつになるか分からんがrev.2が完成するまで待ってね。
plugin作者本人から置くなって言われたら置きませんが。 拡張子wavのくせに中身フォーマットmp3問題があるので 既存の公開済発メロについてはかまわなければパッチ後の ものを置こうかと思ってますが。 rev2はrev2で楽しみにしておくとして。
駅の乗車待ち人数って300人とかいても、上下両方向とも乗車率0だったして 待ってる人数の割りに実際の乗車率が低いと思う。
>>227 ええとバグ報告なのかな??
バグ報告でしたら。
特定バージョンで起こるのか、すべてのバージョンで起こるのか、
そのたもろもろ詳細に教えていただきたいのですが。
っていうかFreeTrainて、駅で待ってる人がいたら根こそぎ拉致って
しまわなかったっけ……
>>228 そういう感じではなかったような。なかなか乗ってくれない。
乗客が目的地を持っているわけでは無いとは思うが。
>>228 3.0.1.3だけど、バグというわけじゃなく駅の乗車待ち人数の割りに
乗車率が低いと感じたもので
FTは駅では総入れ替えだけど、列車に乗っている方は全部降りるけど
乗る方は乗車待ちの人数がたとえ列車の店員より低くても、全員乗るわけじゃないですね
目的地持ってないのは間違いないです。 山奥ノンストップだろうがかまわず乗ります。 ただ、Prptotype3ではなんか乗り方が少ないかもしれないですね。 今、大崎駅前に急遽マンション建てまくって様子見てますが。 81人の乗車待ちに対して乗客3人。 まったく乗らないわけではないらしい。 乗客数えるときに待ち客数を発着本数でlogとってたよぉーな気もするので、 ソース見直してみます。 A4では根こそぎ拉致っちゃうんだよねー、たしか。 それはおかしいということで、川口さんほかスレ判断で拉致らないよう数式入れて演算してて、 それが時間経過か1日の発着本数か利用してたかなぁぁぁ…… でー、おそらく1日の乗車人数が平均化するように演算してるんだと思いますが、 どうしますかこれ。 当初の意図とすれば、1日の発着本数が100本なら1/100に平均化されるのが意図通りという ことになりますが。 FreeTrain原型を壊してでもじゃんじゃん乗ってくれたほうがうれしいって意見が多かったら そう変更するかも。
>>231 変える前に仕様をよく確認してからにしましょ。
まずはどういう仕様になっているのかを調べた方がいいのでは? もしかすると何かしらのバグかもしれんし。
ソース読んだけど正直よくわからんw 駅の乗降客関係は、 core\world\rail\Station.cs の250行目あたりにあるんだけど。 /// <summary> /// Factor that we apply to averageLoaded/UnloadedPassengers every hour. /// </summary> const float AVERAGE_PASSENGER_RATIO = 0.9996f; /// <summary> /// Factor that we need to apply to obtain average passengers per day. /// obtained by 24*(1-RATIO) /// /// Justification of the above equation is that if you always carry 1 passenger /// for every hour, thie accumulated value should converge to C /// where C = C*RATIO + 1. Such C = \frac{1}{1-RATIO} /// </summary> const float AVERAGE_PASSENGER_PER_DAY_FACTOR = 24.0f*(1.0f-AVERAGE_PASSENGER_RATIO); この定数の定義、これがもうわからん。 なにが0.9996なのよ?ってところから。 次のAVERAGE_PASSENGER_PER_DAY_FACTORの式は意味は分からなくもないんだけど。
その直後にある public void unloadPassengers( Train tr ) { // TODO: do something with unloaded passengers int r = tr.unloadPassengers(); import.AddAmount(r); trains.AddAmount(1); Debug.WriteLine(string.Format("devQ on unload v={0} for {1} passengers.",import.LastWeek/24,r)); World.world.landValue.addQ( location, Math.Min((float)(import.LastWeek/24),r) ); accumulatedUnloadedPassengers += r; GlobalTrafficMonitor.TheInstance.NotifyPassengerTransport(this,r); } っていうのが降車客なんだけども、 Math.Min((float)(import.LastWeek/24),r) のimport.LastWeek/24がまたわからん。 24で割るってことは1日あたりを1時間平均にしてるっぽく見えるけど、import.LastWeekって 「前週の降車客数」だと思われるそれを(7*24)で割るのではなくただの24で割ってるのはなぜ? landValue.addQの中身も分かってないからまとはずれなこと言ってるかもしれんが。
LastWeekってのは、前週実績を日割り平均化した「1日あたり」の数値らしい。 377行目あたり。 ってことで/24でその1時間あたりということになるのだが。 ゴメン。これ降車客だから今問題の乗客ではなかったね。 まぁ駅の発展もなんかおかしいので、降車客の考え方も追求したいんだが。 281行目のコメントがあって282行目にあるとおり、駅がもつ乗りたい人=population 全員が乗るわけはないという仮定のもと、乗りたいのはそのうちの30%であるとして、 0.3fをかけてる。 あと既に乗って行った人は差し引くようになってる。 int avail = Math.Max(0, total - gonePassengers); export.AddAmount(tr.passengerCapacity-pass); ってのはなんかおかしい気がするな。 export.AddAmount(pass); じゃないんだろうか。 もっともこれで計算してるのは「駅の乗車人数」であって、列車の乗客じゃないから 列車の乗客には影響ないはずだし。 んー。 チラ裏がすぎるみたいなんで。あとはblogにて。
布団はいったらハッと気がついたので書きにきた 川口さんがスレに顔出して作ってた頃のログか、 本家フォーラムかwikiかで、 乗客計算方法についての議論があったりした?? もしぎろんべーすがあるなら読んでおかないとと思って。 じゃあまた布団に戻る ノシ
電車が来るペースが変わったから乗降が分割されたのかも とプログラミングだめな俺がつぶやく
川口さんとこのwiki壊れてない? 画像がリンク切れとかいうレベルのものではなくまったく見れないんだけど。 復活できるのかな…… どなたかデータ持ってます?
>>237 これダイヤ作成のイメージとしてはどんな感じ?
1.列車(1本または数本のグループ)ごとに1日分の全ダイヤを作成(車両運用固定)
2.全ての列車が同じダイヤを共有していて、採時駅(大崎駅)の発車時刻と、ポイント・信号の制御だけで列車を誘導(車両運用は変動)
という2パターンが考えられるけど。
今までの時間軸だと前者、この時間軸であれば後者が有効だと思う。
それ以外にも
・15秒単位の発車時刻設定を効果的に使う事が出来ているか(本当に必要なのか)
・1秒単位では列車間隔が広い、時間の進み方が遅いため退屈にならないか
この辺を改めて問いたい。
242 :
19 :2010/04/14(水) 06:58:59 ID:NdLVfidU
>>237 凄過ぎる。
設定にどのくらい時間が掛かったか知りたい。
>>241 おい、また以前のこと繰り返すのか?
荒れるだけだぞ?
それと最新版動いたのなら自分で確認できるだろうし、自分でプレイして確認しろって
前と同じ事言われるだけだぜ?
>>243 既に出来てるダイヤの使用感を聞くぐらいいいだろう。
リリースするたびに、こんなダイヤを組んで自分で試せっていうのか?
嫌ならやら安定版が出るまでやらなきゃいいだけだが、
テストプレイってのもプロジェクトの貢献方法の一つってこと忘れるな。
貢献する気がないなら、無視してROMってればいい。
>>244 何で退屈とか書くんだよ
お前さんの勝手な思い込みだろうが
感想っていっても、プロジェクトリーダーがうかつなこと書けなくね?w 一プレイヤーと書いたことの重みが違うような気がする。 まだ建物も建ててないし。列車を入れただけなので。 特段のことは。 驚いたのは「すぐ破産する」ってことかな。 客も乗ってないのにガンガン11両編成運転してるからそらそうなんだが。 1日に100本超だかんねー。運行経費めっちゃかかってるわ。 10日に1回ぐらい破産する。 そのせいで放置できない。放置して発展待とうとしても「破産しました OK」 でボタン押されるの待ってしまってる。 メッセージボックス出さずに勝手に資金足して勝手に続けるモードこっそり 入れるかなぁ。
経営モードは今成立してないから、とりあえずメッセージボックス出しているとこを潰して
メッセージ出さないようにだけしておけばいいのでは?
>>244 感想はいいが、
>>241 の1行目以外は蛇足だ。
あれではまた文句言ってるのかと思われてもしょうがない。
あと
>>244 の文章おかしいだろが。
>嫌ならやら安定版が出るまでやらなきゃいいだけだが、
>テストプレイってのもプロジェクトの貢献方法の一つってこと忘れるな。
>貢献する気がないなら、無視してROMってればいい。
おまえ自身がテストプレイしてないだろ。
していれば
>>241 の
>それ以外にも
>・15秒単位の発車時刻設定を効果的に使う事が出来ているか(本当に必要なのか)
>・1秒単位では列車間隔が広い、時間の進み方が遅いため退屈にならないか
>この辺を改めて問いたい。
こんなこと聞かなくてもわかるはず。
それで他の人にテストプレイするのも貢献だ、貢献しないならROMれとか言ってること
矛盾していることに気がついてないのか?
wikiのほうに質問があったので転載。 今後の課題ですね。 今現在の構造では、Trainクラスに「購入に要した金額」の情報がないと思う。 なので払い戻しができるわけもない。 まずかTrainクラスに「購入額」変数を追加し、 車両購入時にそこに購入額を代入し、 しかるのちに売却したとき50%なり30%なり適当な額が払戻されるよう実装 するということになるかと思われる。 ちなみに「売却」そのものは core\controllers\rail\TrainPlacementController.cs のなかのsellってところ。 コメントで「お金が戻ってくるようにしないとなー」てなことが英語で書かれてるw ---- ---- 「車両の配置」メニューで車両を売却したら、購入費用の何%かは払い戻しが あるのでしょうか…? -- OPB (2010-04-14 21:56:08) ごめんなさい。現状、売却益は実装されていません。お金はまったく戻ってきません。 単に列車が消えてなくなるというだけです。 将来的には払い戻しがあるよう実装したいですが、かなり先のことになるかと思います。 -- りおりお (2010-04-14 22:05:07)
経営要素はかなり弄らないと駄目かもねー しかも経営ゲームとして成立させるためにはバランス取りが結構難しいかと。
>>243 俺は何もやってないあなたに質問してるわけではないのだが。
>>246 >感想っていっても、プロジェクトリーダーがうかつなこと書けなくね?w
>一プレイヤーと書いたことの重みが違うような気がする。
そういう事であれば仕方が無いです。
>>137 のマップ、ただ3分毎に列車を走らせてるだけで車庫を利用したダイヤが完成してないが
それが完成したら一応動画うpしてみます。
FreeTrain EX A-versionのアルファ版リリースです。 バージョンはα3.0.1.4です。 ◎既知の不具合 ・時間進行軸の値がセーブデータに保存されない ○3.0.1.3からの変更点 ・破産時のメッセージボックス有無・追加資金額をオプションで選択可とした ・時間進行軸の値をオプションとしてはセーブするようにした 変更点にからむあたりは動作テストはしてますが、見落としがあるかもしれないので なにかおかしな点があったらお問い合わせください。 今後の予定ですが、フォーラムに 車両配置メニューの情報充実 という要望があがってますので、これをβ2とPrototype3に取り入れたいと思います。 同じくフォーラムに要望のあった 列車プロパティ については実現可能性が低いと思います。 そのあたりの事情についてはフォーラムのチケット参照。 ご意見があったらこちらでもwikiでもフォーラムでもお願いします。 「いやいや、簡単にできるよ」みたいなの歓迎w
あーー!大事なこと忘れてた。 今回から、セーブデータの拡張子が.ftgd3になってます。 末尾に3がつきます。 中身が変わってるわけじゃないので、3.0.1.3までのPrototype3でセーブした データは末尾に3を付け足すだけで読めます。 お手数かけますが、2以前系統と3系統とセーブデータ両方作ってたら 拡張子変えないとどっちがどっちかわからんなってきたので。
駅が周辺の自動発展に与える影響を調べてたんだけど。 core\world\development\DevelopmentAlgorithm.cs の187行目あたり。update()内がおかしい気がする。 strength *= F_StrDiffuse; strength = target.ScoreExported; このScoreExportedっていうのは駅から出発していった人数の前週平均値なので。 これだと出発人数の多い、既に栄えてる駅でさらに発展させようとなって。 出発人数が0のまったく栄えてない駅では、降車客がいーーっぱいいてもまったく 発展しないことになりはしないか。 ここは strength = target.ScoreImported; として降車客で判断すべきではないのか。 ということで次のリリースではImportedに変えます。 さらに。上の行で*= F_StrDiffuseで値をかけてるのが、次の行で=で代入では まったくなにもしていないことになりはしないか。ここ行が逆じゃない? ってことで strength = target.ScoreImported; strength *= F_StrDiffuse; にしてみます。
なんかヤメドキがつかめなくて、直してビルドしてリリースしちゃった!
だだだーーっとやったので、zip作成ミスなどなんか細かなケアレスミスがありそうで
こわい!!
β2とPrototype3と両方出して、直したところは
>>254 これで五反田と品川が栄えるはず!
あとPrototype3のほうは集客範囲を10から25に広げました。
列車の進行速度が相対的に速くなったことで駅間を広くとるであろうことを
想定しました。
しばらく放置してから眺めたら、いきなり田舎に野球場がぼーーんってできてたので なんじゃーーって調べたら。 39番さんから依頼されて作った野球場の価格が1だったために建っちゃったものだった。 価格5000に修正したものを第2うpロダにあげましたのでさしかえお願いします。 ほかにも価格がおかしいpluginあるかも。 あと、hermsさんの旧家シリーズに含まれる道祖神とか水車小屋が、初期にぽこぽこ できまくって水車小屋が川ぞいじゃなしにあるのは見た目おかしいので、computercannotbuild 付け加えました。 人口のimplもうちょっと種類増やしてもいいかもなぁー
以前、サッカースタジアムplugin追加したいなーってかたがおられた気がしますが。
せっかくなので、ノーマルな建物pluginではなく、サッカースタジアムの機能がついた
従来のサッカースタジアムのグラフィック違いにしてみませんか。
テストしてみたら、plugin.xmlをこう書いたらグラフィック違いを <> で選べました。
<?xml version="1.0" encoding="Shift_JIS" ?>
<plug-in>
<title>サッカースタジアムtest</title>
<author>riorio</author>
<homepage>
http://www.kohsuke.org/freetrain/</homepage >
<contribution type="anonymous" id="{riorio-test-43c8-941F-896EAF9396AF}">
<class name="freetrain.world.soccerstadium.StructureContributionImpl"
codebase="../org.kohsuke.freetrain.soccerStadium/bin/FreeTrain.SoccerStadium.dll" />
<name>サッカースタジアム</name>
<price>2000000</price><!--680*4-->
<size>10,6</size>
<height>2</height>
<sprite origin="0,0" offset="78">
<picture src="stadium.bmp">
<override when="night" src="stadium_n.bmp"/>
</picture>
</sprite>
<population>
<!-- スタジアムの集客性は特別なので特別な人口特性を実装 -->
<class name="freetrain.world.soccerstadium.PopulationImpl"
codebase="../org.kohsuke.freetrain.soccerStadium/bin/FreeTrain.SoccerStadium.dll"/>
</population>
</contribution>
</plug-in>
どうせなら今ある野球場も現状ただの建物だけど、サッカースタジアム方式に。 ついでに鉄道ゲームなんだから、試合開催日は人気に応じて乗降客が増えたり。 まあこれは帰りはともかく行きは難しそうだし、実際の鉄道も甲子園とか所沢は 臨時電車が出る(所沢は普段はローカル線な事もあるが)けど、水道橋みたいに 停車時間余分に取るだけだったり、だいたいは何にもしてないから微妙と言えば そうなのだが。
野球場はまだ使用してる日多い方だと思うよ
>>258 あーw
考えてたこと先回りされちゃったww
まぁ、そのためには今あるサッカースタジアムがなにやってるのか正確に把握して
それから真似ないとね。
今のサッカースタジアムも駅への影響を時間で激しくだすようにしてるようなコードに
見えるんだけど。
駅、真横にスタジアム、それだけにしてみて(Beta2で)そのコードに書かれてる時間に
駅発車させてみても乗車人数に変化が見られない。
なんか川口さんが意図したように動いてない感じがしてる。
気になったんだけど。 core\world\accountingの下にある accountingしてるコードって働いてる??? ここで計算した損益が表に出てきてるところがないような気がするんだけど。
自己解決 表示 〜 売上レポート で売上レポートだすと、初期状態では鉄道・子会社・バスしか表示がないけど、 ここで表で右クリックすると「表示項目の編集」っていう拡張メニューが登場する ので、選ぶと中に「サッカーチーム」っていうのが出てくるのね! で、表示するほうに移すと、サッカーチームの運営経費がレポートされると!! なるなる〜〜
>>257 自分です。
ありがとうございます。
サッカーは基本土日の昼か夜なんでどれかにどどっとくるといいかも(個人的には夜のライト表示あるから土曜の夜あたり)
というよりサッカー場のグラフィックを春〜秋の土日だけ夜も点灯にしたりしたいのですが
画像オーバーライドって曜日も指定できますか?
お客さんの分散は後回しでいいんで画像オーバーライドの質問に答えていただけると嬉しいです。
当の自分はまだグラフィックに一苦労・・・というより割く時間が・・・
曜日オーバーライドはできないですねぇ。 四季×昼夜の8通りだけです。 なので、冬夜は真っ暗、その他3季節は曜日問わずあかあか、ということまでが 可能な範囲かと思います。 私もスタジアムの中身いじっててJリーグの熱心なファンの知人に確認したのですが。 シーズン開始は3月なんですってね。 終了が12月と。 3月は春だからいいとして、12月が冬なんでどうしますかねぇ。 季節気にせず、年中夜明るくてもいいんじゃないかと。
そうですね 改めて考えると一種のイルミネーションとしてそのままでもよさそうですね。 わざわざありがとうございます。
動かないものひろげるの非常に心苦しいのだけど、煮詰まってどこか簡単な罠にはまってる
だけだと思うんだけど解決できなくて困ってるので広げてみる。
http://u4.getuploader.com/freetrain/download/55/BETAsrc.soccerStadium.zip パスはBETA
pluginsの下にあるサッカースタジアムpluginの実行部分ソース。
試合するところのブラッシュアップは完成してます。
今詰まってるのは、試合のある日・ある時間帯から3時間だけ、観客動員の1/2が
駅を利用しようとするという部分です。
PopulationImpl.csが駅の利用客にカウントされる部分のはずで、ここの
PopulationImplクラスの_populsに試合のある3時間だけ観客数を代入して
OneShotTimerしかけて3時間後に1に戻そうとしています。
代入とタイマーはGame.csのonGameDate()メソッドの中に書いてあります。
ビルドしようとすると、Game.csの前のほうの
public readonly PopulationImpl ppl;
で、「pplには常にnullが割り当てられました」となってしまい、それは警告だけなので
ビルドは通るのですが、もちろんそれでは実行したとき
onGameDate()メソッド内で代入しようとすると当然null pointerに代入しようと
することになってエラーになります。
なんでnullが常に割り当てられちゃうのだろう???と分からなくて困ってます。
pplがからむ行をコメントアウトしてビルドしたら、試合はできると思います。
おたすけください。
readonlyはconstructor内でしか初期化できないです
正しくはインスタンス生成時までにしか変更できない、です
あっと。 readonlyにする必然性はなくて、もともとつけてなかったんだけどつけてなくてうまくいかな かったかたつけたのがそのままになってたね。 readonlyにせず public PopulationImpl ppl; にしてもまったく同じ警告が出て使えません。 あれ? ppt = new PopulationImpl();っているんだっけ?? コンストラクタで思い出したけど。 このGame.csもなんだけど、 StadiumStructure.cs なんかでも全然new()せずに使い回ってて動いてるけど こりゃなんぞ?? ゴメン。本当に分かってなしにイジってるから。申し訳ない。
PopulationImpl は参照型だから初期化しなければ null になる StadiumStructure stadium も参照型だが Game のコンストラクタ内で 代入による初期化が行われているため null 参照にならない っていうか C# の基本的な内容じゃないか
ええと待ってよ。 そのGameはコンストラクタ内で……ゆえnull参照にならないというあたりが分かってない。 FreeTrainいじるようになって、既にあるものをちょこちょこっといじってみるってことから 始めて、自分でゼロからイチからコード書いたことないもので、なんかねー、クラスと インスタンスとコンストラクタあたりがあやふやっていうか。 既にそのへんに書かれてるそれっぽいものこぴぺしたらできるんじゃん的なーー てへ いや、それでよ、重要なのはそんなことじゃなくて。 PopulationImplって、実装を形作ってるだけで実行されなくね? 今のままだと。 ここ、私がこうしたわけじゃなくて最初っからこうなってたの。ほぼこのまま。 ちゃんと実行されれば、駅のstation listnerに捕捉されてpopulationが駅の待ち客に 加わるはずなんだけど、私がいじる前、川口さんが書いたであろうコードのそのとき から、動かして様子見てると駅の待ち客に反映されてなかったの。 これじゃあ意味が無いから、ちゃんと実行されて駅のstation listnerに捕捉される ようにするにはどうしたらいいんだろう??
PopulationImpl は書かれただけで使われてなかったクラスなんだから 動作に反映されてなくて当然だろう・・・ たぶん作者の意図としては StadiumStructure の StructureContributionImpl 経由で Population として PopulationImpl を扱うつもりだったんじゃないかな ざっと見ただけだし全体の構成も全然知らないからそれでいいのかどうかわかんないけど
いや、ありがとうございます。 「書かれただけで使われてなかった」 ということが事実として確定できたのが収穫です。 Station listenerに登録するのと、removeしたときに解除するのとを書く必要が あるということですね。 なんとかやってみましょう。 うーーん、でもそうなるとPopulationImplにせっかく書いたreturnはどう使えば いいのかなぁ。いまいちImplの使い方が分かってません。 そこ、すべてが分かってないとか言うな。自覚してるんだからw しかし川口さんほかもここまで凝りまくったサッカースタジアムpluginを作って おきながら、あとほんのちょっとの駅に結びつけるところだけやり残してた、 そのままで今まで来てたというのが若干不思議ではあります。 あと、誰も駅利用客が増えないことを疑問持たなかったんかとも。
話ちょっち変わるんですが。 従来FreeTrainでは、駅で実際に列車に乗った乗客数の影響が、その後の駅に 1時間あたり0.8倍されて斬減しながら残っていくというアルゴリズムになっています。 乗りたい客が500人いて、今到着した列車に400人乗り込んだら、その次の列車に 乗る人は100人しかいませんよと。 それが1時間後になったら(乗り込んだ影響が0.8倍の320人に減って)列車に実際に 乗りたい人は180人まで回復しますよ、となってます。2時間後だと244人まで回復。 ただこれ、今までの時間軸だといいんですけど、ALPHA3系統では回復がゆっくり すぎると思います。 1時間で0.5倍・半減まで効果の減る速度を速めたいと思います。 ほんとは15分ごとに0.8倍とかゆるやかに影響した方がいいんでしょうけど、 「1時間後に」(0.8倍)ってなってるリピートタイマーの仕掛けられるのが駅建設時 なんで、もし間隔をいじろうとするとまた駅全部建て直しになっちゃうんです。 それでもゆるやかで自然な増減したほうがいい、という意見があればそうします。 駅建て直しめんどくさーーいって意見が多ければ1時間単位維持でパラメータいじります。
ソースに流されてみた限りではContribution生成時、pupulationもメンバとして生成されているみたい なのでgame生成時にそいつを渡すなり参照するなりすればいいと思う
>>274 0.8がけしてるってのはStation.csのgonePassengersのこと?
だとすると、400人乗ったのが一時間後に320人になるのはその通りですが、
その減った80人が待ち人数に差し戻されるような風にはなってないかと。
ざっとみた感じですが。
待ち人数はpopulationですが、どうやら毎回周囲の建物から集計しなおしてるようなので、
そもそも積み残しの乗客を次の時間に引き継ぐような処理がなさそう。
gonePassengersの使われ方を見ると、積み込んで減ったはずの乗客が
別の列車の乗客に加算されないようにしているっぽいですね。
それがないと、ある時間帯において、周囲の建物の人口から
待ち乗客数が400人と計算されると、その時間帯に何本列車が発車しても
最大400人までは積み込めてしまうことになってしまうから。
一時間ごとに0.8がけしてるのは・・・明確な理由は不明だけど、
推測するなら、建物人口からの乗客数は、一時間前と後では、
80%は同じ人とみなす…ということかな。
上で、積み残しを引き継がないと書いたけど、
80%が積み残しで20%が新規増加分というイメージかな。
で、積み残し分である80%に対しては
一時間前にgonePassengersで既に運んだ人数を減らす
・・・そんなコードのように思えます。
>>276 を書いてて思った問題点。
その1
毎回populationを集計しなおしているので、列車数と周囲の建物が増えるとすごく処理が重くなりそう。
一時間毎に一回集計すれば十分。
その2
集計したpopulationが一時間前に比べて大幅に減った場合、
gonePassengersを0.8がけした値が上回ってしまう場合があり、
直前の一時間に大量輸送していると、次の一時間は
乗せるべき乗客が居ないことに。
仮に新規増加分は20%と考えるならせめて、次のようにすべき
total = Math.max(0,population*0.8f-gonePassengers)+population*0.2f
※上の式、populationは毎回集計しない前提で
あー、そうそう。 もう一点、問題というか、気になったところ。 駅のプロパティに表示される駅の待ち乗客数は gonePassengersで差し引く前のpopulationを表示してるので、 どれだけ列車が客を持って行っても減らないんじゃないかな?
wikiから転載
----
>>277 >毎回populationを集計しなおしているので、列車数と周囲の建物が増えるとすごく処理が重くなりそう。
今の私の状況がまさにそうww
β2だけど、最高速でプレイしてもゲーム時間で1日経過するのにリアルで17分かかる。
マップ上に20編成あった列車を全て撤去してみたけど、やっぱり17分かかる。
もう死にそうww -- OPB (2010-04-16 13:44:42)
----
>集計したpopulationが一時間前に比べて大幅に減った場合、
>gonePassengersを0.8がけした値が上回ってしまう場合があり、
>直前の一時間に大量輸送していると、次の一時間は
>乗せるべき乗客が居ないことに。
20時台に発車する列車がいきなり乗車率0%になってて、 おかしいなぁと思っていたん
だけど、そういうことだったんですね。 -- OPB (2010-04-16 13:45:39)
----
>>278 >駅のプロパティに表示される駅の待ち乗客数は
>どれだけ列車が客を持って行っても減らないんじゃないかな?
減ってないですね。 昨晩、β2で3日分、駅のプロパティの待ち乗客数を集計してみたけど、
数値が変動するのは毎時00分の時だけ。 ゲーム内の土日などはCPUは建物を建てないので、
1人の誤差も無く金曜日の同時刻の人数が表示されます。 -- OPB (2010-04-16 13:50:52)
>>276 > その減った80人が待ち人数に差し戻されるような風にはなってないかと
差し戻されるって考えると語弊があるんだけど。
待ち人数populationからgonePassengersを引いた人数で次の列車に乗ろうとする
人を計算してるので、gonePassengersが80減ったら次の列車に乗ろうとする人数
は80増えると理解したんだけどなぁ。
> 次の時間に引き継ぐような処理がなさそう
それはないです。私は必要だとは思いません。
「乗りたい電車が来なかったから別の手段に変えて乗らないことにした」ぐらいに
脳内補完しときゃいいんじゃないかと。
>それがないと、
ご明察
>80%が積み残しで20%が新規増加分というイメージかな。
おーー。なるほど。これは読むまであまり真面目に考えてなかったので、まさになるほど
というかんじです。
β2までの時間軸ではこの0.8というのは結構いいバランスな数値だと思います。
ただα3の時間軸では大きすぎると思います。
なのでα3では0.5にするかどうするか〜〜というあたりも考えてみてください。
>>277 >一時間毎に一回集計すれば十分。
1時間1回にできるかどうか研究してみます。
>集計したpopulationが一時間前に比べて大幅に減った場合、
>直前の一時間に大量輸送していると、次の一時間は
>乗せるべき乗客が居ないことに。
あーー。
ここは、「そういうこともあるさ」ぐらいに考えてて、おかしいと感じてなかったので
目からウロコというか。
どっちの算出方法がいいのか他の方の意見も聞いてみたいかな。
>仮に新規増加分は20%と考えるならせめて、次のようにすべき
>total = Math.max(0,population*0.8f-gonePassengers)+population*0.2f
なるほど、そうですね。
>>278 >駅のプロパティに表示される駅の待ち乗客数は
>gonePassengersで差し引く前のpopulationを表示してるので、
>どれだけ列車が客を持って行っても減らないんじゃないかな?
減りません。というかこれはそういう仕様だと考えています。
ですが、この仕様が良い仕様かどうかは議論すべきかと思います。
また川口さんは「乗りたい客のうち、来た列車に乗り込むのは30%だけ、
残りは乗らない。行きたい方向と違う列車だったからとかの理由脳内補完で」
という考えでプロパティ表示人数の30%しか乗りません。30%後の変数名としては
availですね。
駅プロパティに表示する数値として、30%する前の現状でいいのか、いや30%した後
を表示してくれた方が親切だよってなるか、これも議論がありそうに思います。
乗車待ち人数は実際に乗る人数を表示してほしいな 乗車街を参考にして列車を走らせても、乗車率が0だったりするし というか、乗らないならば乗車待ちじゃない訳で >「乗りたい客のうち、来た列車に乗り込むのは30%だけ、 >残りは乗らない。行きたい方向と違う列車だったからとかの理由脳内補完で」 >という考え 乗らないのは逆方向ってのはわかるんですが、末端駅だと逆方向がないから 脳内補完ができませんよw とはいえ、中間駅なのか末端駅なのかを判断するのは難しそうですが そういえば、駅の影響範囲(乗車にくる範囲)を表示する事ってきないんですかね 数値で示されてもどれぐらいかいまいちわかりませんので
そんなの無用にゲームっぽくなるだけで嫌だなあ。 見えない方が風流
サッカースタジアムのソース、動くようにしてみたのですが
http://u4.getuploader.com/freetrain/download/56/soccerStadium2021src.zip パス src
まだ駅への影響ができてません。
なんかstation listnerに二重登録されてしまってるみたいで、
デバッグモードで動かして駅プロパティ開くと、観客数/2を返すと同時に1も返してて、
駅で実際に使われてるのは1のほうっていう感じになってるみたい。
わっかんねーー 助けて
あと、このサッカースタジアムを組み込んだ本体β2.0.2.1を出しました。
【2.0.2.0 -> 2.0.2.1 変更箇所】
・駅が周辺の発展に与える影響に「前週の乗車客数」を少し加味
・「サッカースタジアム」に登場するチームを更新。サッカースタジアム運営に経営要素を追加
・「列車の配置」ダイアログに両数・速度・定員の表示を追加
せっかくカウントしてて使わないのもアレなので、乗車客数も0.1倍だけ使ってみることに
しました。
サッカースタッジアムは、建ててほっとくと赤字の源になります。
頑張ってチーム強化と人気アップを図るとドル箱に化けます。
そういうふうにしてみました。
なお、サッカースタジアムも含めて全体のソースはコミット済です。
全体が欲しい方もどうぞ。
サッカー場がなんとかなってからにしよーかと思ったのですが、 α3で遊んでる人も多いのかなーと思ってα3にも移植しました。 3.0.1.6出てます。 ○3.0.1.5からの変更点 ・駅が周辺の発展に与える影響に「前週の乗車客数」を少し加味 ・駅が周辺の発展に与える範囲を半径10ボクセルから半径25ボクセルに拡大 ・サッカースタジアムに登場するチームを更新。サッカースタジアム運営に経営要素を追加 ・「列車の配置」ダイアログに両数・速度・定員の表示を追加 3.0.1.5までにサッカー場を建ててた人は、エラー原因になるので一度撤去して 建て直してください。 なお、今後サッカー場のプログラミングに駅への影響など課題が解決された 新バージョンが出ると、再びサッカー場を建て直す必要が出る場合があります。
あ…… すみません、バグみつけました。結構深刻っぽいです。 β2.0.2.1とα3.0.1.6で、それ以前にあったサッカー場を撤去するか、撤去しなくても そのままゲーム続けた場合、次のサッカー試合予定日にエラーになってゲームが 止まるみたいです。 どうにもできないのかなぁ、これ。 どうしたら解消できるんだろう、えっえーー? OneShotTimerで架空試合してるのが問題だと思うので、OneShotTimerを取り消せば いいと思われるのだが、取り消しのハンドラがどこにあるーーー 分からんぞヲイ 分かった方教えてください。
clock.unregister
>>288 ありがと
でもなんかダメみたい
スタジアム1つ建てると、試合予定4回分、一ヶ月ごとのチームパラメータ調整、
年一回の成績リセットなど6つぐらいWorld.world.clock.registerOneShotを仕掛ける
んだけども。
撤去のときは当然これを取り消さないとまずい。
で、
World.world.clock.unregister( new ClockHandler(onNewYear) );
とかってやってって、試合は4試合分予約が入ってるから
World.world.clock.unregister( new ClockHandler(onGameDate) );
を4回やったんだけど、消えないみたいで撤去後も勝手に試合があってそのあと
エラーが起きて止まった……
とほーー
ていうか、あのさぁ、これって昔っからサッカースタジアム撤去したらエラーになって
なかったのぉ?なってないとおかしいと思うんだけど。
うーーん。「撤去できないアイテムです」って言い張って実装してもいいんだけど ^^;;
すいません、ちまちまバージョンアップしてます。 サッカースタジアム問題は未解決です。 ご助力お待ちしてます。 【2.0.2.1 -> 2.0.2.2 変更箇所】 ・サッカースタジアム調整 ・反転折返・反転回送で1両編成も反転できるようになった (ソースコミット済) α3.0.1.7です。 ○3.0.1.6からの変更点 ・サッカースタジアム微調整 ・反転折返・反転回送を1両編成に対応 wikiに、OPBさんから早速、サッカー試合開催日のツッコミが入ってた。 そこ今直してたんだよぉぉぉぉw
サッカー場は昔のバージョン(いくつだか忘れたが、セーブデータ互換性うんぬんの頃のやつ) だとサッカー場撤去でもブルドーザーで潰しても死なないね。
>>292 私が持ってるのは20050903版EXだけなんですが。
それだと撤去できます。
エラーにはなりません。
おそらくタイマーは解除できず、裏で週2回の試合がずっと続いてると思われるのですが。
当時はそれで問題なかった模様です。
今回私がいじくって経費がかかるようにしたので、試合もやめるようにしないといけない
んですが……
うーーーーーん。
何時のだか不明だが前のやつでもtimer解除はされてないね null比較は何のためにやっているんだろうか とりあえずremoveregister内のonGameDateのunregisterを一回に、 removeの際全てのfutureGameに対しremoveregisterを呼ぶ、 ついでにgameフィールド消去して呼ばれない事を簡易確認 しばらく手直し中…ver2にも3にも対応するためにtotal〜を消したい
>>289 > World.world.clock.unregister( new ClockHandler(onGameDate) );
別のハンドラで取り消し要求しても意味ねぇよタコ
>>295 ところがどっこいC#の仕様だとそれがOKっぽいんだな。
以前、実際テストコード書いて確かめた。
Delegate.Equalsより 比較する 2 つのメソッドがどちらもインスタンス メソッドであり、同じオブジェクトの同じメソッドである場合、その 2 つのメソッドは等しいと見なされ、比較対象も等しいと見なされます。
あ、ごめん、
>>296 で書いたのは
delegateを+=とか-=演算子で追加/削除する場合についての仕様だった。
unregisterは中でEqualsで比較してるから、どうなるか判らないです。
希望的観測では、Equalsも適切に実装されてるかもしれないけど。
入れ違いになりましたね。
>>297 はいまいちわかりにくいけど、
OKだと言ってるっぽいですね。
ごほごほ、いつもすまないねぇ……
今、マップに駅名を表示してるフォントをオプションで自由に選べるように
してたんだけど。
オプションの変数にFontクラスで選んだフォントを格納して保存しようとするじゃない?
今オプションの保存もC#のシリアライズ使ってるんで、そうすると
「Fontクラスが混ざってるせいでシリアライズできねーよバカ!」
って怒られて差し戻されて、FreeTrain EX Avは終了するときにもオプション再度
書いて残そうとするのでまた怒られて差し戻されて、タスクマネージャから殺さないと
終了できなくなってしまったwww
今のシリアライズを使ったままのオプション保存方法を使いつつ、フォントを記録する
手段はないのだろうか……
それかシリアライズ捨てて、テキスト形式のiniファイルにでも記録するメソッドを自力
でごりごり書く??
疑問にお答え:
>>294 >null比較は何のためにやっているんだろうか
あー、それはtimer解除されてなくて飛んできたときに、stadiumがもう無くなってたら
解除忘れとみなして返すつもりで入れたんだけど、stadiumがnullにならないから無意味
でした。orz
>ver2にも3にも対応するためにtotal〜を消したい
うーー、ごめんよ。
自分がメンテナンス出来る間は、手で毎回書き換えて移植するつもりでtotal分〜秒
元のままそのまま生かしてる。
>>297 そのあたりも理解して書いたわけじゃなく、ほかの箇所のtimerをunregisterしてる
ところが全部newで読んで動いてるので真似ただけ。
>>300 フォントをシリアライズするってことは、何MBもあるフォントをわざわざバイナリコピーして保存するってことですよ?
さらに、デシリアライズした時にはシステムフォントにインストールするつもりなんでしょうか?
普通どんなソフトでも覚えるのはフォント名だけ。
仮にそのフォントが見つからなければデフォルトのを使うってのが常道かと。
>296-299 もうちょっとコード見てみた。 Game::removeregisterを呼んでるのはStaduimStructure.cs145行目で、 game.removeregister(); なんだけど、このgameが指してるのが最後にスケジュールされたGameなんだな。(StadiumStructure::scheduleNewGame) なので、結局 World.world.clock.unregister( new ClockHandler(onGameDate) ); は次のGameのハンドラではないので、削除はされないことになる。 なので、gameに対して呼ぶのでなく、futureGamesの各要素に対してremoveregisterする必要がある。 。。。と推測される。 # いや、手元にC#環境(つーかWindows環境)無いから断定できないけど。
ちょっと修正 >は次のGameのハンドラではないので、削除はされないことになる。 は次のGameのハンドラではないので、削除はされないまま次Gameが発生することになる。
>>301 いやー
C#(.NET)ってなんでもお手軽にできてるから、
Fontクラスをシリアライズに食わせたら向こうでうまくフォント名だけ切り出して
保存してくれるかと思ったんだが、そこまでお気軽ではなかったのね。
ということは、Fontクラスからfont.name.toStringかなんかその手のメソッドで
名前取り出して、それを文字列変数に代入して、文字列変数をシリアライズに
食わせて保存し。
呼び出しはまた文字列変数からFontの実体を呼び出して
って感じになるんですかねー?
変数でFontクラスいじるのも初めてなんですべてが手探りwww
>>294 あっ、そうだ。
ver2むけに作ってくれたら、3向け移植はやりますよ。
ぐぐってたらこんなんがかかってきたんだけど……
http://bbs.wankuma.com/index.cgi?mode=al2&namber=11142&KLOG=25 >思い出そうと、今やってみたんですが、普通にできました。
>あれれ?
>>あれ、ちょっとまって、本当だ普通に出来るw
>>エラーでないw
XMLシリアライズはできないけれども
Soap formatterでのシリアライズはできる
ということのよーーです
理解してないけどw
が、今のFreeTrain EX Avのオプション保存はXMLシリアライズを使っているので
結局それとは別にSoap formatterでフォント専門の設定ファイルを読み書きする
必要はありそーーです。
>>306 もらいました。
294時点ということは、もうこれでエラーは出なくなってると考えていいんでしょうか?
かまわなければこのまんまビルドしてテストのうえ、自分で大丈夫そうならリリースに
回してしまいますが。
どこかひっかかってる点がありましたら、私の方でもチェック入れますけれど。
>>Umezawaさん
地形ローダーなのですが
最新版でセーブ・ロードして開始XY座標に16,16って入れたら、ぼっこぼこの
おかしな地形ができてしまいました。
http://u4.getuploader.com/freetrain/download/59/chikeiokashii.PNG 行き過ぎて折返ノイズが出たみたいなですね。
烈火さんから「3でコロネ島やりたい(はぁと」って言われたんでコンバートしてお渡し
しようと思ってたけどなんかうまくいかない(苦笑)
ノートPCかどこかにあると思われる、画像地形ローダーに読ませた元画像を探した
ほうが早いかもな状況デス
>>307 こちらの環境では290のものでもエラーが確認できませんでした
アサートは確認しましたが
なのでできればエラーが出ないかどうかを確認していただければと思います
また独自のpopulationを内部実装しているのでpluginのpopulation記述は無い方がいいのでないかと思います
建物毎の動的なpopulationの実装をcoreのみで出来ればよかったのですが難しいようでした
GlobalOptions.csのなかのGlobalOptionsクラスのload()って、
いつ呼ばれることが確定するんだろう。
Core.csのなかのCoreクラスのなかで、
public static readonly GlobalOptions options = new GlobalOptions().load()
ってことでoptionsにnewされてるところは分かるんだけど。
なんていうんだろ。
main(){}ループの中に書かれてないのに実行(?)されるというのがよくわかんない。
C#のクラスとインスタンスの基本的なところだろうと思うんだけど。
やっぱし分かんない。
今、フォント情報を持つFontOptionsクラスを作ってあって、GlobalOptionsにある
フォント指定文字列・intカラーコードからFontクラス・Colorクラスを作らないと
いけないんだけど。
どこにどう変換をかませばうまくいくのかが分からない。
分からないというか、分からないなりにまねっこで記述してみたら、半分ぐらいは
思ったとおりに動くんだけど残り半分がうまくいかないみたいなかんじでどーも。
「どっからでも値に代入できるグローバル変数にしたい!」という衝動にかられて
ますw
んー、こんな不完全なものでもソース公開したら誰か直してくれるかね。
β版といってもあんまし途中なもの流すのもどーかと思わなくも……
>>309 290時点では、一度建てて壊してから半年ぐらいブン回すとエラーになってました。
306では同じ操作してもまったくエラーにならないので大丈夫そうです。
アサート出てました?おいといていいのかな……
>>307 地殻変動でも起こったようなマップですねw
これって空マップ作成から行なったものですよね?
どんなサイズで(どんな値を入力して)生成したか教えて下さい。
他のスレで質問するときC#部分はある程度わかるとかいってたのはこのレベルだったのか 全然わかってないじゃないか
>>310 クラスのスタティックフィールドは、クラスがはじめて参照された時に初期化される
(上記の場合 new GlobalOptions().load() が呼ばれる)はず。
ってか、ブレークポイント設定するなり、デバッグプリント仕込むなりすればわかるじゃん?
いじるにしてもあっちもこっちもって一度に手広く行き過ぎない方がいいよ わけわかんなくなりやすくなるから 経験者談
とりあえずホームだけですが、駅の入出力もできるようにしました。
β2.0.2..3出しました。
【2.0.2.2 -> 2.0.2.3 変更箇所】
・列車名の表示を可能にした
・サッカースタジアムのエラー修正(
>>306 採用)
【既知の問題点】
・サッカースタジアムが近隣駅の乗車客に影響できていない
・列車名を表示すると周囲に文字の消え残りゴミが出る
ま、β版なので、問題点あってもリリースしていいかなと。
サッカースタジアムのpopulationとstation listner問題は引き続きご助力お願いします。
列車名表示のゴミは、列車の周囲数ボクセルを再描画しないとどうしようもありません。
しかし周囲数ボクセルを再描画するというメソッドが今存在しないような気がします。
どうしよう…… まぁ表示の有無を選択可能にしてあるから、嫌なら表示消してねって
いうのでもいいのかなぁ。
>>312 ごめんなさい
>>314 だんだん分かってきました
ありがとうございます
>>311 空マップ作成は400x600x16で
位置ずらしが+の16,16だったかと思います
>>318 了解しました。
もしチョココロネと完全同一のマップ取得が目的でしたら、
空マップの作成時に 400x568x16 と入力して、
位置ずらしを0,0にすればOKです。
>>307 >>318 空マップ400x600x16で(16,16)ずらしてみたんですが、
再現できませんでした。
>>321 あ、あれ(汗
すみません、どうやったらこうなったのか忘れました。
ひょっとして、元サイズと同じサイズの空マップに対して位置ずらししちゃったのかな……
P.S.
川口さんのwikiが復活してたので、内容をちまちまとAvのwikiに移植する作業を始めました。
どなたかお暇な方、手伝ってくださるとありがたいです。
Prototype(ALPHA)3の最新ソースを、ブランチを分けてSourceForgeにコミット しました。 trunk内がBeta2 ALPHA3内がPrototype3 となります。 なぜかルートとALPHA3内とにRelease1.0がありますが、気にしないでください。 このALPHA3内のソースでちゃんとビルドできるか、どなたか確認お願いします。 ひょっとしたら置き換えなどがうまくいってないかもしれないので。
質問です。 「列車の追跡」機能で追跡中の列車情報を、外部Pluginから参照する 方法は無いでしょうか? freetrain.views.map.TrainTrackingWindow クラスで宣言されている private の train を参照できればベストなのですが。 前面展望のようなものを作ろうとしています。 もちろん、PS版A4にも劣るようなものですがw
現状ないと思われ。 でも、もしそういうのができるとなったら、 freetrain.views.map.TrainTrackingWindow クラスを改造して trainを外部参照できるようにしますけど。 あれ作ったのついこないだですし。
>>326 ホントですか!
ではお言葉に甘えて、public readonly かなにかにするか、
getメソッドでも追加していただけるとウレシイです。
ふと思ったんだけど、それから取得するんじゃなくて、 TrainTrackingWindowがやってるのとまったく同じようにしてダイアログ 持ってツールチップ持ってきて、自分でTrain検索したらどうでしょう? そっちのほうが簡単そうなんですけど。
>>328 それも思ったんですが、クォータービューの追跡画面と、
前面展望画面が連動しているとカッコイイし(ニコニコでよくある)、
根本的な問題として、私が C# の GUI を知らないというのがあります。
まあ、TrainTrackingWindow を丸コピーすればいいんでしょうが、
ソースの丸コピーというのもなんだかなと。
もちろん、TrainTrackingWindow の修正は、今度何かの変更を
加えるときのついでで構いませんので、できればよろしくお願いします。
メンバ変数 Train train の private 宣言を public readonly に
変えるだけで結構です。
そちらで本体C#のビルドできますよねぇ? じゃあかまわないんで、最新ソースからTrainTrackingWindow好きなように改造して 利用してもらっちゃって、そのソース私にください。 そしたらそれ次回ビルドにコミットしますので。 私がpuclicにする改造するのを待ってUmezawaさんが始めてって行ったり来たりすると 開発のスピード感がなくなるので、ガンガンやっちゃってください。
>>330 ゴメン、本体はビルドできないです。
本当にスピードに関しては気にしないで下さい。
お遊びの期待するとガッカリする前面展望ですし。
>ゴメン、本体はビルドできないです。 あっ、あれっ(ガクっw SourceForge.jpにβ2.0.2.4としてあげました。 > public Train trainView { get { return train; } } これでいいのかなぁ。 >期待するとガッカリする前面展望ですし。 いやでも期待しちゃうなぁ〜〜 できれば将来のメンテナンス考えるとC#で組んでもらいたいところなんですがねぇ…… ぜいたくは言いません。
>>332 MapViewWindow クラスの trainTrackingWindow が internal だった。
ゴメン、吊って(ry
ちなみに、今回のDLLは全てC#で記述しました。
と言っても表示部は別の「exe」で、プロセス間通信をしています。
なので改造は出来ないと思いますが、メンテナンス性は問題ないと
思いますよ。
というわけで、対象列車を選べませんが、一応動くものを公開します。
http://www.free.netgamers.jp/freetrain/ 配置済みの列車の中から、最初に見つかったものが対象です。
反映されているものは、「地形」「線路」「ホーム」のみです。
よって、非常に寂しい画面です。生活感が無い感じ。
> MapViewWindow クラスの trainTrackingWindow が internal だった。 ぶほ…… そういえば、複数のマップビューを開きまくったときに、それぞれのマップビューに 1つずつ追跡ダイアログを出して全部のマップビューで異なる列車を追跡すること もできるようにと考えて、internalにしたんだったかも。 これってinternalに保たないとまずいですよねぇ。 もいっこ、controllerの中にtrainInformationWindowってのがあって、これやってる ことはTrackingWindowとまったく一緒でそのかわりマップビューへの紐付けが無い ものなんですが。 こっち利用できないでしょうか。 それか、やっぱり同じコードを内部に持つかですかね。 今、ALPHA3でうごかしてみたら、「マップ生成中」が「134/197」からカウントアップ 止まってしまったのですが。これこのまま待ってていいのかなぁ。
Beta2で動かしてみた。 いい! 非常にいい!! やっぱり、なんというか不思議なワクワク感がありますね、これは。 並走・すれ違いの他の列車を表示できるようになったらずいぶん変わるんじゃないかなぁ。 列車のモデリングどうすんじゃーーって問題がありますが。
むぅー 山手線マップは何度やってもロード完了しないなぁーー 今はカウントアップが224/197で止まってます。 1/1超えちゃってカウントアップに分母意味あんのこれwww 線路配置が複雑すぎるのかな。 地形は「なし=空マップ開始」なんですけどねぇ。
でいつまでこの独り言は続くの? いい加減自分のブログでチラ裏はやって欲しいわ。 しかもレベル低い話ばっかりだし、他の回答しているやつの方がレベル高いから その人達が開発した方がいいんじゃないのか? もっとC#の勉強してから質問して欲しいわ。
鉄道経営系ゲームのスレであって、FTの専用スレじゃないのに自分がFTのプロマネだからかしらんけど、横暴になってきてるな。
>>335 >>336 わざわざ動画まで作っていただきありがとうございます。
あれを見て思ったんですが、昼夜の表現が無いのはヘンですねぇ。
他の列車を表示すれば、確かに少しは変わるでしょうね。
ただの四角い箱であれば表示できるのですが、
何色で表示すべき? という問題があります。
列車の画像から一番使用ドット数が多い色を抜き出せば
いいのかな? 単純な処理だけど面倒そう。
山手線マップはロードできるようにしますね。
>>337 C#のプログラミング能力が一定以上あって、
かつFreeTrainに対する意欲がある←これ重要
今のところ上記に該当するのは、りおりおさんただ一人かと
>>338 このスレでFreeTrain以外に話題になったのって、
「A列車で逝こう」くらいじゃない?
「TeraTrain」は盛り上がりかけたけど……。
「最強都市計画」は論外www
>>336 とりあえず、山手線マップがロードできるよう修正した
ものをアップしました。
ただ、以前頂いたマップなので、最新の山手線が配置された
マップを読み込める保障はありませんが。
>>334 TrainInformationWindow ザッと見てみました。
確かに TrainTrackingWindow とそっくりですね。
似たようなものが2つある理由を把握するまで
少々時間が掛かりそうです。
っていうか、自分でUI作れって話ですね。
それに、前面展望画面に他の列車も表示するとなれば、
どのみち全ての列車情報を取得する必要がありますから、
あまり追跡中列車にこだわることはないのかも。
でも頑張って他列車を表示してもただの箱というオチw
列車のモデリングをどこかから拝借してくる?
目的地の概念は実装して欲しい。難しくないから
>>343 >似たようなものが2つある理由を把握するまで
>少々時間が掛かりそうです。
ゴメン
それ私の仕業なので、私が自白する以外に把握するすべはないですw
流れを言うと自動追跡はYzさんが作りかけてたんだけど、列車選択窓の実装に苦労されてて
(パネルで実装してみたら、パネルがマップごとスクロールしてあっちいっちゃったり)
それを自分もどうにもできなくて。
本体いじってたら(旧名)TrainTrackingWindow==(現名)TrainInformationWindowがある
ことに気づき。
ただ(旧名)TrainTrackingWindowで列車を選ぶと、すべてのマップビューが一度にその
列車を追ってしまって都合が悪かったので、このままではダメだと。
ただし後方互換性のためにこれはTrainInformationWindowと名前を変えて残し。
マップビュー1つと紐付けられたパチモンを真似してコード書いたのが今のTrainTrackingWindow
なのデス
追跡は1つしかしないけど乗客の乗り方は複数監視したいってときに、Tracking1つと
Information3つ開くみたいなやりかたができて便利かなぁと思ってるのは自分ひとりか?(爆
>列車のモデリングをどこかから拝借してくる?
モデリングツールを提供してもらえれば、私がしこしこ作りますよ。
理想を言えば、存在する列車プラグインの車両1両1両につき1つの3Dモデルですね。
コントリビューションIDで一対一。
○○は簡単だ、といってる本人が簡単なはずのそれをC#のコードで書いて 出してきたことが今まで一度もないんじゃないかこのスレ
ぶっちゃけそう簡単じゃない。 目的地をどうやって決めるのか。 ランダムに選んでも線路が繋がってない可能性がある。 線路が繋がっていても、ある列車はその駅には寄らないかもしれない。 だが、乗車時点でそれを調べるためには、 現状では実際ダイヤに沿ってをシミュレート運行してみるしかない。 まあ、目的地にたどり着かないと永遠に客車の虜囚となって 放浪しつづけてもいいって仕様なら、多少簡単だろうが。
>>345 TrainTrackingWindow の件、了解しました。
そもそも、追跡画面って複数出せたんでしたね。
結局、その中からどれの前面展望を見るかという
選択肢が出てきてしまうので、UIは必要なんですね。
>モデリングツールを提供してもらえれば、私がしこしこ作りますよ。
>理想を言えば、存在する列車プラグインの車両1両1両につき1つの3Dモデルですね。
りおりおさんに行動力があるのは知ってますけど、
流石に全てのモデルを作るというのはチョットwww
私がモデリングツールを提供する(作成する)のは
ムリですけど、メタセコイアか何かで作成したデータを
バッチで一発変換するようなものなら頑張れば作成できます。
いや、一発変換はキツイか……。
どちらにしても、そういったものを作るとすれば、
1ヵ月後とかになってしまいます。
あとは、列車がボクセル単位で移動するので、前面展望も
カクカク動画になってしまう問題が解決困難ですね。
PS版A4は確か、時間の流れと連動しないようにしてたんでしたっけ?
>>349 私が以前いじってたのは「A列車で行こう7」の車両でして。
これとその前の「A列車で行こう21C」では、車両の3Dグラフィックが
3D設計図データと、2D展開図とに分離して持ってまして。
2D展開図のほうはしごく普通のTGA形式画像データだったんです。
ほんとに、いわゆる図工の展開図と一緒で。
平面に車体を切り開いたものが描かれていて。
それが3D設計図データに従って3D化されていたのですね。
で、ユーザのほうで3D設計図はいじれなかったけど。
2D展開図は好きに書き換えできたので。
カラーバリエーションを増やすとか、形状が同じまったく別の会社の別の車両に
塗り替えちゃうとか。そういうことが簡単にできたのです。
http://www.hiyohiyo.info/~riorio/a7/a7TGAedit.html なのでー、メタセコイアで3D形状を作った後、色を塗ったりするところがそれらと
同じく2D展開図でTGAとかBMPとかでできるなら非常にやりやすくてイイのですが。
メタセコイアが出力できる形式の中にそういうのってあるのでしょうか。
>>350 A21Cのテクスチャ張替えをご存知であれば説明は簡単です。
ポリゴンデータを表示するためには、下記の3つの情報が必要です。
1. 3Dモデル
2. テクスチャ画像
3. テクスチャ画像を3Dモデルに対して貼り付ける位置
A21Cでは上記2番のみユーザーがいじれたんですよね。
今回私が作成したものも、当然上記3つが全て必要ですし、それぞれを
いじれるようにするのも簡単なのですが、普通は?「3Dモデルを作成する」
と言った場合、上記3つをセットにしたものを言うと思います(多分)。
がしかし、今回私が作成したものは上記3つがバラバラになっています。
普通の3Dモデリングソフトでしたら上記3つはセットで作成されますので、
バラバラで情報をよこせ! と言われると一般の方は戸惑うと思います。
ですので、その一体になった3Dデータから、3種類の情報をバラバラにする
バッチを作成するのが大変だなぁ〜、ということでした。
A21C等と同等の苦労をいとわないという事でしたら、まあ私としては非常に
助かりますが、今時そんなことをするのは時代遅れ?ですね。
ちなみに、今回の前面展望プラグインですが、ランダムで建物が作成されると
思います。そのテクスチャ画像BMPはbin/resourceフォルダに入っていますので
見てみてください。これをA21Cと同じ要領で変更すれば反映されるはずです。
>>351 >ですので、その一体になった3Dデータから、3種類の情報をバラバラにする
>バッチを作成するのが大変だなぁ〜、ということでした。
なるほどー
でも一度完全なバッチツールさえできてしまえば、あとはプレイヤーおまかせで
どんどん車両は増えていきそうですね。
>A21C等と同等の苦労をいとわないという事でしたら、まあ私としては非常に
>助かりますが、今時そんなことをするのは時代遅れ?ですね。
いや、時代遅れでもないと思いますよ。
たとえば東京の通勤路線でしたら、E231-500の箱モデルとテクスチャ画像例を
一つ用意してあげてれば。
3Dモデルをいじらずともテクスチャ画像をいじるだけで
帯を黄緑→山手線 帯を黄色→総武線 帯を赤→京葉線
とバリエーションを増やせるわけなので。
3Dモデルで作りなさい、って言われるより一般の人には受付よくないかな……
もちろん、完全新作で3Dモデルも作れれば、複雑な先頭形状をしてる特急車両
も作れてうれしいですね。
りおりおさん、教えて下さい。 先ほど、昼夜の表現を行なおうと World.world.clock.totalMinutes を 取得するようにしたのですが、これって3系からは削除されてしまったのですか?
>>348 せめて次の停車駅がわかれば、乗車する際の判断材料に加えられるんだがな。
次の駅を自動で取得させることが難しいなら、手動で指定しても構わないと思うが。
>>354 自己解決。
totalMinutes から totalSeconds に代わったんですね。
でもそうなると2系と3系でプラグインを別々にしないといけないのかな。
何か良い解決策は無いでしょうか?
>>356 すいませーん。
そこが3系統の変更点キモなもんで……
で、
DayNight World.world.clock.dayOrNightを呼んで返ってきた値が
DayNight.DayTimeか
DayNight.Nightか
で判定するといいかと思います。
中身についてはcore\wprld\time.csを見てください。
>>356 ごめんなさい、最新版動かさずに答えてた。
すごい!夕焼けしてからゆっくり闇が広がってくのね。
うほーー
これをやろうとしたら、Timeクラスがhourやminutesを返すようになってるので、
時間単位で良ければhour、分まで使いたければhour*60+minutesとかで計算
して現在分を得たら2でも3でも動くものにできると思います。
中身はTIme.cs見てください。
>>309 おこたえしてなかったですね
>また独自のpopulationを内部実装しているのでpluginのpopulation記述は無い方がいいのでないかと思います
>建物毎の動的なpopulationの実装をcoreのみで出来ればよかったのですが難しいようでした
駅への集客がうまく実装できたら、その次はplugin.xmlのpopulation - base値を
「スタジアムの観客定員」とみなしてうまくpopulationの変動の計算に組み込みたいと
思ってます。
3D用の簡易的な展開図を得るなら、今のpluginから自動的に正面、側面を抜き出す事は出来ないのかな。
車体形状の判定が難しいですが、簡易的なものと割り切って、テキトーに四角い箱に貼り付けるだけでもいいかもしれない。
それでも白い箱が走るだけと比べればマシかと。
http://ranobe.sakura.ne.jp/src/up53202.png 3D View、線路の高さ方向を半分くらいに圧縮しても良いかもしれません。
動画に出てた感じだと、まるで崖から落ちるみたい。
>>363 列車のことは全然詳しくなくて、実物はよく知りませんが、
19200x2800x3400(mm) にしてみました。
A8のようないわゆるプラレールサイズにすれば、元の画像との
縦横比は合うんでしょうが、そっちのほうがいいのかなぁ。
>>364 ゲーム画面との整合性から、縦横比は元画像に合わせたほうが良いかなと思う。
画像の作者も、ドアの形状とかいろいろデフォルメしてる部分があるだろうし。
>>365 ポリゴンのサイズはいくつにすべきだと思いますか?
元画像は斜め上から見たのを想定して描かれていて、
テクスチャとして貼り付ける場合は垂直に貼り付けるから、えーっと……
あくまでも1ユーザのたわ言なにですが、、、 3D化した事で後にズームイン・アウト機能等がもし追加された時、 スケールがおかしいと見た目の違和感が凄いんですよ。(某●列車最新版を例示) もしそういう機能を追加するときは3Dエンジン丸々データごと見直しますと言うなら 多少誇張されたサイズの方が見た目が良いですよね。
どなたか知っている方がいれば教えて下さい。 Train オブジェクトから、属する全ての TrainCar を 取得する方法はあるのでしょうか? TrainCar[] cars の属性は private だし、 Train.head で取得できるのは先頭車だけだし、 TrainCar.previous で取得できるのは前の車両だし。 先頭車取得&前の車両取得メソッドの組み合わせって意味無くない? 「先頭車取得&後ろの車両取得」か「最後尾車取得&前の車両取得」 なら全車両取得できるんだけど。 先頭車両取得後、Train.reverseメソッドで反転させて 後で戻そうとしても上手くいかないし……助けて。
>>368 foobarさんがやってた反転機能がなんかうまいことやってたな。
えっとね、最新β2以降、pluginsの下のkohsuke〜の.tc.tat内src見てみて。
「A列車で行こう式ダイヤグラム」設定プラグインのソース。
そこのAdvancedStationHandler.cs見たら、
1両ずつ取り出してる部分があるはず。
P.S.
チラ裏はブログに書けって言われたので昨夜から今日にかけてブログにぶつくさ
書いてますがw
StationListener大改造してますw
これが成功したらサッカースタジアムが駅に直結できる!
あー スマートに、TrainCar[] carsをpublicにするのもいいかもねぇ。 それでどっかよそに影響でなければ、だけど。 影響出るか出ないか全然分からないので断言できなくてすみません。 それならそれで、ちゃきちゃき本体いぢっちゃいますけど……
>>369 AdvancedStationHandler.cs 見てました。
で、これはわざわざダミーの TrainCar 生成して、
ポイントだったら云々と色々やってたので、
私が今回知りたいのは個々の車両の位置だけなので、
こんな面倒なことしなくても済む筈だ!
と思い込んで他を探してても見つからなくてイヤになりましたw
う〜ん、こんな方法しかないのかなぁ。
っていうか、このカプセル化の意図が正直分からない。
何故編成車両一覧さえ取得させないのか。
そんな筈はないと思うんだけど……。
>>370 おおーっ!
それなら public にするのはどうかと思うので、
headで先頭車が取得できるような感じで、
最後尾の車両を取得できるようにして下さいませ。
最後尾が取得できれば、あとは previous で前を追っていけば
いいだけのはずですので。
よろしくお願い致します。
Train.csに public TrainCar tail { get { return cars[cars.Length-1]; } } って1行足しといたらいいかなー? すみません、StationListenerをイジってたら、大ハマリしてしっちゃかめっちゃかでw うわーーん、どうしよう。 またセーブデータの互換性が失われるかもしれない。 しょっくぅ。 あと10分ぐらいのうちに、SourceForge.jpに2.0.2.5として置きますので。 それ持っていってみてください。
>>373 ありがとうございます。無事、成功しました!
すみません。
ちょっとC#詳しい方、ALPHA2.0.2.6(2系統だけどα版です)のソース確認して
おかしいところなおしてもらえませんか。
ソースと実行バイナリ同梱
http://www.hiyohiyo.info/~riorio/freetrain/FreeTrainEXAvALPHA2026.zip 新規ゲーム開始すると、たぶん問題なく動くと思うんです。
ただ、まだサッカースタジアムの駅への影響がちゃんとできてないっぽい。
でもそれは現時点では重要ではない。後から直せばいいから。
最大の問題は、これに従来の1,2系統セーブデータをロードすると、最初の列車が
最初に駅を出発しようとするときにgetPopulationでエラー起こして止まるんです。
おそらく100%止まる。
StationListnenerを真似て、SpecialStationListenerってのを追加してみたのですけど。
従来セーブデータをロードすると、SpecialStationListenerがねーぞってなるのかそのへんっぽい。
見て頂く必要があるのは、
core\world\rail\Station.csと、同じフォルダに有るSpecialStationListener.cs。
core\wold\structs\SpecialStationListenerImpl.csです。
なんとか互換性を保ってこれを実装できればよいのですが。
互換性がなくなるようだったらもうなかったことにするしか……
他の列車が表示される前面展望を作成しました。
http://www.free.netgamers.jp/freetrain/ 全車両が、りおりおさんのプラグイン、東海道線E231系の先頭車です。
全てが先頭車ですが、まあ雰囲気を掴むには別に問題ないかなと。
また、民家が1/2の確立で列車に化けてます(テスト用に)。
作ってみて気が付いたんですが、斜めに走るときに車両の間隔が
すごく空いちゃうんですよね。以前の simutrans みたいに。
>>375 お役に立てなくてゴメン
たぶんそれ、私が改造して使ってた分で、オリジナルは北の汽車屋さんに なるんじゃないかと思う<E231系 ひょっとしたらさらに親世代どなたかが公開されてたものかもしれないのですが…… あんまり誰の誰のって言われて誤解うんでもあれなのでw
全然関係ない話だけどジオラマコレクション完全マニュアルだとかは絵書く人には 役に立つのかな?
普段あんまり目にすることのない、建物の背面や上面がわかるなら参考になるかな。
前面展望、対象車両の選択をできるようにしました。
・右クリックで前面展望/クォータービュー切り替え
・クォータービュー画面にて車両クリックで対象変更
・ホイール回転で、拡大縮小
車両選択が少々シビアなので、拡大してから行なって下さい。
http://www.free.netgamers.jp/freetrain/ ところで、やはりというかなんというか、こういうものを作ってしまうと、
車両がボクセル単位で移動するのが残念に感じてしまいますね。
FreeTrain はボクセル単位でガチガチにプログラミングされているので、
これをいじってドット単位で移動するようにするとドツボにはまりそうだし、
ソースも汚くなるだろうからやめたほうがいいとは思うけど、やっぱり残念。
まあ、良いロジックが思い浮かび、かつ C# のスキルも高い人が修正すれば
上手くいくのかもしれないけど……。
今までドット単位での移動要望は無かったのかな?
まだ380版は動かしてないのと、3D Viewの中身をしらないので適当言っちゃいますが。 >今までドット単位での移動要望は無かったのかな? 無かったんじゃないかなぁーと思います。 移動を細かくするということは、同時に車両グラフィックのドット絵のバリエーションも それだけ細かく増やさないといけないということになりますので。 車両プラグイン作者の負担がものすごいものになりそうです。 旧フォーラムの過去ログに何か有用な情報がないか探しに行ったことあるのですが、 「車両プラグイン作者のドット絵作成負担が大きいように思うので、方向を8方向に減らせ ませんか」という質問&要望があったりしたぐらいでした。 黙殺されてましたけどw 3D Viewがカクカクになってしまうというのであれば、FT本体側と完全同期動作を やめればいいように感じるのですが、それは無理なのでしょうか。 FT本体の列車の動きを4tick()分記録して、4tick()遅れて動かして。 その間に動いた列車については、3D View側で適切に中割して動きを補完してしまう ことで、FT本体が今のままで3D Viewはスムーズなアニメーションできそうに思います。
>>381 simutrans は8方向グラでもドット単位の移動なんですよね。
だからと言って FreeTrain に真似しろと言ってる訳ではないですが。
3D Viewer はホントにただのビューアーなので、今のところ内部では
何もしてません。本体と完全同期してこそ「Viewer」だと思うし、
それを変える気も無いです。でもPS版のA4は非同期だったんでしたっけ。
見栄えがよくなるなら別に非同期でもいいんじゃないのかな
まあ同期/非同期は今の段階で決める必要は無いのかな。 3系が主流になれば印象も変わるだろうし。
つうかドット単位の移動ならできるでしょ。 今どのボクセルにいるかという情報があるはずだから、それと1緒に何ドット目の移動という のを保存しておけばいいのではないかな。 1ボクセルを何ドットに分割して移動させるかは決めないといけないけど、たとえば6段階に したとしてどのボクセルにいて、何ドット目の移動ですよ。 一定の単位時間毎にドットを進めて、その位置に表示。 列車も細かく作り直す必要はない。 描画位置だけの問題だと思う。 日本語でおk>俺orz
FreeTrain EX Avは今でも処理の高速化を求められているぐらいなのに、
処理が重くなるドット単位移動を受け持つ余裕はどこにもありません。
また、プレイヤー全員がメリットのほうを享受するのなら、それの裏返しの
デメリットがあってもいいかもしれませんが、外部ビュワーである3D Viewを
どれだけのプレイヤーが使うか使わないか分からないし起動してない間は
まったく無用になる処理を本体が受け持つのは業務分掌が違うと思います。
また、本体の改造にしても2系統→3系統どころではない大改造が必要に
なるでしょう。
技術レベル的にも私の手におえるものではないでしょう。
>>385 日本語の必要ないからC#でおk
一方、3D View側が4tick()分描画を遅くして中割アニメーションを作成する
のであれば、本体側の負担にはなりません。
非同期と言ってもまったくの非同期なわけじゃなく、4tick()遅いだけです。
4tick()の遅さでぬるぬるになるであれば、そりゃみんな(3D Viewを使う人の
みんな)うれしいと思うけどなぁー
こちら本体いじりはSpecialStationListenerの互換性維持がいまだできず
昨日時点からソースはいじってなくてうんうんうなってます orz
A7とかだと列車がヌルヌル動いてる感じで見た目いいよね。 カーブも45度にカクっと曲がる感じじゃなく滑らかだし。 ただ、1マスに1車両という設計はA4から変わってなくて、 列車のスマートさは表現できずに結局どうしてもプラレール。 まあそれよりか、複線にしたときの線路の隙間の見た目がひどかったけどw FTはドット単位移動ができたとしても、 それだけじゃあ苦労に見合うほどのインパクトは得られない気がする。 どうせ無理を言うのなら、高解像度化を希望するわw 現在の画像資産が死んでしまうため現実的ではないが もうちょっとだけアップに耐えうるくらいに描画された列車を眺めてみたい。 WUXGAで遊んでるといろいろ小さすぎるってのもあるし。
>>387 >WUXGAで遊んでるといろいろ小さすぎるってのもあるし
そうですなー
ウチも開発機で最大にするとUXGAにはできるんじゃが……
(でもCRTダゼw ダセ−ww)
単純に、元1pixelを2x2pixelに打つ、というのなら実現は早いかもしれないが。
そんながっくがっくのズームインを必要とする人いるかな??
さて、話かわるのだけど。
Station.csのStationメソッド、それからStationListenerまわり解説できる人いませんか。
Stationメソッドで
// advertise listeners in the neighborhood that a new station is available
foreach( Entity e in Cube.createInclusive( baseLocation-r, baseLocation+r ).getEntities() ) {
StationListener l = (StationListener)e.queryInterface(typeof(StationListener));
if( l!=null )
l.advertiseStation(this);
}
ってやってるわけなんだけど(これは駅を新設すると周囲の建物を探してあれば持ち人口を
駅に結びつけるということをしてるというのは理解できるんだけど)、baseLocationってのが
宣言も無くいきなりでてきててこれなんぞ?ってのからして分かってないし、Entityも分かってないし、
Cube.createInclusiveってのもブラックボックスだし、e.queryInterfaceもブラックボックスだし。
この2行の解説をお願いしたい。
baseLocation:多分現在の場所("PThreeDimStructure") Entity:不明("Entity.cs") createInclusive:ベクトルAからベクトルBまでの3次元立方体を作成する queryInterface:これを実装しているか問い合わせ、あれば自身をなければnullを返す 多分baseLocation±rの範囲のボクセル全てに対しStationListenerがあるかどうか問い合わせ、 あればそいつに対してadvertiseStationを呼び出している
>>388 baseLocationはベースクラスで宣言されてるんだけど、クラスの継承も解ってない?
だとすると、ここで全部説明するのは厳しすぎる。
まずオブジェクト指向プログラミングの基礎から学んでくれ。
VS Express使ってるんだっけ?
自分はVS2008使ってるから多少違うかもしれんが、
baseLocationにマウスかざして何かでない?
Location PThreeDimStructure ...とか
Location型でPThreeDimStructureクラスで定義されてますってことなんだけど。
あるいは、右クリックメニューで「定義へ移動」ってのない?
それでPThreeDimStructureクラスが開く
createInclusiveもブラックボックスじゃないし。
同じく「定義へ移動」すれば見られる。
ただし、Entityはインターフェースだから、queryInterfaceの実装を探すのは
ちょっと面倒だけど・・・ってか、インターフェースは解ってる?
これも基礎知識として知ってないと説明がしんどい。
queryInterfaceを右クリックして「全ての参照を検索」を実行すれば、
検索結果ウィンドウに一覧が表示される。
検索結果を一つづつ追っていけば、あらましは解るでしょう。
>>389 さんくす
>>390 継承は@itの第4章に書かれてるぐらいのことは理解してる。
が、VSのKDEをまったく理解してなかったということのほうが重要かも。
マウスポインタ置いたら<summary>が表示されるのも今知ったし、右クリックで
ソース呼べるのも知らなかった。
こんなに便利なのかー
今まで外部テキストエディタでいっこいっこ継承のスーパークラスたどっていって
「まだないーー」って頭かきむしってたのはいったい……
>インターフェースは解ってる?
@itの14章はまだ分かってない。
4章までなら分かる。
とりあえず今日、14章よく読み込んでみます。
ありがとうございました。
>>391 それはいいアイディアかもしれん。
全然話かわるんだけど(実は裏ではつながってるのだが)
駅のStationListenerが取りまとめてる「population」すなわち人口なのだけど。
その駅の周辺にある建物に住んでる人や利用する人については、建物プラグインのplugin.xml内で
<population>
<class name="人口の種類を表すクラス名"/>
<base>建物の基準人口</base>
</population>
と書いて、そのクラスにあるgetPopulation( 現在時刻 )メソッドが基準人口×その時刻の
外出率とゆーか駅利用率をかけたものを返すようになってる。
http://www19.atwiki.jp/freetrain-exav/pages/136.html http://www19.atwiki.jp/freetrain-exav/pages/137.html 基準人口と時刻以外のファクターはまったく考慮されていない。
それで、先日から今にかけて、サッカースタジアムの駅への影響で悩んでるのだけど。
でよ。
この"人口の種類を表すクラス名"内のgetPopulation()メソッドのreturn値に、将来的にその建物の
利用率とか営業人気とかそういうものを加味しようとした場合、現在の設計で可能なのかな?
私がながめてた感じ、"人口の種類を表すクラス"が建物本体クラスから独立しちゃってて、
建物本体クラス側で値を上下とかできそうにないように思えるのだけど。
可能なら、getPopulation内にどう書くのか教えて欲しい。
やっぱり不可能なら、可能にするためにはどのような再設計をしたらいいだろうか。
提案求む。
さらに話が変わって、このplugin.xmlのpopulationで指定できるclassが、
現状5通りしかない。
住宅・農業・オフィス・飲食店・買い物。
プラス、コンビネーションで上記から任意に組み合わすだけ。
これは少ないと思う。
飲酒産業・ホテル旅館・遊園地を追加したいと思う。
既存のプラグインについては、plugin.xml書き換えで対処。
そのほかに追加した方がいいと思うclassあったら、こんな業種がこういう変動するのを
実装して欲しいって具体的に提案ヨロ〜
なるほど、これは欲しい、という提案があったら採用します。
で、もし提案されてきたものに、時刻だけでは人口を決められないようなモノが出てきた
ときには
>>393 な話にからんでくるというわけ。
あと飲酒産業で思ったんだけど。
「花キン」実装したいよね。金曜夜はお客さんいっぱい。
今って、時間帯で1時間ごと区切っただけで曜日すら見てないんだけど。
既存のオフィス・買い物なども内部的には月〜金の平日/土日の週末、の2通りのかけ率
を持てるようにはなってる。2通り実装してないだけで。
ただ飲み屋だと、平日と週末に区切られると都合が悪いわけで、これは使えない。
独自に24時間×7曜日分のテーブル持ってもいいし、スーパークラスとして
月〜木平日・金だけ・土だけ・日だけの4通りのテーブルを要求するクラスを作ってみても
いいかもしれないが、飲み屋以外にそのクラスを継承して利用しようとするものがなければ
作るだけ手間かかるだけで意味ないんで、それだったら飲み屋の独自実装でいいことになる。
さて。どうなんでしょうなぁー
riorioの方が向いてるよこのプロジェクト
>>394 それやるんだったらサッカー場は普通に解決するような気がする。
水曜日と土曜日(だっけ?)の試合時間の数値を増やして。
人気で値を上下できるとさらにリアルに。まあオイラは野球派ですが、
となると野球場なんかも((だいたい)月曜休み、土日はデーゲームを仕込む?)
増やすんなら田舎の超ローカル線を支えていると言って過言でない学校か?
朝ワッと乗って(これはまだ無理か)3時に帰宅部が帰り、6時には運動部が、
夏休みは誰も居ないと。昔は土曜昼ってのがあったけどもう無いね。
飲み屋が実装されるとなると幻の横須賀線の花金電車(まだあるの?)が再現
できるわけですが・・・金曜日だからって飲みになんか行けないよウワァァン。
乗客集計時に数だけ引っ張るのでなくpopulation種別も保持できるなら 駅の乗車待ち客のうちオフィス由来は何人〜とか見れて面白そう。 乗ってる間も列車側で保持できれば降りるときにいろいろ利用できてよさそうだが 乗車待ち全員が素直に乗れるわけじゃないから厳しいか。
>>392 言語仕様の学習と同時に、IDEの使い方も覚えると良いよ。
使いこなせば、大幅に生産性向上する。
右クリックメニューや、「編集」、「リファクタ」メニューは、
一通りどんな機能があるか知っておくべき。出来たら実際使ってみる。
以下余談
自分は仕事ではeclipse+javaで開発してるんだけど、
言語仕様的な生産性のポテンシャルはC#>javaなんだが、
IDEの至れり尽くせり度がVS<<eclipseで、
トータルでの生産効率はeclipse+javaの方がまだ上。
eclipseを100点とすると、VS2008は40点くらい。
2005以前は10点未満だったから、多少マシにはなったとはいえ、
まだまだ格段の差がある。次のVerでは80点くらいになってほしいねぇ。
>>398 スレ違いだけど聞かせて。
C# と Java 両方理解している人から見て、C++/CLI ってどうですか?
個人的には将来はこれ1択だな、って感じているんですけど(分野にもよる)。
また、今回の一連のプラグイン作成は C++ で作成しちゃったけど、
C++/CLI なら C# との親和性も高そうだし、これで作ればよかったなと少々後悔。
.NET 事情をよく理解していなかったのが敗因ですな。
FreeTrain は今のところ .NET 2.0 ですけど、.NET は 4 で大幅に
変わるようですし、その際また EX -> EXAv に変えるときのような
苦労を避けるという観点でも、何か意見があれば聞かせて下さい。
>>399 申し訳ない、C++/CLIの細かい仕様はよく知らない。
ただ、結局 .NETの共有言語基盤を使うのだから、
C#/VB.NETなどと機能面では同じはず。
あとは、個々人が馴染みやすい言語を選べばいい。
・・・というのがM$のスタンスだと思うけど、
個人的には、.NET Frameworkと同時に誕生したC#こそが、
もっともCLIのと親和性が高く、王道と言えるのではないかと・・・
一方、VBやC++など既存言語を拡張したものは、
どうしても無理矢理なところが出る可能性がある・・・と思っている。
なので、既にC#を使ってる自分としては、他を選ぶ理由が見あたらない。
フォーラムにバグほうこくがありまして。
http://sourceforge.jp/forum/message.php?msg_id=50222 >任意のマップ(例えばゲーム開始時の何も建設されていないマップ)に、任意の数の駅舎やホームを
>建設し、すぐに全て撤去する。
>撤去方法は「駅工事」の撤去でもブルドーザーでも可。
>
>本来であれば、そのようなマップに存在しない駅舎やホームの経費は、撤去した翌日以降はまったく
>かからないように処理されるべきと思われるが、実際には翌日以降も継続して経費として毎日資金から
>支出され続けている。
Station.csの301行目
public void clockHandlerDay() {
// called once a day. charge the operation cost
AccountManager.theInstance.spend( type.operationCost, AccountGenre.RAIL_SERVICE );
import.DailyReset();
export.DailyReset();
trains.DailyReset();
}
や、Platform.csの136行目
public void onClockPerDay() {
// charge the cost
AccountManager.theInstance.spend( 18*length, AccountGenre.RAIL_SERVICE );
}
などが費用を計上してるところで、これらはWorld.world.clock.registerRepeatedで実行されてるのだけど、
>>400 なるほど、既に C# を習得した人にとっては C# で満足、
特に何も問題は無いといった感じですかね。
私は UNIX 寄りの仕事をしてきたんで、どうしても C# は
異質なものに感じてしまって……。
今こうやって C# でプラグインを色々作成してますけど、
将来 J# のような状態になって、今の資産が引き継げなくなると
悲しいなぁ〜などと思ってたんですが、そうやって C# を
評価している人たちが居れば、とりあえずは安泰なんですかね。
撤去の時はどちらもちゃんと public virtual void remove() { World.world.clock.unregister( new ClockHandler(onClockPerDay) ); if(onEntityRemoved!=null) onEntityRemoved(this,null); } や public override void remove() { World.world.clock.unregister(new ClockHandler(clockHandlerHour)); World.world.clock.unregister(new ClockHandler(clockHandlerDay)); でunregisterされるようになってて。 タイマー解除→もう呼ばれないはずなのに。 なぜ実際はこういういつまでも呼ばれる動作になるのか分かりません。
面倒、すごく面倒。原因は分かってはいるんだが今の案では直すのが面倒 さらに言えば直した所で互換性があるかどうか、あったとしても不具合は引き継がれるという 誰か良いアイデアがあったら教えてください 原因はregisterRepeatedで登録されるとunregisterでは解除されない事 内部でRepeatedTimerが使われ、ここからTimerに登録されている これを解除するにはRepeatedTimerの"登録した"インスタンスが必要 そしてこいつはregisterRepeatedのローカル変数なわけで でも戻り値にRepeatedTimerの登録したハンドラを返すからこれで解除できる 今の案は 1.全てのregisterRepeatedを使う場所を書きかえる 2..registerRepeated内で登録したものを保持する 3.queueを無理矢理…
4.おそらく使い回されないと仮定するならばある変数(何でも良い)にマジックナンバー(null等)を代入する そしてタイマーから呼び出される関数で比較する 根本的な解決にはならないが…
>>404 少し前に出てきたDelegate.Equalsを真似てRepeatedTimerクラスで
Equalsをオーバーライドする。
public override bool Equals(object obj) { return handler.Equals(obj); }
>406 サンクス でもDelegateのインスタンス比較はobject同士での比較、つまり参照の比較となるため(reflectorで確認したところ[object] == [object]で比較していた) オーバーロードしても同一とみなすようにできないと思う(operator==はどちらか一方に自己クラスを必要とする) 4改.RepeatedTimerからのみ呼び出せると仮定できるなら、比較して解放済なら例外を投げる 呼び出し元が例外を揉み消しTimerに再登録されないようにすれば後はGCに これは上手く行けば元のデータでも不具合はなくなるかもしれない、ただし応急措置であることに注意する 以下蛇足 Populationは現在の仕様だと建物の「種類」と結び付けられている PupukationStructureが初期化される際、StructureContributionからPopulationの参照をもらう ここを動的生成か何かに変更できれば建物個別のPopulationができると思う
>>404 詳細に調べてくれてありがとう。
今、自分でもClock.csのタイマー関係をひととおり見てみたのだけど。
うーーん、正直言ってこの部分は今の自分の力量からは高度すぎてすぐはいじれない。
どれがいいのかもなんとも言えないんだけど。
>でも戻り値にRepeatedTimerの登録したハンドラを返すからこれで解除できる
というところからすると、
>1.全てのregisterRepeatedを使う場所を書きかえる
かなぁ?
使う場所の方で返ってきたClockhandlerを保持する変数を呼び出し1こにつき1つずつ
持って、unregisterをその変数で行うように書き換えればいいんだよね。
ただ既にあるセーブデータを読み込むとどうにもならないよね、たぶん。
そのぐらいはしょうがないか。
>>408 方針で修正したβ2.0.2.7をリリースしました。
ソースもコミットしてあります。
これでいいかどうかご確認よろしくお願いします。
今回も
>>404 さんのアドバイスがなかったら解決できませんでした。
ありがとうございました。
>>410 おつかれさまです
ありがとうございました
wikiに掲載して、要望のあがってきてたSourceForge.jpフォーラムにも
案内を書き込んでおきました。
お時間ある時に3.0にも移植しておいてください。
totalMinutesをtotalSecondsにして調整してもらったらいいかなと。
3.0ソースはSourceForge.jpにコミットしてありますので。
FreeTrain EX Av β2.0.2.8出しました。 【2.0.2.7 -> 2.0.2.8 変更箇所】 ・SpecialStationListener実装 ・サッカースタジアムで試合開催後3時間、最寄り駅を観客利用 ・2.0.2.7以前に作成したセーブデータをロードすると、最初の何日間か列車が駅を出発するタイミングでガクガクしますが、 発車が一巡すると収まるはずです。SpecialStationListenerの処理を行っているためです。 ソースはコミットしてあります。 Station.csのあっちこっちにダサいコードがありますが、もっとスマートな互換性維持の 方法があったらおしえてください。
β2.0.2.8だとスタジアムの観客数がソース決め打ちになってたので、 plugin.xmlに<base>40000</base>って書いて変更できないか試してみたのですが。 StadiumStructure.csでthis._population = new PopulationImpl( 40000 );しちゃう関係上、 結局ここで決め打ちするしかないみたいなのですが。 new PopulationImpl();で呼んで、PopulationImpl側でplugin.xmlの<base>読ませるには どうしたらいいんでしょうねぇ。 PopulationImpl側に public PopulationImpl( XmlElement e ) : this( int.Parse( XmlUtil.selectSingleNode(e,"base").InnerText) ) {} public PopulationImpl( int p ) { _baseP = p; } ってのは書いてみたんですが。 なんかこう、plugin.xmlからの初期化とStadiumStructureからの初期化がごっちゃに……
りおりおさんへ 度々申し訳ありません。 TrainCar のコントリビューションID を取得したいのですが、 クラスのメンバ変数「type」を public にして頂けないでしょうか? public はけしからん! ということでしたら、type.id を取得する メソッドを追加していただけると有難いです。 もちろん、今度のバージョンアップのついでで構いません。 内部仕様の変更だけでバージョンを上げるのもどうかと思うので。 以上、よろしくお願いします。
plugin.xmlが読まれた時の初期化(※多少の想像が含まれます) 最上位のcontributionで関連付けられたクラスがおそらく一度だけ初期化される Populationはここで初期化されcontributionメンバとして保持される
>>411 >wikiに掲載して、要望のあがってきてたSourceForge.jpフォーラムにも
>案内を書き込んでおきました。
どうも大変ありがとうございます。
riorioさん、すみませんがALPHA3をビルドしようとすると以下のようなエラーがでました。
どうぞご確認をお願いします。
エラー 1 "src\StationAdvancedDialogNumeric.resx" にマニフェスト リソース名を作成できません。
ファイル 'F:\FTsrc\trunk\plugins\org.kohsuke.freetrain.tc.tat\src\StationAdvancedDialogNumeric.cs' が見つかりませんでした。
FreeTrain.TATTrainController.2008
>>417 うあー すみませんすみません。
追加したファイルがSVNに「追加」操作し忘れてて歯抜けになってました。
今追加してコミットしたので大丈夫だと思います。
もしほかにも抜けがあったらすぐ言ってください。
>>415 了解です。
>>416 従来のPopulationクラス、それを従来のStationListenerで使う分にはそういう
ことなのかなって分かるのだけど。
それだと今回サッカースタジアムでやってみたみたいな動的にオブジェクト側で
演算してその結果をPopulationに反映させるっていうのはどうしたらいいんだろう
っていうのと。
またplugin.xmlの<population><base>に書いたbase人口値をサッカースタジアムの
StadiumStructureクラスなどで読み出すにはどうしたらいいんだろうというのと。
はれ? Train.csで public readonly TrainContribution type; だけど…… 書き込みたいわけじゃないですよねぇ? 読めませんかね。
>>419 確かに Train クラスの type は public なんですけど、
何故か TrainCar クラスの type は internal なんですよ。
説明が不十分で申し訳ありませんでした。
Train.cs に定義されている TrainCar クラス
714行目: internal readonly TrainCarContribution type;
を public にしていただければ助かります。
>>420 あーー、すいません、TrainCarのほうでしたのね。
今直しましたので次回ビルドに含まれます。
今、ここ何日かでβ2のほうにやった変更をα3にも反映させてます。
手作業です(汗
>>418 ビルドできました。ありがとうございます。
>418 無理ではないですけどちょっと面倒かもしれません XMLによるPopurationの派生クラスの初期化時にbaseを保存 ->ContributionのメンバであるPopulationを取得 ->Populationを型変換し保存したbase値を取得 ただ確認はしていません もしくはContribution作成時に直接base値を得る これだとbaseという名前でなくても良く、またContribution直下に置くと読み込みやすい structure作成時にこの値を渡す こっちの方がいいかもしれません
FreeTrain EX AvのPrototype(α版)3.0.1.8をリリースしました。 ○3.0.1.7からの変更点 ・列車名の表示を可能にした ・サッカースタジアムのエラー修正 ・repeatタイマー解除方法修正。駅&ホーム撤去時に経費徴収が止まるように。 ・SpecialStationListener実装 ・サッカースタジアムで試合開催後3時間、最寄り駅を観客利用 ・3.0.1.6以前に作成したセーブデータをロードすると、最初の何日間か列車が駅を出発する タイミングでガクガクしますが、発車が一巡すると収まるはずです。 SpecialStationListenerの処理を行っているためです。 よろしくお願いします。
>>423 ごめんー
例によって、よくわからないままイジっちゃってるんだけど……
plugin.xmlには今
<population>
<class name="freetrain.world.soccerstadium.PopulationImpl"
codebase="bin/FreeTrain.SoccerStadium.dll"/>
<base>40000</base>
</population>
って書いてあるわけね。
ここのclass name=とcodebase=で、PopulationImpl.csの
public PopulationImpl( XmlElement e )
が初期化されそうっていうのはばくぜんと分かるのだけど。
このままだと、このPopulationImplを、サッカースタジアム本体である
StadiumStructure.csのpublic StadiumStructure( StructureContributionImpl _type, WorldLocator wloc )
側で使えなくない??って思うわけで。なので、あえてStadiumStructureの先頭で
this._population = new PopulationImpl( 40000 ); ってnewしてるわけで……
とりあえず今、このnewした_populationはうまく使って駅の利用客を試合に連動させて
増減できてるのね。ただしスタジアム収容人数はこれだと40000人固定。
その40000をソースに書き込まずplugin.xmlの<base>から取ってくるには、がしたくて。
>StadiumStructure側で使えなくない??
できないわけではないですが、コピーしてダウンキャストが必要ですね
423の上では
PopulationImpl( XmlElement e )でeからbaseを取得し、どこかに(ここでは仮にbase)保存
そしてStadiumStructureで((PopulationImpl)_type.population).baseとして取得
下では
xmlを書き変えpopulationを利用せず<contribution>直下に<base>として置き、
StructureContributionImpl( XmlElement e )でbaseを取得し保存
この後はnew StadiumStructure(this,wLoc,base)とするか、_type.baseとするか
[以下余分なもの]
古いソースの上独自仕様を入れ互換性のないsoccerstudium英語が変なのはご勘弁
ttp://u4.getuploader.com/freetrain/download/63/stadium.zip src
>>426 「423の上では…」以降をやってみようとしてはたと気づいたんだけど、
それってStadiumStructureクラスはPopulatedStructureクラスを継承した
うえでの話になってるよね。
PopulatedStructure内で自動的にStationListenerに登録される。
自分、それだとどーもうまくないってことで、StationListenerに登録されず自前で
SpecialStationListenerに登録しに行くという前提で、継承するスーパークラスを
PThreeDimStructureに変更しちゃってるんだわー
この継承状態で((PopulationImpl)_type.population)って取れるかな。
かなっていうか、今ダメモトでやってみてビルド通るかどうかやってみようなかんじ
なんだけどね。
>[以下余分なもの]
おおっ
ソース中身のぞいてなくてファイル名見ただけだけど、なんかwkwkするファイル名
がついてるじゃないですかっ
やってみたらダメでしたー ビルドはだまして通せても、スタジアム建てると | 型 'freetrain.contributions.population.PersistentPopulation' のオブジェクトを | 型 'freetrain.world.soccerstadium.PopulationImpl' にキャストできません。 になっちゃいましたわ。 this._population = ((PopulationImpl)_type.population); のところで。 PersistentPopulationっつったら、core\contributions\populations\PersistenePopulations.cs で定義されてるもので、 Population implementation that wraps another Population and provides persistence support. ってコメントがある……… むー これってやっぱり、サッカースタジアム独自のPopulationImpl.csのPopulationImplクラス を初期化して_type.populationに結びつけられてないってことになるよねぇ。
>429 ごめんなさい、ソースを確認したらPersistentPopulationでラップされていました この中からpopulationの実体をとり出すのは難しそうです
サッカーやら3Dやらで取り込んでるところ申し訳ないが AB CD E ━━────━━──────━ このように駅を2つ並べた状態で ホームはそれぞれ2両分ずつ同一線路に並べて設置 (ダイヤ設定用にABとCDそれぞれ別の駅・ホーム関連付けに) これで見た目は4両ホームに そこに車両を2両ずつ別個に購入配置して(高速車両で試した) 後方2両がA、Cに停車(Cで折り返し待機(Bは通過) 先頭2両がB、D、Eに停車(B折り返し、C通過)というダイヤにして 擬似連結分離できないかとやってみたが 1.ABをそれぞれ同時刻発車にすると後方がつっかえて 緊急停止扱いになるせいか結局離れて走ってしまう 2.後方のA発車を先頭より1分早めに発車とすると 行き止まりと勘違いするっぽい?のか立ち往生してしまう(うまく説明できんw) 1.の方でCで時間待機中のところに、戻ってきた車両がDに入って止まったときに 折り返すはずのC待機の車両がしばらく動かなくなった まあこんな風に2駅のホームを同じ線路上にくっつけて並べて置くこと自体が イレギュラーっぽい操作だからうまくいかなくても仕方ないとは思うけど もしどっか調整してうまくいくようなら連結分離ができて気持ちよさそうなんでw 余裕あれば見てもらえれば
<population>内ではなく、<contribution>直下に<capacity>を書いてStructureContributionImpl
で取得・保存する方法でうまくできたーー!
これで1万人収容も5万人収容も作れるぜーー!!
じゃあ野球場もやっちゃいますか!!!
誰か絵かいて!!!!(ぉぃ
>>431 それ、β2までの時間軸だと、高速では「前方後方同時」、中速では「後方が30分早く」
出発するとうまくならんでごとごとと走っていってくれてた。
駅ホームだと緊急停止した時点で停車扱いになっちゃうので、10分or30分早くに出発した
あとはその時間ずっと、たとえば「10時*分*秒 通過」に設定して駅通過させとかないと
ダメ。
また進行方向を変えて折り返してきつつのときは、高速では20分・中速では50分早く
にズレが生じた気がする。
で、α3系統の時間軸になったときにこの0分・30分のうまく離れずくっついてってくれる
差がいくらになってるのかはまだ研究してないので。みつけてくれるとありがたいのだがw
同時はたぶん同時で変りないと思うので。
中速のときの30分は30秒かなぁ〜〜?
コロネ島動画で貨物列車が機回ししたり機関車つけかえたりしてるのは、これ使ってる。
β2.0.2.9とα3.0.1.9をあわせてリリースしましたよ、っと。
サッカースタジアムの試合終了時刻を調整しました。
なんかー、狙った時刻と1時間のズレが生じるんだよなー
あと、駅のプロパティを開いたとき、待ち客数を実数/需要値の2段階表示にしました。
需要値のほうが、従来「待ち客」表示されていた数字になります。
実数は、これから既に乗って行った分を差し引いてます。
実際に到着した列車に乗り込むのは、実数のさらに0.3倍です。
>>427 前面展望見ましたー
ふぁみりーまーとがw
駅位置の取得再現がまだ広すぎるマップに対応しきれてないのか、山手線を走行したら
目黒〜品川〜神田のあたりでホームがなかったです。
私はリアル縦横比=現状、が好きかな。
ただ、すべて強制的に2Dチップから吸い出したものしか表示できないのであればつまん
ないきがします。3Dの展開図をユーザ側で自作したものについては吸出しせず自作優先
になれば、3D展開図をしこしこ描くことでよりリアルな3D Viewが楽しめていいかなーと。
>>427 全然OKだと思う。
すれ違い時の視点から見れば、むしろアスペクト比がちょうど良いのでは。
それにしても、たった数ピクセルの高さしかない車体でも
PS版の電車でGOみたいな感じが出せるんだな。
>ただ、すべて強制的に2Dチップから吸い出したものしか表示できないのであればつまん >ないきがします。3Dの展開図をユーザ側で自作したものについては吸出しせず自作優先 >になれば、3D展開図をしこしこ描くことでよりリアルな3D Viewが楽しめていいかなーと。 新たなコントリビューションを定義しないと無理では。
いまは擬似的にやってるだけだけど、連結機能が出来たら某京急も真っ青なダイヤを作る奴 出てくるだろうな。
>>436 分割併合を実装させるのは簡単だよ
一から作り直しかもしれんけど
分割併合だけならだけどね 目的地の概念を加えたら やたらとややこしくなるけど
一から作り直しは勘弁だが、今の構造を維持して簡単に実装できるのなら 実装したいなぁ。分割併合。 目的地の概念はいらないと思う。 あるにこしたことはなかろうが、自分の手には余る。
>>439 HSP使いなんで協力はできないけどイメージとしてはトレインオントレイン
コンテナを作ってそこに編成群を格納する(一つの編成でも)
でそのコンテナごと動かしている
うちはトロピコ+シムシティにしようと思うので目的地設定するためにダイヤは簡略化する予定
>>433 >>435 ポリゴンデータは、メモ帳とペイントさえあれば、
全ての項目をいじれるようにしたつもりです。
分かり易いかどうかは別ですが……。
もし興味があれば、プラグインの中の bin/plugin の
中身を見てみてください。このテのものに心得があれば
簡単にいじれると思います。
>>434 そうなんですよ、この程度のテクスチャ解像度でも、
意外と見られるものが出来て、私自身もビックリしました。
理想はこのデータで電車でGO!もどきをプレイできるようになることかなw
BVE は私には難しすぎるし……。
>>441 >うちはトロピコ+シムシティにしようと思うので目的地設定するためにダイヤは簡略化する予定
トロピコ+シムシティのようなゲームを自作するということ?
>>427 そのシーンだけ見ると問題ないように思えるけど、
駅のホームの長さとの違いはどうするの?
駅の周りに建物ぎっしり建ってたら引き延ばす訳にいかないよね。
>>443 そうそう。戦闘は入れないけど
そのかわり朝夕の通勤ラッシュは再現しようと考えてる
>>446 開発中のものでも何かあれば是非見せて!
>>445 んんん?正直どうやって辻褄合わせてるのかわからん。
列車は1両で2ボクセル分くらいの長さあるのに・・・。
ホームが列車の長さとぴったりに見えるけど、
実はゲーム中では列車の二倍くらいの長さにしてるとか?
>>448 FreeTrainの単位で言うと、
・車両は1ボクセル
・ホームは半ボクセル
・(無関係に建っている)家は1/4ボクセル
なのでホームに関しては1ボクセル占有するようにすればOKかなと
>>449 なるほど
つまり家のサイズの方で辻褄合わせしてるんですね。
ということは、今後さらに再現度を高めるにしても、
鉄道以外の建物は元マップに忠実にというわけにはいかなくなる?
まあ、建物全部3D化するのは事実上困難だから、
似たような物で置き換えるのかな?
β2.0.2.10とα3.0.1.10とPluginSet20100427とMelodySet20100427と出しました。
>>450 建物も、とりあえずは忠実に再現しようと試みてはみるつもりです。
ただ、建物は車両と違って個々にモデリングが異なるし、真横から見た
画像も無いからどうしようかなと。
モデリングはボクセルサイズと同一の立方体にして、そこに斜めの画像を
無理やりテクスチャとして貼り付けて、果たしてどこまでまともに見られるか。
イメージとしては透明な箱にシールを貼り付けるような感じなんですが、
そんなんじゃダメかなぁ。さっさと実験してみれば良いだけなんですが、
定義ファイル書くの面倒で作業止まってますw
>>451 α3.0.1.10、起動できませんでした。
β2.0.2.10はOKでした。
ウチだけ? 環境依存かどうかなど何も調べてませんスミマセン。
とりあえずそういう事例があったというご報告まで。
報告たすかります。 DirectXWrapper.dllの同梱が抜けてたようです。 アーカイブ差し替えたので今は大丈夫だと思います。
建物を工場・マンション・雑居ビル・家 と大まかに分類して、その分類で表示すればいいんじゃね? シムシティ2000の3Dみたいな
>>456 そうだね、とりあえず大まかな分類と占有ボクセル数が分かれば、
それなりの雰囲気で表示できる気がする。
ボクセル数は<size>から取得するとして、問題は分類かな?
列車の運賃<fare>と価格<price>を議論するために、既存列車pluginがどのような
運賃・価格設定をしているか調べました。
Excelにしてあります。
http://freetrain.ps.land.to/upload/data/ftup0081.zip どうぞ見てください。
これまでのFreeTrainが「経営」面をないがしろにして箱庭にかたよってきていたことが
よく分かるデータになっていると思います。
「コストバランス」というタイトルで、川口さんがwikiにまとめられていたものを持ってきた
ので、参考に読んでください。
http://www19.atwiki.jp/freetrain-exav/pages/142.html 残念ながら、お手本になるA4で、列車の価格がどんなになってるのかは分からないようです。
だからといって、適当に「1」とか「100」とか放り込んでる現状ではダメだと思います。
また、運賃<fare>が抜けている列車が非常に多いので、これでは運転したらしただけ
赤字たれながしです。
適切な<fare>を書き加えたいと思います。
「適切な<fare>とは」という点についても、これから議論していきたいと思います。
ただ<fare>についてはA4のお手本が明確になっているので、ある程度簡単に指針は示せる
と思います。
思いついたことぱんぱん書いてるだけで実現性とかは考慮してないんだけどねー A列車式詳細ダイヤ設定で「乗車のみ」って欲しいと思う? たとえば東海道新幹線が東京発車してー、すぐ品川停まるじゃない、今。 そこで全員降りちゃうのってどうなのよ?? 普通は誰一人降りずに品川で新しい乗客を乗せるだけで出発だよねー 乗客が目的地を持ってくれてたらいいんだろうけど、持ってないし、それはお手本の A4もそうだし後のA7,8にしたってそうだし。 ADSは持ったんだけどA9でまた戻ったんだっけ?やってないから知らないんだけど。 まぁー、いまさら目的地持たすのは無理。やりようがない。 なんで。 ダイヤで強制的に「乗車のみ」にしてしまう、ことでしか今のFreeTrain EX Avでは 実現性がないと思う。 さらにそれも、運賃計算上は一度全員降ろしちゃって精算してその全員が新たに その駅で乗り込みなおすことにせざるをえないと思う。 それでもよければー、って感じで。
車両価格に付いて: ざっとA4のデータ眺めながら考えてみたが、 基礎運賃*70000 (1両あたり) がそこそこいい近似になった。(速度/定員関係無し!) しかしながらAR4だけちょっと外れた位置になってしまう。
A4時代のAR4は特別扱いな様な気がする
>>460 有力な情報をありがとうございます!
早速、私の私案を入れてみた基礎運賃と、それx70000してみた列とを
並べてみました。
どうでしょう。
>>459 システムどうなってるかわからないから、とんでもない無茶ぶりかもしれないけど
品川で降りる人が全くいないわけではないし、
いっそ適当な乱数表作らせて、
付近の居住人口が乗る→次の駅で付近の居住人口が乗る→同時に付近の就労人口×n%降りる→次の駅へ
とか
それで駅周辺何ボクセルかの総人口内で、住宅人口より就労人口が多い場合は計算式逆にして
付近の就労人口が下りる→同時に付近の居住人口×n%乗せる→次の駅へ・・・
これをさらに時間(通勤時間帯と帰宅時間帯)ごとに交互させるっていう・・・
こんな複雑なのどう実装すればいいかもわからないし、
そもそも駅とその周辺の建物数だけ計算量多くなってそれこそスペック足りなくなりそうだけど
駅周辺の建物種類の比率から駅の属性が住宅街・商業街というように決まって その属性と時間帯を元に乗降客の影響が変わるとかならどうだろう これなら建物の建設・撤去時だけ属性変更の判定で抑えられるし
ちょうどよい機会なので、列車の定員<capacity>についても併せて議論をお願いします。 同じ列車でもプラグイン作者さんによって定員数が違うものが多いので…。 個人的には、定員については実車の(座席数+立席数の2倍)で揃えてしまうのがよろしいかと。 なんで立席数を2倍にするのかというと、田園都市線や小田急線みたいにラッシュ時混雑率200%を再現するためww
>>464 そうなってくると、建物の種類も再チェックの必要ありなんですが。
なにしろ、OfficePopulationの分譲マンションとか、
ResidentialPopulationのデパートなどがいっぱいあるので…。
そもそも今の運賃計上はどういう設計になってるんだろ。 A4は、駅間を直線で結んだ距離を基準にしていて カーブが多いほど売上が低下したと思うが。 目的地は持たなくてもいいと思うが、 例えば、列車ごとに過去停車した駅のリストを持たせるのは難しいの? どの座標で停車したか、それぞれの駅で何人乗ったのか、過去10駅分くらいあれば。 どの駅で何人乗ったのかがわかれば 464みたいな方法と併せれば目的地を選んでるっぽい見た目にもできるし 乗車のみ設定においても、運賃計上を自然な形にできそうだし。
>>463 それは無理(笑)
>>464 乗車客にはpopulationの影響で、今のまま自然と人の流れはできます。
降車客はどうにもできません。乗ってきた人とにかく全員降りちゃうので。
>>465 そうですね。
> (座席数+立席数の2倍)
いいかと思います。
FreeTrainはA4にあったのと違って<capacity>以上載せようとしないので。
>>466 それは次回、Population属性増やそうと思ってるのでそのとき再チェックしませう。
>>467 wikiのコストバランスかどこかに計算式あったはずなので読んでみてください。
直線で結ぶのは同じはずです。
東京駅で乗車した乗客を品川駅で降ろさない案ですが、
愚作「最強都市計画4改」まで、ちょうど
>>464 >駅周辺の建物種類の比率から駅の属性が住宅街・商業街というように決まって
>その属性と時間帯を元に乗降客の影響が変わるとかならどうだろう
と
>>467 >目的地は持たなくてもいいと思うが、
>例えば、列車ごとに過去停車した駅のリストを持たせるのは難しいの?
>どの座標で停車したか、それぞれの駅で何人乗ったのか、過去10駅分くらいあれば。
の2つと似たようなことをやってました。
コーディング工数/難易度の点、実行速度の負荷の点からみても、
結構バランスの取れた案だと思いますよ。
欠点は終端駅で全員降りてくれないことくらいでした。
それにしても、みんな思いつくことは一緒なんだね。
同じ意見がスラスラ出てきててビックリしました。
>>468 して
列車の定員は通勤電車は乗車率200%とかあるだろうけど、ボックスシートの急行電車で
200%はちょっと詰め込めないだろう。特急はお盆の自由席とか例外もあるが、100%まで
だろう。
で、電車の分類として通勤型、近郊型、急行型、特急型に分類してたんだし、そのパラメータを
追加できないか?通勤型は200%までOK、近郊型は少し少なめ(中の人間は結局苦しいわけ
だが)180まで特急は100%までとか。となると全プラグインをチェックする羽目になるが、まず
は未対応車は100%にセットしておけば、ひとまず。
それと関連あるが、結構定員数バラバラ。まあ解釈の相違なんだろうが、定員は諸元表から
持ってきて最大混雑率で実際の乗車人数を決めるほうが良いと思う。
>>465 ,
>>468 > (座席数+立席数の2倍)
プラグインにその計算式で出した値を書くのはどうだろうか?
よくわからなくて、適切に設定できない人が出てきそう。
200%がやりたいなら、プログラム側で定員の二倍までは
乗せられるようにすればいいのでは?
>>469 製作者の実感として、それの効果は満足いくものだったでしょうか?
5リリースされたんですね、久々に遊ばさせてもらいます。
でもそろそろPC向けUI実装検討してもらえると助かるお・・・・
>>469 今思ったけど、折り返した時と回送になった時に全員降ろす処理を入れればだいたいは
大丈夫じゃ?終電で途中駅まで行って、次の日の朝始発で出て行くパターンがあるけど、
乗客が車内で夜を明かさないですむ方法は、誰か考えて。
474 :
代理投稿 :2010/04/28(水) 18:37:28 ID:87ki7EHV
>>472 簡単な処理の割にはそれっぽい乗降をしてくれたので、気に入って前回まで同じ
ルーチンをいじらず使い続けてました。
たださすがに、経営ゲームに特化しようとすると目的地概念が無いのは無理があるので
今回ルーチンを一新してしまいましたけど。
経営ゲーム特化という決断をせず、箱庭路線で行こうとしていれば、ずっと使い続けた
ルーチンだったと思います。
箱庭は FreeTrain にかなわないと思ってやめてしまいましたけど。
5のPC向けUIは考慮したいと思います。
475 :
代理投稿 :2010/04/28(水) 18:42:28 ID:87ki7EHV
>>473 「折り返し」の判定が難しいですね。到着した時点で判断する必要がありますから。
まあ「向きが反対になった」と同等でもいいような気もしますけど、西武線飯能とか
東武線柏とか悲しくなる駅が……。
いっそのこと詳細ダイヤに回送停車を作っちゃうとかw 発車−回送、折返発車−折返回送、反転折返−反転回送っていう対になるわけだし 「回送待機」の方がわかりやすいか
>>476 ゴメン、ちょっと意味がわからない。
今の詳細ダイヤの行動選択は、全部「発車するときどうするか」のアクションなんだよね。
一方で乗せてきた客を降ろすというのは、「到着したとき」のアクションなわけよ。
これは今まではまったく無規定で、絶対降ろしてた。
で、そこにメスを初めて入れて、「降ろさない」という選択肢を入れてみるかどうかという
提案というか単なる思いつきが
>>459 なんだけどね。
ちょっと言葉足らずだったかな 現在の仕様に回送停車つけたらっていうわけじゃなくて 今後、停車で客を降ろさないケースがでてきた場合に 必ず降ろす停車(つまり現在の仕様の停車)を別個に用意すればいいんじゃないかなと まあまだ実現もしてない話に尾ひれつけてもしょうがないので あんま気にしないでw
A列車式ダイヤ設定の詳細設定ダイアログをどうするかっていうのも 課題かもしれないけどねぇー ずーっとあのままだったのを、Yzさんが「回送」追加して、つい先日 私が「反転」追加して、そのままラジオボタンを横に増やして8連に なってしまったわけで。 あ、あとα3ではNumUpDown式のも別にかまえたけどラジオボタンは共通。 従来と互換性を保ちつつ、より設定しやすく、分かりやすく、多数の列車 をさばいても苦痛にならない入力はどんななのか。 難しいねー あと現状、「停車」ってのはある。 対になってるのは「通過」だね。 「通過」を設定しておかなければ強制的に「停車」した上で客も降ろしてしまう わけだけど、それはそれでそのままでいいんじゃないかなと思う。 デフォルト動作としては。
>>470 >>471 うーーん、なるほどねぇー
電車の分類を追加した方が簡単か。
定員は「定員」できっちり区切って。
そのほうがやりやすいかな?
分類するとしたら何とおりがいいかな。
特急型 100%
急行型 130%(新快速や阪急6300・京急2100などのオール転換クロスもこれになる)
近郊型 160%
通勤型 200%
の4とおり?
あとplugin.xmlに書くとすると英語にしなきゃなんだけど、
<type>ってのは形式名を書く項目として既に使われているのだよね。
英語でこの「急行型」みたいなのってなんて称するのだろう……
<seatstyle>とか?w
<trainclass>とかふと考えたんですがいかがでしょう?
乗せる乗せない、とか降ろす降ろさない、とか乗り換え降車のあたりを新たに追加するとしたら、 (1):OpenTTD式Load/Unload/Transferオーダーをダイヤ詳細に追加+Unload/Transfer時のIncome計算処理を追加 (2):駅属性に「指定駅からの乗客を下車客として受け入れない」を追加 (3):(1)(2)の組み合わせ+α あたりでそれなりのものが実現出来るかなぁ、と思った。
>>482 OpenTTD知らないので式といわれてもピンとこないなぁ。
なんというか、アルゴリズムで説明できませんか。
FreeTrainと、A3,4,7しかやったことがないと思ってください(苦笑)
> (2):駅属性に「指定駅からの乗客を下車客として受け入れない」を追加
今の乗客属性だと乗った駅は1つしか情報持てないから、そこをなんとかしないと
いけないねぇ。
ArrayListで管理してみたらいいのかなぁ……
処理速度がどうなるだろう。
>>480 素直にプラグイン作成時に(座席数+立席数の2倍)の数字を
プラグイン作者さんが列車の定員<capacity>に書きこむだけにした方が
システム的にシンプルだと思うんですけど…。
また、E217とかE231みたいに近郊型なのか通勤型なのかはっきりしない車両もあるし。
中途半端にセミクロスを撤去してロングシートにした車両とかもあるので、
諸元表でハッキリ数字が記載されている(座席数+立席数の2倍)のほうが
混乱が少ないのでは。
それに(座席数+立席数の2倍)の場合、乗客が最大人数列車に乗った場合、
だいたい
>>480 のイメージに近い混雑率になります。
一応例をあげてみます。
近郊型 クハ111 座席63立席49 立席の2倍乗客が乗った場合の混雑率144%
通勤型 クハE231 座席43立席100 混雑率169%
通勤型 小田急デハ1000 座席38立席72 混雑率165%
6扉車 サハ208 座席使用時 座席30立席125 混雑率180%
(なお座席収納時には立席のみ157)
特急型 クハ481 座席のみ52 混雑率100%(立席が無いので詰め込みようがない)
急行型 クハ165 座席のみ76 混雑率100%(立席が無いことになっている)
新快速 クモハ223 座席44立席88 混雑率166%
快速特急 京急デハ2100 座席50立席61 混雑率145%
>>484 >素直にプラグイン作成時に(座席数+立席数の2倍)の数字を
>プラグイン作者さんが列車の定員<capacity>に書きこむだけにした方が
>システム的にシンプルだと思うんですけど…。
プラグイン作者さんが、おのおの正しく計算して、<capacity>値を入れてくれるなら、
そら「本体のプログラミング」としてはシンプルにできますよ。
シンプルというか、今から何一つ変える必要はないんですから。
なにもしなくていいですね、私。(笑)
ただFreeTrain EX Av全体から見たときのシステムとしては、本体だけでなく
プラグイン作成環境もシステムの一部と呼べるでしょう。
そこであまり複雑な作業をしてもらうわけにはいかないという問題があります。
>諸元表でハッキリ数字が記載されている(座席数+立席数の2倍)のほうが
みんながみんな諸元表持ってる鉄オタなわけじゃないことに気をつけないと。
私だって最新のものは持ってないです。
国鉄が終わるときに出たヤツ持ってるぐらいで。
JRや私鉄の車両はネットで検索するしかない。
今wikipediaで軽く車両を検索してみたら、総定員と座席定員とが分けて記載
するという方針で統一されているようではありますので。
諸元表の手持ちが無くてもplugin.xmlは書けそうですけど。
総定員から座席定員を引いて立席定員を求めてからそれを2倍して座席定員に
足したものを求めてやっとcapacityが書ける……ってめんどくさすぎませんか!?
人が計算しなきゃいけない、という時点でどーかとも思います。
駅の乗客とか定員とか、どうでも良い方向に労力かけすぎだろ。
「なげーよ」って文句言われたので分割して書き込み…… (つづき) それだったら、capacityのほかにseatedcapacityとか項目追加して、座席定員を そこにそのまま書いてもらうとしたほうが、まだしも楽でしょう。 それでも、座席定員を(諸元表かネットかで)調べなきゃいけない、という手間は 今よりかかるのでどうかと思うところです。 「いや、定員はまさか暗記してないだろうからどっちにしても調べなきゃダメじゃん」 という指摘はごもっとも。 >近郊型なのか通勤型なのかはっきりしない車両もあるし。 >中途半端にセミクロスを撤去してロングシートにした車両とかもあるので ありますなーー 今は上野に来なくなった415系なんかも、20m3扉ロングシートになったものも 多かったですね。東海道線の113系にもいたかな。 岡山のキハ40なんかだと、あの両端ドアの間全部ロングシートっていうすさまじい のがいますよ。吉備線とか走ってるの。ローカルな風情も何もあったもんじゃないw でもそんなのどうしようもないと思いますよ。 どこかで割り切らないと。 あなたご推薦のcapacity手計算式にするにしろ、その諸元表にロングシート改造後 が載ってなかったらどうしましょう。 あ、あと<amenity>って車両属性を付け加えて、この数値が高いほどよく客が乗る っていうのはどうかってのも思いついたんだけど。 プラグイン作者が適切な数値を入れるのに悩んで放り出されるかなーと思ったので やめとこうかとか考えてるとこだったりw
>>486 もっと大事なものがあるとおっしゃるなら、それをプログラミングしやすいよう
具体的な内容で提案していただけたら、その内容と実現の容易さ次第では
さくさくと実装してしまうこともありえるのですが。
そういうプラス思考&志向の書き込みが読みたいですね :-)
すくなくとも私は、FreeTrain EX Avが、「『A列車で行こう4』のクローンを目指そう」
という川口さんの意志を受け継いでいくからには、A4程度には会社経営もシミュ
レートしないといけないなーーって考えてます。
プレイヤーが経営するのは鉄道会社なんですから。
鉄道収入の根幹たる列車の定員とか駅の乗降にこだわっておかしくはないでしょう?
今のFT本体を何一ついじらなくても、出回ってる列車プラグインに<fare>と<price>を
適切に書き換えて回るだけでかなりA4ライクな経営シミュにはなれるはずです。
川口さんが初期状態でそういう実装をしてくれてるので。
オープンソースなんだから、拘りたいならプレーヤー自身が
自分の好きなようにcapacityを変更すればいいだろ。
プラグイン作者は今までどおり、各々の基準で定員を決定すればいい。
ちなみに自分の定員決定方法は・・・
車両のサービス定員を調査した上で
その車両が実際に運用される両数で編成を組成したときに、車両諸元と定員が一致するように
各車両(両先頭車、中間車、その他)の乗車定員を振り分ける。
定員と言っても色々種類があるが・・・
http://www.mintetsu.or.jp/knowledge/term/157.html そもそも乗車率100%以上載せたら法令違反だからね。有名無実な法律だが。
>>488 >A4程度には会社経営もシミュ
>レートしないといけないなーーって考えてます。
なら乗客の動きは今のままで問題ないだろ。
ん? ID:tMEW/tAM はNGIDだったかな?? まぁあと一回だけ。 妨害がしつこいようならNG行きで。 >オープンソースなんだから、拘りたいならプレーヤー自身が >自分の好きなようにcapacityを変更すればいいだろ。 プロジェクトとして「こうあるべき」という指針を示したっていいですね。 むしろ、するべきですね。 今まであまりにもしなさすぎでした。 その、どうあるべきという指針を示すべきかという議論を今はしているのですから、 プレイヤーが変更すればいいと言い出すのは議論を理解していないか、議論を じゃましたいかですね。 さて、どちらでしょう? あなたの定員の決め方が特段悪いとは思いませんよ。 自分もおそらくほぼ同じようにplugin.xmlを書くでしょう。 >なら乗客の動きは今のままで問題ないだろ。 べつに、すべてA4の低いレベルにとどまろうとも思っていませんので。 FreeTrainという原型を踏まえて高みを目指せるなら、それがそこそこ容易であるなら、 高みを目指したいですね。 まったくのゼロから新規に組み直す技術と力があれば、FreeTrainに縛られず新規に やったほうがずっと高いところには行けるでしょうけど。 私はFreeTrainのEX Avを預かった者としてFreeTrainの孫を高いところに連れてって あげたい。
いくつか弄ったけど、プラグインの書き換えは意外に面倒だしね。直すのは数行だけど。 まず名が体を表してない大量のフォルダから、直すべきplugin.xmlを探し出し、 特急も通勤車も私鉄までごっちゃになってる、目的は同じだが、作者によって書き方は 全然バラバラで、似たような事がいくつも書いてあるテキストから直す箇所を探す。 で、数字を書き換える、これはテンキーがあるから簡単だね、運がよければ。 運悪く全部の車種一括で定員が設定されてると、直すには全部書き換えないとダメだから アウト、やりゃいいんだけど面倒なのでうちの鉄道は103系が走っていないwww いやなんか無性に藪を突っついて蛇が出てきちゃった、むしろ出てきたのがヤマタノオロチ クラスな気がしないでもないが、結局運賃と同じで方針を示せなかったツケなんだろうが。 でも車種ごとにフォルダを切るとかは勘弁してください。そんなことしたら、これ以上横に 長いフォルダが今の数倍出来る事になるんで。サブフォルダ、漢字を認めればあるいは…。 やっぱいいや。
>>466 >
>>464 >
>そうなってくると、建物の種類も再チェックの必要ありなんですが。
>なにしろ、OfficePopulationの分譲マンションとか、
>ResidentialPopulationのデパートなどがいっぱいあるので…。
ええっと、これ、どなたか手を上げてExcelにまとめてくださるかたいませんか。
おかしなものだけじゃなく、よいものも含め、既存建物プラグインすべてについてです。
非Generic Structureな建物は私がコンバートパッチ書いたはずなんで。
コンバートされてるものについてはコンバート前の古い方は入れなくていいです。
もしコンバート抜かりの建物があったら教えてください。コンバート書きます。
必要な項目は、作者・group・name・類別・現在のPopulationクラス・base・
(CombinationPopulationの場合はその要素全部)・価格・識別子です。
ほかにこの項目もいるんじゃね?ってあったら指摘よろ。
ひとりじゃなくて、3人ぐらいで、甲さん識別子a〜iまで、乙さん識別子j、丙さんk〜zって
手分けしてもらってもいいですし。Excelの雛形を統一してもらって、あとでくっつけられる
ようにさえなってれば。
識別子で手わけすると、たぶんjpだけが突出して多いと思うんで。jだけ1人もつぐらい
でいいんじゃないかなぁ。
あと、A4のゲームバランスで、建物価格がどのぐらいだったか分かる方いますか。
今の建物プラグイン数々の価格設定がどうなってるのか、私も分かってない。
ついでに言うと、建物建てても資金消費しない。資金消費が実装されてないw …はずw
そこも次の次ぐらいでなんとかしたいので。
建設に資金がかかるようにするのの手始めに、建物プラグインの価格を精査しといて、ね。
>>493 サブフォルダはいっちーさんが既にやってますよん。
コメント丁寧に書いてくださってるんで、あるもの見ればサブフォルダのやりかたは
理解できると思います。
自分が次プラグインなにか作るときそれをまねするかっていうと、たぶんしないと思うけど。
めんどくさすぎるし。
自分がしないものは推奨にはしないし、wikiにも正式の書き方として紹介はできません
が、作者さんが個人個人すきずきでサブフォルダ式を使うぶんには禁止するつもりは
ないので。
これから研究熱心な作者さんはサブフォルダに移行していくのかもしれません。
建物ネタもういっちょ。
先日もちらっと書きましたが。
1) 建物のPopulationに平日・土日の差をつけます
2) Populationのクラスを何種類か増やします
旧wikiから転記してきた、今のPopulationはこんなかんじ。
http://www19.atwiki.jp/freetrain-exav/pages/136.html http://www19.atwiki.jp/freetrain-exav/pages/137.html 下の「乗客計算」の時間帯で表になってるほうのが、平日人口になりますので。
これをもとに、住宅・農業・オフィス・飲食店・買い物、の5種類について、土日人口は
どういう分布がいいか提案お待ちしてます。
クラスを増やす方ですが、どんなクラスが欲しいでしょう。
私がいるかな、と思ったのは、酒場(RPGみたいな言い方でスマン)・ホテル・遊園地で、
ほかに先日このスレで、学校もいるんじゃ、って言われた。
今あがってるのはこの4種類。
遊園地と買い物って分ける必要ないのかなーって後で思い始めなくもない感じなんだけど
どうなんだろう。(買い物=ShopperPopulationそのままで遊園地の流動になりうるか?)
欲しいクラスのある方は、クラスの英語名称と日本語名称、どういう人口流動をするのか
できれば具体的に17:00 60 / 18:00 80 / 19:00 70みたいに書いてもらって、なぜ
既存では表現できなくて新規に欲しいのか演説してください。
Populationクラスを増やしたことで、既存建物プラグインでその増やした方に入れるべき
ものがあれば、plugin.xml書き換え配布したいと思ってます。
あ、そーだ。 あとねぇ…… 今のFreeTrain EX Avの駅の集客では、通常のPopulationで記述すると、駅ごとの StationListenerで集計するとき、その駅の降車客から伝播した「地価」との大小判定が ありまして、Populationがでっかくても地価が安いと地価の方で頭おさえられて駅の乗車 客が増えないようになってます。 なんつーのかな? 地価=その駅周辺の栄えっぷりで、栄えてない駅周辺の子会社は 利用率が悪くて客も来ないみたいな感じを「地価」というパラメータを介して表現したん だと思うので。これはこれでいじれないと思うのだけど。 それだと、サッカースタジアムが表現できない、ということに先日気づいて。 地価を判定しないSpecialStationListenerを追加したわけなのですが…… 新規追加Populationクラスの中で、「これは周辺地価に影響されず駅利用を生む」という ものについては、SpecialStationListener利用希望と明記してください。 もちろんそれだけの巨大誘致施設であるということがわかるように。 問題はSpecialStationListener使うと、駅からの半径が20ボクセルに広がっちゃうことかな。 まぁそれも、サッカースタジアムなみの誘引施設であれば問題にならないはずだけど。 StationListenerの駅との距離測定が、左端ボクセルで行われるっていうのは、どう? サッカースタジアムもそうだったんだけど、イトーヨーカドーあたりも、右側に駅を造ったら 駅に客こねーヨw この判定基準、今のままでいいかな??
498 :
460 :2010/04/29(木) 09:40:43 ID:pd2zRh6Z
あ、そうだ。書き忘れたけど460は単位は円でPS版のものね(PCでも変わらんと思うが)。念のため。 で、基礎運賃に付いてもA4(PS)を分析してみたところ、 基礎運賃 = 一両当たり定員 * 速度 * 列車種別 が大体当てはまる模様。 速度の項は低速=1, 中速=2, 高速=3。 列車種別は1, 4/3, 3/2のいずれか。大雑把に特急が係数高く、通勤が低い傾向にあるが、パターンが今一つ見えない。 上記式に当てはまらないのはMTA、HGe4/4。
駅舎建設するときやたら重くなっちゃったんだけど俺だけかな? 手元に残ってるALPHA3004の方では普通に置けるんだけど
>>499 あー それはSpecialStationListenerの副作用ですね。
今までの5倍の面積探索してるんで。5倍重くなってると思います。
以前のでも、ワンテンポ待ったでしょ。
それがファイブテンポ待つことになったと考えてもらえば。
あれねぇ……
デバッグモードでイミディエイトウィンドウ見てると、ものすごい勢いで
SystemExceptionOutOfRangeが発生してるのよね。
これはもとから。
待つのは単に探索してるからではなく、そのOutOfRangeのせいでさらに待たされてる
んじゃないかとにらんでるのだが。
いかんせん自分ではこっから先、手が出せない。
誰か詳しい人がStationListenerの探索のあたり、読み直してくれたらありがたいんだけど。
デバッグモードだと、イミディエイトウィンドウが押し寄せるSystemExceptionを全部
表示し終わるまで次のことできないんで。
無表示で設置が終わる通常モードに比べてさらに10倍ぐらい時間かかるんで。
旧バージョンで1分ぐらい、今バージョンだと5分ちかく何もできずに待ってなきゃいけ
なくて。サッカースタジアムのデバッグするのが苦痛だったわ……
>>498 どうもー
単位円ですか。
円にしては、運行経費(15ボクセルだったか進む度に徴収されてる……実装済み)
が安すぎる気がしたんですが。
fareを適切に書いたプラグインで走らせて収支見ないとわからんかな。
サッカースタジアムの強化費とか経費とかも、1/10円ぐらいのつもりで書いてたので、
単位がはっきり「円(1円)」であると分かればもうちょっと増額しないとバランスとれないかも
しれません。
サッカーチームの強化費が「じゅうまんえん」てことはないもんねぇ。
基礎運賃の分析までしてもらって申し訳ない。
基礎運賃は、A4ベースではあるけど、もう一定独自規定を定めようと決めましたので。
>>492 分析してもらった内容で算定しなおすということはしないつもりです。
そこはA4そのままなぞるのではなく、FreeTrain EX Avとしての独自路線で行こうと。
もちろんその独自路線に対するご意見は今はまだ取り入れられますので。
どなたでもExcelデータを見ていただいた上で、どれはどんな数字の方がこういう理由で
適切だと思うという対案を出していただけたら検討いたします。
ただ、あんまり長くは待てません。
やはり、実際に動く形にして提示しないと、理論だけああこう書いてもつかめないと思う
んですよ。みなさん。なので、決めたfareを書き込んだplugin.xmlを一気配布して、それで
鉄道経営できそうかどうか、プレイしてもらわないとなので。
いつまでも待ってたら先に進めないので。今週中にはplugin.xml書き換えに入りたいです。
>500 x±RENGE,y±RENGE,z±RENGEで探索している(x,y,zはその地点の座標) ここでx,yは大抵の場合端にはないので範囲内であるのが殆どだが、 zの正常な値の範囲は0〜n(階層の値?)なので範囲外になりやすい 単純な範囲チェックするだけで凄く速くなる(自分の環境VCSのDebugModeで数分->数秒) ただzの範囲の定義をハードコードしてしまったので私のソースは使い物にならないでしょう
504 :
482 :2010/04/29(木) 12:39:39 ID:LImOa61d
>>483 駅での乗降処理について、<降ろす>+<乗せる>の命令をダイヤ上の駅ごとに指示するって感じ
<乗せる>
(1)Load if available:列車に積載余裕があれば乗せる
(2)No Loading:一切乗せない
<降ろす>
[1]Unload if accepted :降車駅が下車受け入れ可能であれば降車させる(下車扱い)。不可能な場合降車させない
[2]Unload All :強制的に全て降車させる(降車駅が下車受け入れ可能であれば下車扱い、不可であれば乗り換え客として駅にストック)
[3]Transfer :強制的にすべて降車させる(降車駅の下車受け入れ可否によらず全ての乗客を乗り換え客として駅にストック)
[4]No Unload :一切降車させない
OpenTTDのデフォルトは[1]+(1)。
<ダイヤ指示例>
運転停車 →[4]+[2]
長距離便の出発地側クローズドア →[4]+(1)
区間回送ダイヤ→回送開始駅で[2]+(2)、回送途中駅で運転停車させる場合は適宜[4]+(2)を追加
乗り換え扱いにする場合についてはたしかに乗客属性に手を入れないとならないですね。
(ちょいとOpenTTDのカーゴ属性周りを調べてみますか・・・)
大量の長文書いてる暇あればクメとかエラソーなこと言ってみる。げへ
はっはっはw
>>505 今、あがってきてる要望もほぼこなしてしまってて。
ひとりでコードにできるものってなにもないんだよねw
課題:
fare → 賛成が得られたら大量のplugin.xml書き換えるだけのことで本体いじる必要なし
price → 賛成が得られたら大量のplugin.xml書き換えるだけのことで本体いじる必要なし
capacity → どの方式で行くか(列車の種類を書く?着席定員を書く?)合意と賛成が
得られないことには、それを読み出して計算する本体部分が書けない。
んで本体コード書いてもそれだけじゃ意味なくて、大量のplugin.xmlを(ry
乗客の乗降 → どうするか合意が得られてない
population → 現状把握からしないとなので誰かExcelに(ry
>>503 は今読んで、「あぁ、なるほど!」とひざをうったところなので、また夜にでも
やっつけます。
i=MathMax(0,place.z-RANGE) ; i<MathMin(Z最大,place.z+RANGE); i++
とかでいいんかな。
>>504 ふむふむ。なるほど。
<乗せる>のほうはすでに実装済みなんで、<降ろす>のほうをどうするかですね。
現状、駅の機能として客は全員降りられる(下車受け入れ可能)、かつ、降りた客は周辺に
自動的に散っちゃう仕様なので。
乗り換え・客をストックという概念そのものがないんですよね。もちろんA4にもなかった。
乗り換えとして客を駅から出さずに閉じ込めるというのは、欲しいなーと思わなくもない
んだけど、個人的にはそこまでするんだったら半径一定ボクセル内の他の駅と連結して
それらの駅全体で乗り換え客としてプールしたいかもなぁ〜
FreeTrain EX Avの仕事としてそこまでやっていいものかってのも……
[4]だけならね。最初思いついた「乗車のみ」ってのと一致するんで、それはやってもいいと
思ってるんだけども。
実は505書いた後に「気分悪くして開発やめちゃったらどうしよう」とか思ってた俺ガイル 頑張ってください。
508 :
460 :2010/04/29(木) 13:42:11 ID:pd2zRh6Z
>501
>基礎運賃は、A4ベースではあるけど、もう一定独自規定を定めようと決めましたので。
>>492 >分析してもらった内容で算定しなおすということはしないつもりです。
独自規定にするのはべつに構わんよ。
ただ、過去にはどうなっていたのか、そのメリットデメリットは何なのか、
変更することでどういうメリットがあるのか、何を切り捨てるのか、そこんとこを考えてみて欲しいんよ。
で、それはそれとして。
>たとえば「りんかい線」や東葉高速や北総鉄道。ここらは1.5倍ぐらい高くしてもいいと思う。
これって実は車両のファクターじゃないよね。
提案だが(実現性と細かい数字はとりあえず置いとくとして)
駅の人口を基礎運賃に影響させてみてはどうだろうかと。
もちろん人口が少ない方が基礎運賃が上がる。(が、人口増やした方が利益が大きくなるように調整すべきだろう)
これで新規線や地方線の割高運賃もある程度は表現出来ると思う。
>>492 通勤型電車の基礎運賃¥400はとりあえず妥当だと思います。
「とりあえず」なのは、テストプレイしてみて駅の経費や車両の経費、実装されて無いけど
線路の保線経費とのバランスを微調整する必要もありそうなので。
あと、通勤型の¥400に対し新幹線の\2000やカシオペアの¥3000は高過ぎる気が。
実際の新幹線は運賃の4倍の指定席特急券は徴収して無いので…。
カシオペアスイートといえど、寝台料金は運賃の2倍弱だし…。
最大でも通勤型の3倍の運賃ぐらいまでに抑えた方が。
A4車両の運賃も調べてみましたが、運賃の最高額はA4の¥1120、次点は381系の\1057でした。
最低はキハ40の¥200、次いでキハ82の¥280、415系の¥370でした。
キハの2車種は低速ということもあって例外とすると、運賃の範囲は¥370〜1120となり、
やはり運賃の最高額は最低の3倍までとなります。
通勤・近郊型¥300〜599、特急・急行¥600〜999、カシオペアなど¥1000〜1300くらいで
調整するということでいかがでしょうか。
車両のpriceなんですけど、A4では運賃の7万倍ですが、FreeTrain EX Avでは25万倍でどうでしょうか。
通勤型の運賃を¥400とすると、25万倍でちょうど1億となり、これは現実の車両価格に近くなります。
(参考資料:
ttp://www.geocities.co.jp/MotorCity-Race/2520/nedan.htm )
同様に新幹線の運賃を¥1200としてもらえると、25万倍で3億、これも現実の車両価格に近くなります。
御検討をよろしく。
ところで、貨物列車はどうなりますか。
現状、売り上げの上げようがないから運賃もpriceも無しでもいいのかもしれませんが。
マスコット的に走行させるにせよ、せめて走行にかかる経費ぐらいは貨物列車自身で稼いで欲しいなぁ。
貨物列車は旅客列車とは別に、常に乗客数を固定するようにして運賃収入を稼ぐようにするとか。
なんかいいアイデア無いものでしょうか。
>>496 遊園地は買い物というより、サッカースタジアムや球場・競馬場といった、特殊娯楽施設になるのかな
平日あまり入らず、休日や、特定の日、時間に普段の数倍以上の集客力を出すっていう・・・
逆に、学校は利用者がほぼオフィスとかぶるから、オフィスと同じでもいいんじゃないかとは思ってます
鉄道利用するような高校生・大学生はだいたい6時~8時に通学、5時〜7時に帰宅ですから。
日によっては真昼間に登下校もしますが、会社も同じですし
ホテルはどうでしょうかね、遊園地周りのものや、観光地のホテルなら休日の集客が増えるのでしょうが、
ビジネスホテルは一年通して安定してますから・・・
いっそホテルは2系統にわけちゃうとか
酒場・・・というか、飲酒産業は別系統にしたほうがいいかもしれませんね
昼間に人口流動なくて、夕方から深夜にかけて増えますから、
歓楽街だけ深夜にダイヤ組んで儲けるなんてのもアリでしょうし
>>510 人口のあたりをいじって、人の代わりに貨物(単位はトンでも個数でもなんでも)
で計算するようにするしかないですかね、
それに対応するプラグインとして、工業系や貨物港などの物流系に人口のほかに
貨物生産量と貨物消費量の項目を作らないといけないので、手間はかかりそうですが
工場と物流センター、港と原料生産地(農地含め)あたり弄り直しですかね
人口の少ない農業系に、貨物で稼ぐっていう経営上のメリットを作れるのはおいしいのかな
>>496 Population、追加も必要だけど、既存のモノの平日人口も見直しをした方がいいかも。
例えば、ResidentialPopulationの7:00の60%は少な過ぎに思えます。
田園都市線では8:00よりも混雑しています。
7:00も100%にするか、せめて90%に設定して欲しいです。
またAgriculturalPopulationも、現状ではResidentialPopulationとまったく同じ内容で、使い分けが難しいし。
余談だけど、地表コマンドで設置できる畑にもAgriculturalPopulationで人口設定されてて、
1ボクセルに5人もいます。
家も無いのにどうやって生活しているんだろう…。
まさかマンドラゴラなのかしらんww
ホテル、というか宿泊施設系はResidentialPopulationで設定することで良いかと思います。
レストランや結婚式場併設型ならばRestaurantPopulationも設定することで表現できるのでは。
酒場というか飲酒産業は追加で良さそうですね。
>>497 >新規追加Populationクラスの中で、「これは周辺地価に影響されず駅利用を生む」という
>ものについては、SpecialStationListener利用希望と明記してください。
>もちろんそれだけの巨大誘致施設であるということがわかるように。
考えてみれば、巨大誘致施設であるなら、その存在自体が周辺の地価に影響を与えてくれないと困るような。
サッカースタジアムの他、遊園地とか空港も建設されたことをきっかけにホテルが建ったりと
周辺の発展に影響を与えるワケだし。
いまさらだけど、サッカースタジアム、試合開催中だけ地価が急上昇するとかでも
客の駅利用を再現できたかも。
>>508 >ただ、過去にはどうなっていたのか、そのメリットデメリットは何なのか、
>変更することでどういうメリットがあるのか、何を切り捨てるのか、そこんとこを考えてみて欲しいんよ。
ふむ。もちろん私は考えないといけないことなので。考えます。
今この場を共有しているほかのみなさんにも同じように考えていただく必要があるかな?
それでスレに書き込みをするしないは別として。考えるだけは。
>で、それはそれとして。
>>たとえば「りんかい線」や東葉高速や北総鉄道。ここらは1.5倍ぐらい高くしてもいいと思う。
>これって実は車両のファクターじゃないよね。
やー、それは数値入れる前にテキスト起こして、起こしたテキスト確認しながら数値入れた
んで。ほとんど最初に書いたところなのだけど。
自分でも、「ファクターとしては路線であって車両じゃないけど…… でもこうでもしないと
209系やメトロ05系新とまったくパラメータ同じで色違うだけの車走らせて、鉄道マニアは
納得するかもしれないけど、ゲームとしてどうなんだろう?」っていう思いもありまして。
自分のやってる山手線再現でも、埼京線にりんかい線から70-000が乗り入れて池袋以北
まで直通していくわけで。同じ新宿〜池袋の乗客が乗り合わせた車両がJR205系かりんか
い線70-000かで違う運賃払うわけじゃなし。ってのは気づいてました。もちろん。
だけど、どーしよっかってところで。やめるならやめるで、それはそう決めてもいいことです。
>駅の人口を基礎運賃に影響させてみてはどうだろうかと。
>もちろん人口が少ない方が基礎運賃が上がる。
や、それは危険だと思います。「路線」という線の考えがゲーム内にないので。
どこの駅で列車に押し込められた乗客が、どこをどう連れ回されて最後降ろされるのか、
誰も分かってなく。降りた時点で 基礎運賃×乗客数×乗降駅間の直線距離 が収入に
なるだけなので。無理です。
保有車両の基礎運賃にくっつけるのがダメなら、新規線の割高運賃を再現することは
あきらめます。
そんな複雑に考えんでも。 "乗降駅間の直線距離"ってことは少なくとも乗車駅が確定出来てないとおかしいってことだよな。 で、車両基礎運賃*f1(f2(乗車駅人口,降車駅人口))*客数*距離にして f2はminかmaxかavgか(要するに乗降入れ換えても同じになるように)あたりで、 f1は人口に応じて2.0〜1.0くらい(多分キロ当たり単価の幅はこんなもんかと思う)になる様にすればいいかと思うんだが。。。 # 508で言う"基礎運賃"は車両基礎運賃*f1(...)な。 >ゲームとしてどうなんだろう? うん、でも逆に現状だとどこを見ても朝8時発のカシオペアが環状線をぐるぐる回ることになっちゃうんだよね。ゲームとして見ると。
>>504 このアイデアは素晴らしいです!
何とか実現できないものでしょうか…。
「乗り換え客」の扱いが難しいようであれば、
駅到着時に、その駅の「乗車待ち客数」に加算してしまうのはどうでしょうか。
>>514 >自分でも、「ファクターとしては路線であって車両じゃないけど…… でもこうでもしないと
>209系やメトロ05系新とまったくパラメータ同じで色違うだけの車走らせて、鉄道マニアは
>納得するかもしれないけど、ゲームとしてどうなんだろう?」っていう思いもありまして。
うーん、むしろ鉄道ファンのエンドユーザーが納得しかねるような
運賃パラメータの車両のあるゲームって、ゲームとしてどうなんだろう?って思いますけど…。
鉄道ゲームとしてのA4のリアリティの無さに満足できないからこそ、このプロジェクトを
応援している面もありますので…。
>>516 pluginの属性を自分で変更すれば済む話。
要は、便利にplugin.xmlのパラメータを吸い出してきて変更するツールを作れば良いんだろ?
わざわざXMLという簡単に扱える言語でプラグイン作ってるんだから。
>>515 >少なくとも乗車駅が確定出来てないとおかしいってことだよな。
はい。FreeTrain時点で、Locationクラス使って乗車駅の(x,y)座標を列車が持ってました。
ただこれだと乗車駅を1つしか持てず、今後計画している「乗車のみ」で追加の客が乗り
込んでくるときのことを考えるとできないので、ArrayList使ってどんどん(x,y)座標とそこで
乗り込んだ客をAddしていけばいいんじゃないかと、とりあえず脳内では。
で、そこまでやったとき、んーー。計算しきれるか。
>うん、でも逆に現状だとどこを見ても朝8時発のカシオペアが環状線をぐるぐる回ることになっちゃうんだよね。ゲームとして見ると。
いや、定員があるので。
昼行特急は1両あたり60人ぐらいかな。
カシオペアだと1両あたり20人いましたっけ、あれ。
昼行特急1200・カシオペア3600でも満員乗車なら運賃収入はトントンの計算です。
まぁ実際は走行経費に乗車人数かかってるので、乗車人数少ないカシオペアのほうがちょびっと
収支とると儲かるんですが。
カシオペアをもっと安くしてもべつにいいのですけど、安くしすぎると満員乗車でも全然儲から
ないからカシオペアはやめよーってことになってもいかんなあと。
満員比較でトントンぐらいがいいのではないかな?
あと、priceがfare×7000だったら、fareが3倍高かったらpriceも3倍高くなるんで。
ちゃんとゲームとして成り立ってればモトとるのに必死になるはずですよ。
箱庭だけやってたら関係ないですが。到着駅の周辺自動発展もゲームとして楽しんでもら
えるなら、到着客は多い方が発展も速いので。その点でもカシオペアはおとります。
A4では、AR4のズバ抜けの次に381系が運賃高くて定員多かったので。
私んちのマップでも381系だけが走りまわってました。実際そんなもんです、すみません。
>>509 >A4車両の運賃も調べてみましたが、運賃の最高額はA4の¥1120、次点は381系の\1057でした。
うん、で、A4のときって、スペシャリティな特急列車ってなかったのよね。
新幹線もなかったし。寝台特急もなかったはず。あえていえばAR4がそれか?
というかまともなJR特急車両が381系とキハ82と、その間あったっけか?
381系といえば曲線通過速度だけは速いけど乗り心地は悪く、車内設備は並というもので、
これをFreeTrain EX Avに取り入れるならば(というか381系プラグイン、ありますけど。
3色ぐらい)一番ベーシックな特急となるであろうと。
という考えで、485系とかほとんどの特急が1100になってます。
で、サンダーバードとかはるかとか、ちょっとカッコイイとか高そうな特急が1200。
ここからが私独自の考えで(だってA4にそんな車両なかったんだから)定員が少ないが
特別な価値を持つカシオペア・北斗星・そのほか寝台特急などをどうするか考えたとき、
少ない定員を補うぐらいの収入がないとだめだなと。それが1800/2500/3000です。
ここに通勤型との比較は介入してません。昼行特急のみとの1対1比較です。
ま、寝台列車などは見栄で走らせるものとして大して儲からないfareにしてもいいのです
が、ある程度明確な昼行との差はつけときたいです。
通勤型と大差になっても、特急のなかでバランスとれてればいいと思ってます。
>新幹線の\2000や
新幹線は定員多いし難しいところなんだけど。単純に「fastな特急の2倍速いんだから
fareも2倍」ってやっただけなんで。あんま深く考えてない。
特急×1.1なり1.2ぐらいが適性、という意見が出たらその程度でもいいと思うかも。
>>510 >車両のpriceなんですけど、A4では運賃の7万倍ですが、FreeTrain EX Avでは25万倍でどうでしょうか。
>通勤型の運賃を¥400とすると、25万倍でちょうど1億となり、これは現実の車両価格に近くなります。
ゲーム中の1日や1年間で、列車が走れるゲーム内距離を考えないとおかしくなります。
それはそのまま、運べる乗客数であり、得られる旅客収入になるわけなので。
A4はこの走行距離が現実の1/100ぐらいにちっちゃく、基礎運賃は3倍ぐらい高いので、
なんだかんだで7万倍ぐらいにしとくと現実世界の25万倍に近くなるというよーな考えが
Artdinkにあったんでしょう、たぶんね。
そのA4速度軸をまねたver1,2系統においては、わりかし、そのまま流用しても悪くなさそう
な値じゃないですか。
私としても、速度軸が現実に近くなるPrototype3系統ではpriceの使い方を変えようと
思ってます。といってもplugin.xmlはいじる必要ありません。Prototype3のほうが勝手に
すべての車両を書かれたpriceの3倍の価格にしてしまえばいいのです。
そしたらほぼ現実の金額になりますよね。3速度軸ではそのへんでバランスするかと。
速度軸が60倍違うんで(1秒1ボクセルオプションでプレイした場合)60倍しなきゃかと
思ってたけど。現実の列車の大きく超える変な価格になっちゃうので。それはおかしい
ですね。
>ところで、貨物列車はどうなりますか。
いやー、いたいところを。とりあえずはただの飾り。運転すればするほど金食い虫。
がまんしてください。
貨物輸送の実装も……うーーん、できれば楽しいんでしょうけど。
そもそもFreeTrainとして想定されてないことがらだからどーしたものか。
個人的には見た目に訴えるという意味と、「旅客」という既に鉄道で輸送しているのと
同じものをよりきめ細かく運べるという点で、貨物の鉄道輸送よりはバスによる旅客輸送
を実装したいぐらいかもー
>>511 >遊園地は買い物というより、サッカースタジアムや球場・競馬場といった、特殊娯楽施設になるのかな
>平日あまり入らず、休日や、特定の日、時間に普段の数倍以上の集客力を出すっていう・・・
球場・競馬場(絵ができてくれば)もサッカースタジアムのように別コードのSpecialStationListener
化したい。それは、特定の開催日のみに強力に集客し、それ以外の日はまったく集客しないからです。
一方遊園地は休みなく集客はしますので、そこは違うと思います。
Populationのクラスは、最大値100(単位%)で設定しますので、たとえば休日夕方が最も
帰宅客が多くなるならそこを100とするわけですね。で、その前後を90/80/50となだらかに。
「普段の数倍」ではなく計算を逆転して、平日を休日の数分の1にもってくるわけです。
たとえば平日20時台で25とか。13時台は10とか5とか。
で、baseに設定する値に、休日夕方に帰したい人口にする、と。
>逆に、学校は利用者がほぼオフィスとかぶるから、オフィスと同じでもいいんじゃないかとは思ってます
これは希望された方がおられるので、その方のレスを待って。
>ビジネスホテルは一年通して安定してますから・・・
そっかー、私はわりとレジャーなホテルを考えてましたわ。
変動としては7,8,9:00にばばっと出てきて、あとはすごく少ない、というものを想定。で土日増。
昼間も外出してくるResidentalとはそこが違うような、と思うわけですが。
>>513 >既存のモノの平日人口も見直しをした方がいいかも。
具体的に要望してもらえれば検討しますよー Residentalの朝は他の方の意見を待って採用に。
>またAgriculturalPopulationも、
むむっ。付かなかった…… 土日休むとか、これから土日別あてしたら差を作れるか。
>地表コマンドで設置できる畑にもAgriculturalPopulationで人口設定されてて、1ボクセルに5人もいます。
これは生活してるわけじゃなくて、そこで働いて帰ってくる人なので。Officeと同じ考え。
Populationは全部駅を使って出かける・帰ろうとする人の流れで、住居としてるのはResidentだったか別に
パラメータがあります。
522 :
509 :2010/04/30(金) 02:51:59 ID:6K6UVpGB
>>519 >うん、で、A4のときって、スペシャリティな特急列車ってなかったのよね。
>新幹線もなかったし。寝台特急もなかったはず。あえていえばAR4がそれか?
>というかまともなJR特急車両が381系とキハ82と、その間あったっけか?
A4では新幹線とリニアはスーパープロジェクト扱いでした。
それは除外するとして、A4で登場した高速タイプの特急型をリストアップするとこうなります。
EF6524系(¥720定員160)、251系(¥810定員180)、253系(¥670定員150)
西武5000系(¥900定員200)、近鉄21000系(¥990定員230)、名鉄7000系(¥990定員220)
TGV-A(¥1010定員230)、ICE(¥900定員200)
データ作成に関しArtdinkが実車のアコモデーションを考慮していないのが良く分かります(汗)
リスト中の日本の車両で、一番スペシャリティとおもわれる251系スーパービュー踊り子が¥810。
廃車間際だった西武レッドアローよりも安いという…。
253系N'EXに至っては¥670という有様。¥1500どころの騒ぎじゃないです。
さらに悲惨なことに通勤型の205系の方が¥680と運賃が高いという。定員も205系の方が220名と多く、
同じなのはスピードだけ。
このように、運賃¥1057、定員235を誇る381系がいかに異常な存在であったのかが良く分かります。
なので、A4の381系を基準に運賃を設定するのは問題かと。
基準とするなら、251系の¥810かなぁと私は思います。
381系がこうも高い評価なのは、当時のArtdinkは実車の製造価格から逆算して運賃の設定をしたのでしょう。
振り子車でアルミボディの381系は製造費用が高かったですからね。
でも全体的にArtdink車両のスペックの付け方は滅茶苦茶というかゲーム的に過ぎます。
PC9801版リリース当時も批判されてました。
523 :
509 :2010/04/30(金) 03:50:30 ID:6K6UVpGB
>>519 >ここからが私独自の考えで(だってA4にそんな車両なかったんだから)定員が少ないが
>特別な価値を持つカシオペア・北斗星・そのほか寝台特急などをどうするか考えたとき、
>少ない定員を補うぐらいの収入がないとだめだなと。それが1800/2500/3000です。
実際のところ、カシオペアみたいに1両の定員が20人の車両がペイできる運賃っていくらなんでしょう?
Wikiのコストバランスの計算式を元にちょっと計算してみますた。
経費の方は簡単。1両20人乗車で16マス移動するごとに¥21ですた。
収入の方は…。
1両20人の客が基礎運賃¥400として16マス移動したとすると¥25.6で、とんとん。
基礎運賃¥300だと¥19.2で、赤字。
基礎運賃¥3000なら¥192、こりゃぼろ儲けだww
基礎運賃¥1000で¥64。経費が¥21ですから¥43粗利があります。
ついでにカシオペアスイート定員8人の場合。
経費は16マス進むごとに¥21で変わらないとして…。
基礎運賃¥800で¥20.48、微妙に赤字。
基礎運賃¥1000で¥25.46、とんとん。
基礎運賃¥1200で¥30.72、まぁまぁかなと。
走らせるだけなら、カシオペアでも基礎運賃¥1200ぐらいで車両単体で考えると黒字にはなります。
ところが。
元をとるというか、減価償却的なコトを考えるとトンデモナイことに。
車両のpriceを7万倍にするにせよ25万倍にするにせよ、カシオペアみたいな定員の少ない
車両はどうやっても元が取れません。
何しろ、基礎運賃が高くなればそのまま車両価格も上がってしまうワケですから。
電車の償却期間13年で元を取ろうにも、どうにもなりません。
この辺、調整と検討の必要がありそうです。
そもそもペイする必要があるのかと。 全列車で収益力を同等にする必要はない。
率直に思ったことを言うとそこまで細かいシミュの需要あるのかなと 自分がライトユーザーなだけだからかもしれませんが
>>522 さんくすうぅぅぅ〜
ネットに車両一覧ないか検索してたんだけど、「AR4がオススメです(キリッ」みたいなの
ばかりで困ってた。
> EF6524系(¥720定員160)、251系(¥810定員180)、253系(¥670定員150)
あ、あれ。そんなあったっけ。
381系以外まぢで走らせた記憶ない。
>なので、A4の381系を基準に運賃を設定するのは問題かと。
>基準とするなら、251系の¥810かなぁと私は思います。
なるほど。説得力ありますね。では丸めて800をFreeTrain EX Avにおける251系ほか
ちょっと豪華な特急列車のfareにして。ベーシックな特急は750、新特急登場時は700
ぐらいにしてみましょうか。
東海の373系がちょっと迷ってアコモ的には700だと思うんですけど、最長距離運用は
指定席制快速のムーンライトながらだったという……
>>523 あんまし厳密に「償却」という考え方を持ち込む必要はないと思ってるのだけど。
初期価格を一律70000倍にするんじゃなくて、priceに値を書き込めるわけなので
儲けにくい列車は60000にするとか調整するのは全然かまわないと思います。
そのあたりカシオペア以外でもこれは調整した方がってのがあればあげてください。
あと、今実装されてない「不要列車の売却」なんですけど。
買ったその時点で購入金額の1/2でしか売れない。以降、1年経過ごとに1/3,1/4,1/5...
と1/Yになるのが単純でいいかなって思ってますけど。どうですかね。
13年後には1/14になります。
13年経とうが事故も劣化もなくて廃棄する必要もないものがそんなどんどんやすくなるのか?
>>521 学校は帰宅部で掃除サボり魔の人(誰だ?)は3時過ぎに帰ります。文化部も5時半ごろ
にはたたき出されるし、運動部は遅いですが、暗くなるまで出来るのはナイター設備が
あって成績優秀な部活だけですから、オフィスよりも店じまいは早いかと。
あとは前にも書いたけど、夏休みにはごく一部を除いて来なくなるので、昼前やけに
うるさいと思ったら試験期間だったり、ここまで厳密なやらなくてもいいけど。
529 :
509 :2010/04/30(金) 21:36:23 ID:6K6UVpGB
運賃と車両価格のシミュレーションをしてて思ったんだけど。 よくよく考えてみたら、一番肝心な取り決めがはっきりしていないことに気付いてしまった(汗) wikiにも書かれているけど、 >このテキストを川口さんが書かれた時点では、純粋にA4のクローンを目指しており >ゲーム内金額の価値・桁どりもA4そのままとなっていました。 >FreeTrain EX Avでこれを受け継いだそのままでいいのか、 >それとももっとリアルな「円」価値をつけるのか、議論の余地があると思います。 結局のところ、FreeTrain EX Avでのゲーム中の金額の単位は1単位1円なの? それともA4や旧FreeTrainと同様に1単位1万円なの? これをまず最初に決めておかないと、このあとの経費がらみの議論が混乱するばかりなので。 私としては1単位1円の方が直観的に分かりやすくていいかなと思います。 0の数が増えてしまって表示が長くなる欠点はあるけど。
>>529 「円」でいきましょう。
あれ?A4とFreeTrainて、1万円だったんですか?
じゃあ列車運行経費とかもx10000しないとダメってことですかね。
>>530 >「円」でいきましょう。
ではそれを前提に改善要望させてもらいますw
>あれ?A4とFreeTrainて、1万円だったんですか?
FTはあいまいみたいですがA4ではそうです。
…自分でカキコしていてアレですが、16ボクセル電車が走行して経費が21円というのは安過ぎますよねw
>じゃあ列車運行経費とかもx10000しないとダメってことですかね。
そうなりますね。
駅の経費や運賃もx10000で修正をお願いすることになります。
あと、初期の資本金もx10000にしないとあっという間に倒産しますよ。
現状だと資本金1500万円になってしまう…。
休みに入ってえらいスレが伸びてると思ったら、またチラ裏ばかりか。 1ヶ月後にまた来るわ、さようなら。
ビルドしようとしてもFreeTrain.Core.dllが無いって言われてできん・・ この程度のことが出来ない俺はソースに触れるべきではないのか・・
ないと言われたならぶち込めばいいじゃない
とCすら扱えず、プラグインしか作れない俺が言ってみる
大学の勉強が中学レベルからおさらいしてるから今のうちにCの本買って勉強始めたぜ
>>531 というか、実際のところ鉄道会社の資本金ってどの程度なんですかね
阪急電鉄の資本金が1億かと思えば、京成が368億だったりマチマチですし
以下チラ裏
3年前に公開した財閥ビル差し替えしました
オーバーライド対応化と、画像256色圧縮、ID様式修正、ジェネラル対応
何もできなかったころに比べて多少成長したなぁ・・・たぶん
港湾施設充実させたいからGW中にトランスファーテナーとか作るかもしらん
モガミは大学何年? 俺は公務員志望の3年
536 :
531 :2010/05/01(土) 20:29:09 ID:ZGRQaWph
>>534 >というか、実際のところ鉄道会社の資本金ってどの程度なんですかね
>阪急電鉄の資本金が1億かと思えば、京成が368億だったりマチマチですし
阪急の場合は持ち株会社制度になっているので、鉄道会社よりもその鉄道会社の株を保有している
持ち株会社の阪急阪神ホールディングスに資本金が集まっています。
ちなみに阪急阪神HDの資本金は994億円ちょっと。
まぁ、FreeTrain EX Avのゲーム初期の資金を資本金と呼んでよいのか私も分からないんですが…。
fareは
>>526 なかんじでいいんでしょうか。
新特急700・ベーシックな特急750・高級げな特急800だと。
成田エクスプレス900・寝台特急1100・北斗星1400・カシオペア2000ぐらいにしたいんだけど。
あと客車時代の〔つばめ〕も1000かな。
あとは近郊型500で
Gつき近郊型550。
有料急行600、寝台急行850。
>>500 >>503 駅建設が遅くなってる件。
Distance r_start = new Distance( REACH_RANGE, REACH_RANGE,
baseLocation.z - Math.Max(0, baseLocation.z-REACH_RANGE) );
Distance r_end = new Distance( REACH_RANGE, REACH_RANGE,
Math.Min(World.world.size.z, baseLocation.z+REACH_RANGE) - baseLocation.z );
Distance spr_start = new Distance( REACH_RANGE*2, REACH_RANGE*2,
baseLocation.z - Math.Max(0, baseLocation.z-REACH_RANGE*2) );
Distance spr_end = new Distance( REACH_RANGE*2, REACH_RANGE*2,
Math.Min(World.world.size.z, baseLocation.z+REACH_RANGE*2) - baseLocation.z );
// advertise listeners in the neighborhood that a new station is available
foreach( Entity e in Cube.createInclusive( baseLocation-r_start, baseLocation+r_end ).getEntities() ) {
StationListener l = (StationListener)e.queryInterface(typeof(StationListener));
if( l!=null )
l.advertiseStation(this);
}
foreach( Entity e in Cube.createInclusive( baseLocation-spr_start, baseLocation+spr_end ).getEntities() ) {
SpecialStationListener sl = (SpecialStationListener)e.queryInterface(typeof(SpecialStationListener));
if( sl!=null )
sl.advertiseStation(this);
}
これでいいかな?
β2・α3ともに、末尾.11があがってたら、この改善をほどこしたものになってます。
今、ソース見てたんだけどさぁ。 core\contributions\train\AbstractTrainContributionImpl.cs で、 冒頭のplugin.xml解釈のところでfareが解釈されておらず、 一番最後で public readonly int _fare = 600; // TODO public override int fare { get { return _fare; } } って、すべての列車のfareが600になってる気がするの自分だけ?w これ冒頭のparseしてるところにfare仕込めばいいのかなぁ。
>>518 >>515 >>少なくとも乗車駅が確定出来てないとおかしいってことだよな。
>はい。FreeTrain時点で、Locationクラス使って乗車駅の(x,y)座標を列車が持ってました。
今、Train.cs見てたら微妙に違うことを発見したので備忘録。
Trainクラスが持ってるのは、乗車駅の座標ではありません。
客が乗車したときの先頭車両の(x,y)座標でした。
これから作るソースや変更するソースには日本語でコメント入れてほしいと思う。
は?
コメントの事話しているのが判らないとか・・・ それに変数に日本語って
1行2行の文字で完全な意思の疎通は無理だろうし、そう言い方はやめようぜ
でもその1行2行も穴があくほどよく読んでおこうぜ
ちゃんと読めば変更点に日本語で脚注つけておけって意味にしか取れないんだぜ。たぶん。
さて本題。プラグイン作ってて思ったんだけど、
鉄道用の12フィートコンテナと船用の20、40フィートコンテナはサイズからして新しく作ったほうがいいかね
そこまでこだわる奴なんて居ないって決め打って全部12フィート規格で統一すると楽だけど
>>535 大東亜帝国の一期生です。滑り止めだったけど物流学べるから案外正解だった
鉄道じゃなくて船なのが惜しいけど。
公務員採用枠半減らしいけど、来年はもう少しマシになるのかねぇ・・・
>>542 >長さ15ボクセルぐらいの単線作って、485系3両編成走らせて片方にサッカースタジアム
>建てたら、6月にはもう単月度黒字になったのでちと儲かりすぎかも。
485系のfareが\750なら、現状だと1両に9人、3両編成だから27人以上乗客がいれば、
列車単体では黒字が出ます。
もちろん、鉄道全体で見ると別途で駅の経費とかもあるけど、駅舎2つ、5ボクセルホーム2本で
経費が1日36万円だから、485系3両が34人の乗客を乗せて1日に16ボクセル走ればペイします。
現実の特急だと、1両9人の乗車ではペイするどころか廃止対象にされそう…。
葬式厨が乗る以前のブルトレの乗車人数みたいです。
もう少し全体的に運賃を下げて、もっと人数が乗らないとペイしないように
調整しないとゲームバランス的にヌルいかも。でもヌルい方が箱庭派にはいいのかな?
あるいは、実装されている車両経費の方が安すぎるのかもしれません。
車両経費のサンプルが高性能のAR4だったことも影響しているのでしょうけど。
経費の方を調整するのなら、現状の2倍、16マス移動につき400000x車両数+乗客数/0.001、かな?
自分も過去、列車プラグインを見よう見まねで先輩方のこぴぺで作ってきたもんで
人のことは言えないのだが。
freetrain.contributions.train.ReverseTrainCarImplで逆向き車両を定義したときは、
<sprite>タグと<capacity>タグ及び本日追加中<seatedcapacity>タグは不要です。
というか、もし書いても読んでもらえてません。
まぎらわしいので、既存の重複タグは削除していってます。
もしも、「見た目はあっち向きとこっち向きとまったく同じひっくりかえってるなんだけど、
定員が違うとか(片方はグリーン車なんだとか)どーしても<capacity>類を違えて定義
したいとき」は、手動で絵のほうを上下ひっくり返して逆向きを作った上で、
freetrain.contributions.train.AsymTrainCarImplで新規定義しないとダメぽいです。
>>549 列車の走行経費は、もとが15マス移動につき〜〜計算だったのを、わざわざ15マス
走らせるのもあれなんで3マス移動につき〜〜計算に縮めてます。
その3マスごとに計上してるのはこれ
(length*20+(passenger/20))*2000
40000x車両数+乗客数x1000ですね。
もっとガンガン乗客乗るようになったときどうなるかとか、fareの小さい通勤列車で
どうなるかとか、やってみないと分かりません。
551 :
549 :2010/05/03(月) 04:23:05 ID:0aMOHBVL
>>550 > 列車の走行経費は、もとが15マス移動につき〜〜計算だったのを、わざわざ15マス
> 走らせるのもあれなんで3マス移動につき〜〜計算に縮めてます。
了解しました。
お手すきの時にWikiのコストバランスの記事を直していただけるとありがたいです…。
> その3マスごとに計上してるのはこれ
> (length*20+(passenger/20))*2000
> 40000x車両数+乗客数x1000ですね。
(passenger/20)*2000だと乗客数x100ではないかと思うのですが。
ところで。
車両プラグインをXMLエディタで眺めていて、ふと思ったのですが。
先頭車とかグリーン車とかの車両別にcapacityを設定することができるのなら、
fareも車両別に設定することができれば、グリーン車だけ別料金とか、
ロネとハネで寝台料金が違うとかが表現できて、
プラグインを作りこみたい人にはいいかも。
…余計面倒になるだけかもしれないけど(汗)
書き換えたplugin.xmlのデバッグしてたら、なんか不思議なことに気がついた。
ぐぐってもぐぐっても、113系にN40体質改善して転換クロスシートにとっかえられた
後の定員も座席定員もでてこないもんで。
むぅ〜と思って。
223系1000番台の数字入れたらいいだろうかと、入れてみた。
ぐぐったら、
先頭車 134(64) または 130(56)
中間車 145(72)
とのこと。
そしたら。
更新前のノーマルぼろぼろ113系より定員増えちゃった。
Why???
更新前の数字は、wikipediaから
http://ja.wikipedia.org/wiki/%E5%9B%BD%E9%89%84113%E7%B3%BB%E9%9B%BB%E8%BB%8A 座席63(クロス36・ロング27)・立席49(先頭車) →112(63)
座席76(クロス48・ロング28)・立席52(中間車) →128(76)
たしかにこれだと定員増えるんだよね。
いいのかな、これで……
ちなみに、2扉転換クロス(117系互換)な広島地区の115系3000番台シティライナー
だと、がっくり定員減った。これは納得なのだが。
>>551 直すっていうか、ver1は旧来のままのバランスを残したいと思ってるので
今あるページはそのままver1の解説ということになるでしょうね。
プラグイン整理が終わってβ公式リリースできたら、それにあわせてver2系統の
コストバランスとしてコピー&リライトで新ページを作らにゃならんなとは思ってます。
trainコントリビューション・trainCarコントリビューションも書式新しくなってるので。
そのへんのページも「ver2以降はこうなりました」ページを作らねば。
既存プラグインの改修より先に、新plugin書式先に渡してほしいってかたいます?
いれば優先度変えますけど。
まぁver1として残すといっても、プラグインにfareも書かれてなくて600決め打ちなんじゃ
どうしたもんやらってかんじですが>ver1
ver2向けに書いたplugin.xmlをコンバートしつつ読み込めるようにするのもなぁ……
>乗客数x100ではないかと思うのですが
あ、そうですね。式の方はソースからこぴぺしてるんで間違ってないです。
>先頭車とかグリーン車とかの車両別にcapacityを設定することができるのなら、
>fareも車両別に設定することができれば、グリーン車だけ別料金とか、
プログラミングとして可能か不可能かと言われれば可能ですがw
いやぁーーーーー、それについてこられるプラグイン作者さんがたがいないと
FreeTrain界って成り立ちませんので。
ゲームバランスを丁寧にとれるfareを複数設定するのってすんごい大変だと
思いますよ。
あと、仮にそうしたらば運賃の儲けを計算するのにふんふんふんと考えてたら、
乗車率というか実客数ですね、これも1両ずつ持たないといけない気がしてきましたw
今は列車全体どんぶり勘定です。
車両は「定員」は持ってるけど(新規定では+座席定員)、今時点乗客数は持ってないのです。
2の最新版が出てたからアップデートするかと思って入れてみた。 サッカースタジアムに客が前は1万人後半入ってたけど、急に5000人しか来なくなった。 あまりに客が少なくなったので臨時列車には誰も乗らないし。何があったんだ? そういえばアップデートする時ってどうするんだ?本体のEXEは上書きするのはそうだが、 大量にあるプラグインをいちいち調べるのムチャクチャ大変で、バージョンアップの際に プラグインまでいじってると、こっちの旧版からコピーすると古いので上書きする事になるし。
何回言ってもチラ裏は書くのか。 もう、ここFreeTrain専用スレにしとけ。 鉄道系ゲームは別スレ立てるから。
FreeTrain以外語るゲームあんのかよ 単独だと過疎るからこのままでいいだろ
チラ裏の人か 1ヶ月後にまた来ると言ってたくせに再登場が早いな
小暮さんみたいなものだな。 何も解決しないけど。
>>552 > ぐぐってもぐぐっても、113系にN40体質改善して転換クロスシートにとっかえられた
> 後の定員も座席定員もでてこないもんで。
N40延命化工事をして塗装が変わったからといって、必ずしも転換クロスに
とっかえられたワケでは無くて、固定クロスのままの車両もありました。
というか、転換クロスになったのはその後の40N体質改善工事だったような…。
N40と40N、紛らわしいですよね。
> 更新前の数字は、wikipediaから
>
http://ja.wikipedia.org/wiki/%E5%9B%BD%E9%89%84113%E7%B3%BB%E9%9B%BB%E8%BB%8A > 座席63(クロス36・ロング27)・立席49(先頭車) →112(63)
> 座席76(クロス48・ロング28)・立席52(中間車) →128(76)
wikipediaに40N体質改善工事車の数字もありましたよ。
132(44)(トイレ付き先頭車)
132(50)(トイレ無し先頭車)
140(56)(中間車)
座席が減った分、立席が増えてトータルの定員が増えてますね。
>>560 あ?あれ??
ゴメン。
その数字、plugin.xmlに入ってた。
既にwikipediaから持って来てたんだろうか。
数字を見すぎて自分でだんだんわけがわからなくなってきている(汗
>座席が減った分、立席が増えてトータルの定員が増えてますね。
うーん……
ロングシート改造で座席が減ったのなら立席が増えるのは納得行くのですが、
40N?改造で転換クロスになったら逆にもともとロングシートだった立席空間まで
座席に食われてしまうので、立席は減ると思ってたのですが……
まぁ数字として間違ってないのならこれでいいでしょうか。
あといくつか通勤車でも座席定員不明なものがあるのですが。
もう分からないものは先頭48・中間54とかにしてしまってます。
562 :
名前は開発中のものです。 :2010/05/03(月) 22:24:42 ID:uvGiREO9
>>562 きれいな街ですね。
もしよければ、wikiに「スクリーンショット」コーナーを作って、そこに掲示させて
もらいたいのですが、いかがでしょうか。
P.S.
列車プラグインとあわせて建物プラグインのpriceもチェックしているのですが、
priceが1円単位だと考えると「どう考えても分譲マンション1棟が2500万じゃ建たん
よなぁー、1部屋の値段だよなぁー」と思うようなことが多かったので、
そのつど内容によってx10000ではなくx100000したり、x50000したりしてます。
price設定などを変えたらゲーム性に大きく影響するということで、 ソースコードに現時点のβ最終バージョン2.0.2.11でブランチ切りました。 現状、プラグインもver2対応記述したplugin.xmlじゃないと読めないし。 今後、本体trunkのほうは、x10000 priceのソースになります。 で、ちと困ったのがブランチの中に過去に分けたブランチのソースまで 含まれてしまうこと。 以前にもRelease1.0とALPHA3とにブランチ分けておいたのですが、 さきほどBeta2.0.2.11というブランチを切ったら、 Beta2.0.2.11のなかにもういっこずつ、Release1.0とALPHA3とができて しまいました。 うーーーん…… ALPHA3は3.0.1.11で保存したかったからそれはそれでいいんだけど、 ALPHA3の中にもRelease1.0があるし、あっちにもこっちにもRelease1.0 があってじゃまにならんかなぁ。 これ、系統立てて整理するにはどうしたらいいんだろう???
バカなのにSubversionなんか使うからwww 理解できないのなら、ZIPで圧縮して登録だけしとけばいいのに。
費用に関しては、普通にpluginのほうを書き換えるって手もあるんだけどねぇ 作者さん行方不明になってるのも多いから論外ですけど 以下チラ裏素人意見 Beta2.0.2.11 ├Release1.0 └ALPHA3 └Release1.0 ってことだと思うんだけど、 これ同一ファイル内じゃないと読めこめないって類ならこのままにするしかないような希ガス
├trunk ←最新ソース一式
├Release1.0
| └trunk ←Release1.0のソース一式
├ALPHA3
| └trunk ←ALPHA3.0のソース一式
└Beta2.0.2.11
├trunk ←2.0.2.11時点のソース一式
├Release1.0 ←いらない
| └trunk ←いらない
└ALPHA3 ←いらない
├trunk ←いらない
└Release1.0 ←いらない
└trunk ←いらない
みたいなかんじ……
「trunk」中でひとまとまりになってるので、trunkの外はどうでも動かしても消しても
大丈夫なんだが。
自分がプロジェクトに加わった時点ではブランチ切られてなくて、ルートにぽんと
trunkがある状態だったんでにゃんとも……
>>565 解決策も示さずにバカって言うやつが本物のバカなんだぜw
解決策? Subversionの使い方でもぐぐってこいよ、おバカさんwww 面倒だったら、一度全部消して最初からソース再登録して整理すれば? だいたい自分が知識ないのにバカにされたら顔真っ赤にして 「バカって言うやつが本物のバカなんだぜw」ってw もうちょっとC#とかSubversionとか自分で勉強した方がいいんじゃないの? スレ見てると書込みも子供っぽいし、中学生か?w
>>567 相手するなよ
どうせGWに沸いてきた中学生だよ
plugin.xml修正するのに疲れたので気分転換になるかと思ったが。
なんだ、あまりにもパターンどおりすぎて全然気分転換にならん。
>>568 なにひとつ予想から外れた答えがかえってこないし。
手のひらの上で踊るというのはこういうことをいうのか。
ヒマなら建物プラグインの現状をExcelにまとめる作業でも手伝えばいいのに。
それをやるとも言い出さない。
まさかExcel使った事ないなんてことは……
571 :
535 :2010/05/04(火) 11:35:02 ID:kPrwOtP7
>>548 回答THX。
大東亜帝国ってことはEランか・・・・・。こっちはCラン。
モガミは一年生だからまだ大丈夫だと思うけど、コネとか無いならバイトとサークルとゼミのうち2つは最低やっとけよ。
マジでプログラミングにばっかり精出してると、言っちゃ悪いが大東亜レベルでは就職きつくなるぞ。
お互い頑張ろう。
>>571 ご忠告どうも。一応親のコネとかはあるけど、どうなるかわかんね
まぁ、資格とか人脈とか、社会勉強を早いうちからやる必要はあると思ってます
お互いご武運を(?)
しかしプログラム本読んでも全然ワカンネ/(^p^)\やっぱり実際に組まないと理解できそうにないや
>>570 発言の支離滅裂さとか、どう見ても構ってちゃんだから無視しようぜ
時にまとめる項目は「hight数」「値段」「人口」「建物種別」くらいでおk?
あと高さ可変のプラグインは人口変動するけど、最高人口でいいのかな
デバッグ及びバランス調整チェックよろしくお願いします! 【2.0.2.11 -> 2.0.3.1 変更箇所】 ・資金の単位を「1円」単位にした ・資金の出入にかかわるすべての箇所を10000倍にした(ベースとなっていたA4が1通貨単位10,000円だったため) ・列車プラグインに必須パラメータseatedcapacity・fare・amenityを追加。 パラメータが不足するプラグインはエラーとなります。 ・同時公開 β2.0.3.1以降『Ver2向け』Additional Plugin Set 一式、SourceForge.jpに登録済みです。 なお、α3系統の『Ver2』プラグイン対応は、もうちょっと時間かかるかと思います。
そうか、じゃあ頑張れよ!
>>573 建物のデータをまとめるのは、ベースのExcelシートをうpしておきました。
http://u4.getuploader.com/freetrain/download/65/%E5%BB%BA%E7%89%A9%E3%83%87%E3%83%BC%E3%82%BF%E4%BE%A1%E6%A0%BC.zip 「V2」Additional Plugin Setを使って、これに含まれている建物を調べていってください。
commercialなもの、VerHightなものは調べる必要はありません。
そのかわり、それらはGenericStructureへのコンバートパッチが書かれているはずなので、
コンバート後のものを調査対象にしてください。
もしコンバートが忘れられているcommercialなもの、VerHightなものがあれば教えてください。
Excelシートに列を作ってありますが、調べる項目は
修正の必要アリか(アリなら何を直すべきか記入する。必要なしなら空欄)
作者・グループ名・建物名
基本類別
サイズ(x,y)
高さ (可変の場合は5〜10みたいに記入)
price
人口クラス(複合クラスの場合は、右にその2・その3と列を作ってあるので、2以降に内訳を)
そのクラスのbase
識別子
もしあれば備考
…の12点になります。
修正の必要性は、priceがあまりにおかしなもの、人口クラスが設定されてないもの、
オフィスなのにResidentalクラスだったりクラスの指定がおかしなもの、などです。
どこを直すべきかを1列目に記入してください。
サンプルでは×が入ってますが、×ではなく直すべき点記入に変更しましょう。
なお、このVer2プラグインでの建物priceは、現実価格の1/3が目安になります。
3億円のビルであれば1億円を記入します。
(Ver2の時間軸では稼げる速度が現実時間の1/3なため)
なんか急にしーーんとしちゃったねw 自前でしばし動かしてみて、問題ありそうだったのでいじりました。 【2.0.3.1 -> 2.0.3.2 変更箇所】 ・自動発展アルゴリズム内で、地価と建設候補の比較に地価直接ではなく地価*10000を用いるように変更 (通貨単位変更による影響で自動発展がしにくくなっていたため) ・売上レポートで使用している「3桁カンマ区切り」を生成する関数の修正 今、売上レポート内に「グラフ」ってメニューあるんだけど、実装されてない。 バランスシートも実装されてない。 ngsさん、売上グラフとかバランスシートを描けるようにできない?
>>579 ひとりじゃ大変だと思うから、何人かで手分けした方がいいと思います。
半ボクセル建築は私がまとめようかな。
プラグインと本体バージョンの関係性はどう整理したらいいかなぁ。
とりあえず、PluginSet配布の場面では『Ver1向け』『Ver2向け』と称してみましたが。
本体バージョンが2.0.0.1〜2.0.2.11の間で使えるのは『Ver1向け』というねじれ現象が
起きているので、なんというか。
かといってほかに適当な呼称も思いつかず。
なにかうまいアイディアないでしょうか。
あと、2.0.3.2で街の発展と乗客の関係をじっくり眺めてたら、
>>482 以前で話題に出してた「乗客をおろさない」というやつをやっぱりやりたく
なってきてしまいましたわ。
準備工事だけやっとくかなぁ。
でも準備工事やると、有用性を確認するためにいじくりたくなるんだよなぁw
とりあえずプラグインにバージョンタグをつける提案をしてみる。 となると、例えば今回のような倍がけする事例がおきた時は、そのタグ見て新Verならそのまま 読み込み、旧Verなら、変換処理をして読み込むってやれば、変更があった時に、大量にある プラグイン一気同時に手を入れなくて済むからとりあえずラクチン・・・ まあ変換処理をどうするとか、結局最後は全部見直す羽目にはなるんだが。
ちょっと分からないことがあったので教えてください。 core\world\accounting\TrainsactionHistory.csや、 サッカースタジアムのタイマー設定など「0:00AM」ぴったりになにかさせたいというときに、 internal Recorder() { // align the clock to 0:00am clock.registerRepeated( new ClockHandler(onClock), TimeLength.fromMinutes( TimeLength.ONEDAY.totalMinutes-(clock.totalMinutes%TimeLength.ONEDAY.totalMinutes)), TimeLength.ONEDAY ); } というやり方でタイマーをしかけています。 しかしこれが0:00AMにしかけられません。 この演算式で時間変数を使った結果は8:00AMになります。 なぜでしょう??? また、0:00AMにするにはどうしたらいいんでしょう。
>582 基準時刻が4/1の8:00(ゲームの開始時刻)になってるから。 Time.csで START_TIME = (31+28+31)*DAY+8*HOUR; Clock.csで// Initialize the value to April, 1st 8:00 AM. public Clock() : base(START_TIME) {} だね。だから 現在時刻が0時〜8時 → 初回待ち時間を+16Hする それ以外 → 初回待ち時間を-8Hする で出来るはず。境界値は自分でチェックしれ。
っと、実際のコードでは当然+16H/-8Hと境界はSTART_TIMEから計算で出すようにな。
totalMinutes==0のときAM8:00だから Timelength.untilTomorrowを使ってみては
>>583 あーー!!
そこんところがやっと理解できました。
そっかー。
totalMinutes { get { return currentTime-START_TIME; } }
の演算結果はそうなっちゃうわけか!
でも、こんなこと川口さんなんで気づいてなかったんだろう。
サッカースタジアムでもTransactionでも、「0:00」チェンジのつもりでそういう
コメントつけてて、むぅー
次で直します。
ただ既存セーブデータはタイマーが既にしかかってるため従来通りが続く
かと思います。
>>585 そっちのほうが簡単そうですね。
本体β2と、V2プラグインセットを更新しました。 本体 【2.0.3.2 -> 2.0.3.3 変更箇所】 ・駅の新規乗車で乗車率が単純に0.3倍固定ではなく列車のamenity数値もかけるように変更 ・組み込み建物pluginがVER2形式でなかったので修正 ・「売上レポート」の繰越処理が08:00AMに行われていたものを00:00AMに変更 プラグインセット 2010年05月05日版 version 2.0.0.2 ・しのさん貸しビル(3x3)の価格修正 ・ジャガイモさんタワーパーキング(連結)の価格修正
要望 脱線事故が発生するようにしてください
脱線事故は不謹慎かもしれないが、なんか定期的に工場に入場させないと車両故障が 起こるゲームならあったような。 確かに一度ダイヤを設定すると、10年以上そのまま、ヘタすると車庫にも入らない 状態を不自然といえばそうなるが…面倒くさくね?
鉄道会社の運用シミュ組んでるわけじゃないんだから そこまでやらなくともね B1フロアの天井(つまり地表)を部分的に取り除けるようなのができるといいな 今ので吹き抜けっぽいの作るとしたら1Fの周りにいちいち山盛っていかないといけないし
>>570 >なんだ、あまりにもパターンどおりすぎて全然気分転換にならん。
>>568 >なにひとつ予想から外れた答えがかえってこないし。
>手のひらの上で踊るというのはこういうことをいうのか。
笑わせるwww
ねぇねぇ、自分にC#とかSubversionの知識がないということ自覚してる?
それで
>>564 のようなレスしていたら、バカにされてもしょうがねーだろ?
ちっとは自分で調べて解決しろよ。
で、苦しまぎれに
>ヒマなら建物プラグインの現状をExcelにまとめる作業でも手伝えばいいのに。
なに、この反論?
ごまかしてんの?
自分はC#もSubversionの使い方もわからんので、誰か教えてくださいとか言ってみれば?w
つうか解決策で
>ZIPで圧縮して登録だけしとけば
とか
>一度全部消して最初からソース再登録して整理
とか言ってるのだけどそれは無視ですか?www
>>573 モガミは学生だから、あの程度の日本語も理解できないのだね。
あの文章で支離滅裂ってw
おまえはこんなスレで常駐してないで、学生なんだからちゃんと勉強してろよ。
あ、あれ?
「売上レポート」の繰越処理うまくいってないかなぁ。
一度テストして「0:00でいった」と確認してリリースしたのだが、その後新規に
発展様子見てたら8:00になってた。あっれー?
>>588 ごめんなさい。その要望は実現出来ません。
>>589 走行距離ウン万kmで追加経費かかるとかならできるかもしんないけどべつに
そこまでしなくてもいいんじゃないかねぇ。
入場まで実装はしません。やるとして勝手に金引き落とされてるまでです。
>>590 地表の掘り下げは非常にめんどくさい感じがします。
まわりをもりあげてもらったほうがいいような。
「地形一括操作」だったら矩形で1レベルあげれるから、それでなんとかしてーー
>>591 一日以上たってから長文反論とか顔真っ赤すぎて恥ずかしいしw
>つうか解決策で
あなたに「安全なバージョン管理」についての見識が欠如してることは分かります。
Subversionがなにするためのソフトか理解してないんだね。
>>592 だから 無 視 し ろ と
>>589 でもよく考えると車両って10年もしないうちに代わるんですよねぇ
A列車シリーズじゃ、性質上あまりやらないけど
どこまで経営を現実に似せるかは考えないで、部分部分だけ似せる方向でいいような希ガス
>>593 >でもよく考えると車両って10年もしないうちに代わるんですよねぇ
そうかなぁー
『あの』209系にしたって、不調な初期車は廃車になったけど、まだ
大丈夫なやつは房総にまわされることになって、結局30年ぐらいは
使いそうだし。
205系は山手線からあっちこっちに先頭車改造などもされつつまだまだ
使われそうだし。
今のVER2向けに列車プラグインを書き換えて本体も改造してってしてた
とき、ふと
「列車に、同じ列車の改造・塗り替えの世代情報をplugin.xmlに持たせて、
塗り替えだと格安で買い替え可能、改造だと新規購入より安く買い替え可能、
なんてことできるだろうか」
と妄想したんですけど。
そこまでめんどくさいもの実装しても誰得だと思ったのでしませんでした。
「売上レポート」の繰越処理は、内部処理はされてるんだけど表示のアップデート
がかからないために表示上の変化が見えてないというような気もしてきた。
いやんだなぁ。
VER2のコストバランスですが、線路ひく経費が10000倍だとかかりすぎる気がしたので
次リリースで4000倍にしてみようと思いますが。
またもうちょっと様子見ていじります。
代わるかどうかは微妙だけど、FTの場合は何もない所に路線を引くわけだから、 最初は短い編成で、客が増えると中間車を組み込んで編成が長くなっていき、 これはFTでは出来ないので買い換える事になるわけですが、これを10年で代わると 言っていいのかどうか。 実物ではこの後先頭車がボロくなって置き換える時、当然後から追加した中間車は 新しいわけですから、それを抜き取って組み合わせてどっかから先頭車を調達して・・・。 他にも2つくっつけて真ん中の運転台を取っ払って1つの編成にしちゃう会社もありますな。
>>592 おまえも相当恥ずかしいわ。
>あなたに「安全なバージョン管理」についての見識が欠如してることは分かります。
>Subversionがなにするためのソフトか理解してないんだね。
それぐらい知っているよ。
けど君には使いこなせないのだろ?
だからZIPで固めてあげれば?と言っただけ。
つまり君のレベルに合わせて言ってやってんだけど?
自分の知識レベルが低いことを他人に指摘されて、それで顔真っ赤にしてるのはどちらかな?w
マジレスすると、Subversionでバージョン管理するのは正しいことだし、そうするべきだと思う。
けど、あなたには理解できてないのでしょ?
となるとやれることは
1.なんとか勉強して使えるようにする
2.使いこなせないのでSubversionの利用を諦める
しかない。
けど自分で発言している通り、Subversionでやるべきだと自分でも理解しているのでしょ?
だったら、このスレにレスつけてないでさっさとSubversionの本買って読むなり、ググってそういうサイト
で使い方覚えるなり、やることあるだろ?
で、俺に言われて、自分で勉強して前にあげていたSubversionの問題は解決したの?
俺にgdgdレスつける前に、開発リーダーだと自分で名乗っているのなら自力で解決しようね。
>>596 あはは、言い負けて悔しいんだね。
わかる、わかるよその悔しさ。
涙拭けよ。
ここはム板でもマ板でもなく、ゲーム開発板なんだよね。
口先だけで何も生み出さないヤツの言う事に耳を貸す暇人はいない。
少々知識が足りなかろうが、中身のあるアウトプットしてるヤツのすることのほうに
何百倍も説得力がある。
キミも何か生み出してみたら?
あとキミは社会生活が不足しているのか、チームで仕事を進めるということが理解
できてないみたいだけど。
リーダーがすべてについて精通している必要はないよ。
適切な人員を配置して解決できさえすればよい。
分からないくせに知ったかぶりして下に聞かない人間のほうが上に立たれたら
実は下は迷惑したりするw
V2 Additional Plugin Setに2.0.0.3(20100506)出しました。 styleが未定義だった道路プラグインにstyleつけました。 自動発展でゲームプレイするときに発展が助かるはずです。 V2の2.0.0.1と2は取り扱いどうしよう。 SourceForge.jpから削除はするつもりないけど、「秘密」にしといたほうがいいだろうか? 古いV2セットが欲しいことってあるかな?? あと本体同梱pluginの道路にもstyleついてないので、これは次回の本体リリースで styleつけたの同梱します。
飛行機の乗客もシミュレートしてほしい
最近は数人の仲間内だけで楽しそうだな。 なんかわからんが閉鎖的にだけはならんようにな。 ユーザーコミュニティがクソでゲーム開発が廃れていくとか全員不幸な結末はやだぞ。
自分が関われなきゃ、全部クソですか。
だからそういう意味の無い煽りやめてよ。違うよ。そういう意味じゃないよ。 俺はそもそもゲーム開発のスキルはないよ。見てるので満足ですよ。 だから、最近罵り合いっぽくなる展開が多いから、人減っちゃうんじゃないかと危惧しただけだよ。 なんでそんなに喧嘩腰なんだよ。2chだからって無理に喧嘩腰にする必要はないんだよ?
と思って自分のレス読み返したけど、
>>603 の意味のようには読めん事に気づいた。
いや、すまん。
>>603 みたいな意味なんでどうか穏便に。
とりあえず連鎖あぼーんになっちゃうんで煽りと一緒にまとめてレスするのだけは せっかく返答もらってたのに気づかなかった がんばって盛り土します
ついに互換性を捨て始めたのね。。。 荒れすぎてて読む気にもならんがseatedcapacity・fare・amenityってどういう位置づけなのかな。 seatedcapacityは乗車率100%以上を出すための、一種の閾値という扱い? これを必須にする事に何の意味があるの? fareは今までの運賃とは何か違うの? amenityは居住性?客が勝手に乗り込むのに、鉄道会社が居住性を制限できるのかな? 鉄道会社が「乗車率○○%以上は乗せません」とか言うのは現実的じゃないような。 そういう性質のパラメータだとしたらリアリティが無いのでやらない方が良いのでは? それとも、客の心理(この列車にはもう乗れないor詰め込めば更に乗れそう)を表すパラメータと考えればいいの? もうわけわからんが疑問だけ書いとく。
もともと造りが良くないんだよね 実装が仕様というか
>>606 >ついに互換性を捨て始めたのね。。。
だってこうしないと「ゲーム性」を確立できないんですもん。
あと一生懸命かみついてきてるとこなんだが、GWつぶして既存の全列車プラグインに
新パラメータを記入してセット公開した私に対して「互換性を捨てた」呼ばわりはちと
恥ずかしいぜ。
「互換性を捨てた」とけなせるのは、「こういう書式に変わったからおまえらで対応
しろ、こっちはしらん」と投げっぱなした場合だw
>seatedcapacityは乗車率100%以上を出すための、一種の閾値という扱い?
過去の議論と合意により採用したパラメータですので、過去の議論を参照ください。
>これを必須にする事に何の意味があるの?
過去の議論と合意をごらんください。
>fareは今までの運賃とは何か違うの?
今までの運賃そのままです。
ただし、β2.0.2.11までのFreeTrain EX Av及び過去のFreeTrain EX・FreeTrainでは、
plugin.xmlにfareを記入していても実は内部では無視されていました。
どんな値を書いた列車であっても、fare=600固定値でした。
知ってました?
>>597 横からいきなり出てきて、何?煽りたいだけのバカか?w
>口先だけで何も生み出さないヤツの言う事に耳を貸す暇人はいない。
で、口先だけの君は何を生み出したの?
確かに俺はこのスレにおいては何も生み出していない、それは正しい。
けど
>>597 の内容をriorio氏が書いたなら納得いくけど、赤の他人の君が言っても説得力は0だ。
>適切な人員を配置して解決できさえすればよい。
適切な人員って誰がいるの?
数人、簡単な質問に答えている住民はいるみたいだけど実質riorio氏一人だけだよね。
実質一人だからこそ、リーダー自らが勉強するなりして解決しないと駄目なんじゃないの?
つうか、そういう君がメンバーになってriorio氏を支えればいいじゃないか。
だったら、言ってることは理解できる。
なんだ釣られただけか。
>amenityは居住性?客が勝手に乗り込むのに、鉄道会社が居住性を制限できるのかな? 意味分からん。 乗客が、ぼろい103系を居住性悪いと感じて、ピカピカのE231系を居住性いいと 感じることが鉄道会社が制限してることになるのか??? あなたが関西に行って新快速223系に乗って「やっぱり転換クロスシートは快適だー」 と感じたら、その感じはJR西日本に制限されたものだったのですね! >鉄道会社が「乗車率○○%以上は乗せません」とか言うのは現実的じゃないような。 じゃあ乗車率101%以上は乗せなかったFreeTrainは現実的じゃないんですね。 つか、本家であるARTDINKが出してるA7でもやってみりゃいいのに。 乗車率がどういう扱いになってるかとか。 自慢しても何ですが、このスレでいっぱい議論していただいたおかげで、それを酌みとって 実装したFreeTrain EX Av β2.0.3.3の乗車率は、A7,A8よりもリアルな自信あります。
な、無知なくせに人に対しては
>>608 みたいな書き方するんだぜ?
こいつほど人を小馬鹿にしているやつはいないと思うけどな。
おまえ、学生だろ?
いつも小馬鹿にしたような書き方しかしないもんな。
だいたい
>あと一生懸命かみついてきてるとこなんだが、GWつぶして既存の全列車プラグインに
>新パラメータを記入してセット公開した私に対して「互換性を捨てた」呼ばわりはちと
>恥ずかしいぜ。
これは別に人に言われてやってるわけじゃくて、自分がやりたいからやってるだけだろ。
それをGW潰してまでせっかく公開してやったのにみたいな恩着せがましい書き方。
>過去の議論と合意により
ちゃんと書いて説明するか、面倒ならwikiとかどっかにまとめとけよ。
>どんな値を書いた列車であっても、fare=600固定値でした。
>知ってました?
それがどうしたの?何を偉そうに言ってんの?
結局、自分の気にくわないやつにはみんな噛みつくんだよねw
で、面倒臭くなったらNGか無視と。
ほんと、子供と一緒w
でSubversionの勉強して、前に書いてた問題は片付いたの?
どうせ誰か答えてくれるまで放置なんだろ?w
>>609 >横からいきなり出てきて、何?煽りたいだけのバカか?w
あなたも十分、横からいきなり出てきて煽ってるだけのバカにしか見えないんだが……
>>口先だけで何も生み出さないヤツの言う事に耳を貸す暇人はいない。
>で、口先だけの君は何を生み出したの?
え?新仕様の議論に参加したりしたけど……
>確かに俺はこのスレにおいては何も生み出していない、それは正しい。
>けど
>>597 の内容をriorio氏が書いたなら納得いくけど、赤の他人の君が言っても説得力は0だ。
正しいことが、発言したのが誰かによって白か黒か左右されたりするわけない。
なにおかしなこと言ってんのw
riorio氏が書いたら納得いくことは、誰が書いたって納得いくはず。
>>適切な人員を配置して解決できさえすればよい。
>適切な人員って誰がいるの?
あなたがなってあげればいいじゃん。
なるべき知識があなたに持ち合わせていればだけどね。w
それはこれからアドバイスして証明すればいいじゃん。
>実質一人だからこそ、リーダー自らが勉強するなりして解決しないと駄目なんじゃないの?
そんなだからリーダーのなり手がいなくなってたんだろうが……
>つうか、そういう君がメンバーになってriorio氏を支えればいいじゃないか。
>だったら、言ってることは理解できる。
つ鏡
>>611 >>過去の議論と合意により
>ちゃんと書いて説明するか、面倒ならwikiとかどっかにまとめとけよ。
wikiは誰でも編集できるんだから、必要だと思ったら思った人が自発的に
wikiにまとめればいいんじゃないのーー?
綺麗事言いつつ、結局すべてriorio氏の仕事におしつけてるだけじゃん。
なんで分担して負荷を減らそうとは考えて行動したりしないの?
「マルチスレッドにしろ」などと文句つけてる本人たちが、開発ではシングル
スレッドを強要するこの矛盾www
>>どんな値を書いた列車であっても、fare=600固定値でした。
>>知ってました?
>それがどうしたの?何を偉そうに言ってんの?
え、これのどこが偉そうに見えるの?
これが偉そうに見えるとしたら、よほど精神に欠陥があるか幼稚か、問題を
かかえてる人だけだと思うが。
>>608-613 お前らまとめてこのスレから出てってくれよ。
Avは自分たちのコミュニティで勝手にやってくれ。
わざわざ2chに出張って痴話喧嘩するな。
えーと。 ゲーム性をもすこし実装するのに、ちょっと困っている。 費用のことを調べていってたら、線路(SimpleRailroad)をしくときにはちゃんと経費 かかってるのだが、「鉄橋」「ガード高架」「トンネル」「車庫」をのばすときの SpecialPurposeRailroadは経費かかってないのだ。 これはまずい。 「鉄橋」「ガード高架」「トンネル」「車庫」の設置コントローラは core\controllers\SpecialPurposeRailController.csなんだけど、これは実体ほとんど AbstractLineControllerからの継承。 設置する「もの」によって経費のかかりかた(1ボクセルあたりのコスト)も変化させたい と思ってるので。理想はSimpleRailroadみたいに高いところはコストがかさむっていうの。 どうControllerのコードをいじったらいいのか分からない。 あとAbstractLineControllerは「道路」の敷設にも利用しているのだが、道路も通常道路 を敷設したときは経費が「バス」の項目につくようにしたいし、線路敷石(バラスト)のとき だけは「鉄道」にかかるようにしたいと思ってる。 道路プラグイン修正して、バラストには専用のstyle属性も付加した。 これも実装しようとしたらどうしたらいいんだろう???
>>609 結局あなたは何がやりたいのですか
開発を応援しているのか、開発者にケチつけて自己満足したいだけなのか、
少なくとも後者にしか見えないです。最低限、人格否定はやめましょうか
>実質一人だからこそ、リーダー自らが勉強するなりして解決しないと駄目なんじゃないの?
言いたいことはわかります。少なくともここの現状はプログラム組める人間が圧倒的に不足しています。
が、なぜriorio氏一人が全てをやる必要があるのか。
「やりたい人が、やりたいように、やりたい時に、やれる範囲内やる。」
それができることがオープンソース、複数人参加型の開発じゃないのでしょうか
他の人材がいないって言うけど、あなたがいるじゃないですか。
あれだけ大口切ったのですから、少なくともSubversionあたりについてはそれなりの、
少なくともriorio氏以上の理解があると見えます。なら、協力するべきなんじゃないですかね?
私に対して、「粘着しているひまがあれば勉強しろ」と、他人の心配ができる心の持ち主なら、
少なくとも煽って、上から目線の説教だけして、そのまま立ち去るなんてクレーマーと同等の
およそモラルや良識のないことをやるとは、私は思えません。
>>610 親しき仲にも礼儀あり、とまでは言いませんが、少なくともコテハン同士ならまだしも、
質問に答えるのに対して、もう少し別の口調、文脈というのもあるのではないでしょうか
頑張っている人をいちいち否定してくる人が現れれば、イラつくのは真っ当な思考だと思いますが
それを抑えるのは、理性ある人間にとって難しいことではないはずです。
>>611 深淵をのぞく者はまた深淵に覗かれる、とかミイラ取りがミイラになる、とか・・・
とりあえず、書き込みボタンを押す前に自分の打ち込んだ文章確認しましたか?
人を小馬鹿にした文章だと言いますが、人格否定に走っている貴方はどうなるのでしょうか?
無視しろと言っても無視できないのなら、正直に、1度だけ両者に言わせていただきます。
18歳の子供に、ここまで言わせる人間って、なんですか?
あなた方、少なくとも大学生、もしくは社会人ですよね?
なんで子供に説教じみたこと言われてるんですか?恥ずかしくないですか?
いい年して掲示板に感情ぶつけるって、自分でみっともないと思わないんですか?
そんなことも分からず、無視も適度な受け流しもできない人間に、
ネットで議論でできると本気で思ってるんですか?
お二方、黙って水浴びてきてください。で、数秒でも数時間でもいいので
その見るに堪えない否定論から、何が生み出せるのか考えてきて下さい
以前の静かなスレに戻して欲しい。 一部の人たちはこれ以上FTを、そして俺たちの平和なスレを汚さないで。。。
>>615 高いところ費用がかさむってのはヘイト数での高さですよね
Controllerの中に費用計算が含まれるかはわかりませんので、妄想ですが
地表面からの高さをとって、費用の計算式に基本金×高さで組み込むってのは無理ですかね
>道路プラグイン修正して〜
いっそバラストだけ切り離して、鉄道メニューに「バラスト」の項目作っちゃうとか・・・
まぁ口で言うほど簡単じゃないので、発想チラ裏程度に考えて聞き流してください
>>617 >少なくともコテハン同士ならまだしも
えっと。
モガミさんは分かってないのかもしれませんが。
私から見ると、ID:DQiiOCVM がどこの誰なのかはコテ・トリつけてるとまったく
同様に丸わかりなんですよ。
プラグイン公開するときにはauthorにコテ入れてるのに、スレに書き込むときには
ガンとしてコテ入れないことにはなにかしらうしろめたいところがあるんだろうから
あえてそこをこっちからバラすいやがらせするのはやめとこうと思って名指ししない
だけで。
メールでもしてもらえればこっそり教えますよ。
あっちからすればこっちはriorioだって分かって書き込んでるわけだから、
「コテハン同士」となんら変わらないわけです。
その前提で読み直してもらえれば、理解できるかと〜
>>617 riorio氏は、ちょっとでも批判的な立場を取られるとすぐ切れますね。
見た感じ、頭より手が先に動いちゃう性格なのか、私にはいつも勝手にやってるようにしか見えない。
それなのに「自分だけが頑張ってるのに、何もやってない奴に指図されたくない」だとか
「自分がやっている事は常に正しく、尊い事であり、評価されるべき」だとか思ってるのでしょうか。
実際は、色んな立場の人がいるものです。私は一貫して批判的な立場を貫いてますが。(riorio氏が一瞬でわかるほどに)
私はriorio氏が努力されていることは認めます。
ただ「行動する前に、もうちょっと落ち着いて、みんなで考えられないのか」という一点を除いて。
私がこのように思ったり、またスレも荒れてますから、riorio氏がいう「合意」が
他の人が感じる「合意」にまで至っていないという事が言えるのでは無いでしょうか。
外野の人間にとっては、ここでの書き込みが「合意」じゃなくて「チラ裏のメモ」に過ぎないんですね。
取り巻きの数人での合意は出来てるのかもしれないけど
その程度の合意でいいなら、2chを使って議論する必要が無いわけです。
合意が不十分な事を訴える事が、単なる嫌がらせか邪魔にしか感じられないのであれば
riorio氏にとって、このスレは不要です。
どうぞ自らコミュニティを立ち上げて、ご自分の力で開発を続けてください。
きっと素晴らしいゲームが出来るでしょう。
>>621 >riorio氏は、ちょっとでも批判的な立場を取られるとすぐ切れますね。
ということにしたいのですね :-)
実際は、理不尽なクレームをつけまくる開発妨害者に対し、妨害者にふさわしい
処遇をしているだけの事なのですが。
まぁあれです。あなたはここでは日本におけるシーシェパードと同類ってことです。
シーシェパードも、マスコミに対しもっともらしい理論をつけて日本の捕鯨を『批判』
して実力行使をしていますね。:-)
あなたのいう『批判的』っていうのは、シーシェパードの『捕鯨批判』みたいなものですね。
>私にはいつも勝手にやってるようにしか見えない。
そう見えているのはあなただけですね :-)
>取り巻きの数人での合意は出来てるのかもしれないけど
あなた、相当失礼ですね。
「取り巻き」というのは、日本語では通常、かなりマイナスの意味合いを持った悪い
言葉です。
私に対しての失礼ということではないです。そんなものはどうでもいい。
このスレを読み書きして、こんどのV2仕様列車などをどうplugin.xmlに記述したらいいか
ここまでいろいろ議論を重ねてきて意見を出してくれたみなさんに対して「取り巻き」
呼ばわりするというのが失礼だということです。
結局、あなたは自分と異なる立場の人や意見を認めないんですね。
このスレを利用して議論を重ねているみなさんをじっぱひとからげに「取り巻き」と
おとしめるあなたの言動がそれを裏付けています。
いろんな立場があることを理解していないのはどちらでしょう :-)
>>619 すいません、ちょっと説明が足りませんでした。
>地表面からの高さをとって、費用の計算式に基本金×高さで組み込むってのは無理ですかね
この計算式そのものは、通常線路をしくSimpleRailroadの中に既に存在します。
なのでその部分をコピペするだけで済むことなのですが。
その組み込みをどこにどーしたものか、というのが悩みなのです。
あ、そうだ。
今って、「地下」に線路しくときの費用は地平面にしくときと同じしかかかってないはずです。
ですが、実際に地下鉄を工事するとトンネル工事が大変で地上・高架よりも必要がかかる
ものなので、地下-1に線路しくときは地上+2の費用、地下-2に線路しくときは地上+4の費用
と高架の2倍かかるようにしたらどうかと思うのですが、どうでしょうか。
A列車もたしか結構地下鉄工事高かったはず。
地平面以上で山の中のトンネルしくときの費用は、今山の中か外か識別する手段がないので
外と変わらずでご了承ください。
>いっそバラストだけ切り離して、鉄道メニューに「バラスト」の項目作っちゃうとか・・・
既に非常に多くのバラストが道路プラグインで作成されてしまっているので。
できるだけプラグイン側をいじらずそのまま生かしてなんとか、と考えた末なんです。
「バラスト」の項目を作ってもいいんですが。鉄道メニューは既に結構肥大気味だし。
道路プラグインの中で<atyle name="railballast"/>になってるものを重複して鉄道メニュー
側でもセレクトできるようにするという手はありますが。どうするのがいいのかなぁー?
どっちにしてもそこで費用計算&収支に反映をコントローラに組み込まないとですねぇ。
>>622 なぜあなたはすぐ喧嘩腰で私に対応するのですか。
結局あなたは他人の声に耳を傾けていない。
少なくとも、自分に都合の良い事しか聞いていない。それで全部の意見を聞いたと思い込んでいるのでしょう。
そういう裸の王様状態になったriorio氏を咎めない周囲の(ごく一部の)人間、これが「取り巻き」です。
しかし「シーシェパード」という表現には唖然ですね。
その構図では、あなたは正義の捕鯨船ですから、放水で「海賊」を「排除」しようとするわけですね。
それでこういうレスを平気でするw
あなたがやっている事は捕鯨ではないし、あなたは捕鯨船や警察でもない。
捕鯨は南極海でしか出来ませんが、あなたのゲーム製作はここでなくても出来るはずですよ。
たぶん、まぁまたC#のすごーく初歩的な部分でつまづいてるんだと思うんだけど。 どんだけ考えてもデバッグモードで変数追っても分からないのでhelp乞おう。 SourceForge.jpの「Beta」のところに、バグもち最新バージョン2.0.3.4ALPHAあげました。 【2.0.3.3 -> 2.0.3.4 変更箇所】 ・駅プロパティに「今日/昨日の乗車客数」表示を追加 ・列車を売却した際に返金が発生するように追加した、が動作が不完全なバグもち 【既知の問題点】 ・列車の売却計算が正常ではない ・新規マップ開始時から所有している3つの列車(3両高速・5両中速・7両低速)を売却しようとするとエラーになる 問題点は上の2つ。 今回追加したコードはTrain.csの180行目あたりにあるんだけど。 TimeLength usedTime = World.world.clock - boughtThisTrain; long useYears = usedTime / TimeLength.fromDays( 365 ); long reimbersePrice = this.type.price( this.length ) / (useYears+2); usedTimeにうまく時間が入ってくれてないみたい。 boughtThisTrainの取り扱いがおかしいのかもしれない。 買うときに36行目の public Train( TrainGroup group, int length, TrainContribution _type, Time now) : this(group,string.Format("TR{0}",iota++),length,_type,SimpleTrainControllerImpl.theInstance) { this.boughtThisTrain = now; } で引数にTime now追加したものを定義して、 core\controllresにあるTrainTradingDialog.csの550行目あたりで new Trainしてるとこに for( int i=0; i<(int)count.Value; i++ ) new Train( World.world.rootTrainGroup, (int)length.Value, selectedTrain, World.world.clock ); って、World.world.clockを渡すようにしたんだけど。 これじゃダメ??
1度だけと言ったのですが、嘘をつくことになりますね。謝るつもりはないですが
>>620 それは、相手が誰だかわかった上で、なおかつ、その相手がメアドなり、
別のHPなり、プラグインを公開する場所を保有しているとわかって上で、
このような否定合戦をわかったうえで故意に続けているというのなら、
それこそ新規参入者へ対するプレッシャーであり、他参加者へ対する妨害ではないでしょうか
>>624 >なぜあなたはすぐ喧嘩腰で私に対応するのですか。
え?
あなたがアンカー打ってる622の3〜4行目にその答え書いてあるんだけど。
アンカー打ってる先の文章も読んでないのかいな。
>結局あなたは他人の声に耳を傾けていない。
いいえ。私が傾けてないのは「他人の声」ではないですね。「他人の声」にはちゃんと
傾けてます。
結局あなたはね、もっともらしい大人の文章力で理論武装してるけど、中身はおもちゃ
屋の前でわんわん泣きわめいて「あれ買ってー」ってダダこねてるおこちゃまと同じ
なんですよ。
「あなたはだだこねているおこちゃまの声に耳を傾けていない」
はいそうですね。傾けてません。傾ける必要ありませんもの。
このことは以前にも指摘しましたね。
>少なくとも、自分に都合の良い事しか聞いていない。それで全部の意見を聞いたと思い込んでいるのでしょう。
え?いろいろやろうとしたけど「それはよくないよ」って指摘されてやめたことなんて
山ほどあると思うけど。
>そういう裸の王様状態になったriorio氏を咎めない周囲の(ごく一部の)人間、これが「取り巻き」です。
いろいろもののたとえ使ってみても、あなたの良い悪いの判断基準て、あなたの意見を
聞いてくれるか・同調してくれるかと、聞いてくれないか同調してくれないかなわけじゃん。
あなたの意見をきいてくれない私=悪、裸の王様呼ばわり。
あなたの意見に同調してくれない、FreeTrain EX Avのゲーム性を高めてくれと要望する
プレイヤーたち=悪、取り巻き呼ばわり。
>>621 >合意が不十分な事を訴える事が〜
>>611 「こいつほど人を小馬鹿にしているやつはいないと思うけどな。
おまえ、学生だろ?
いつも小馬鹿にしたような書き方しかしないもんな。 」
これを、合意が不十分であることを伝える文だと・・・?
それを判断するのはあなたでもなく、riorio氏でもなく、周りです。
少なくとも周りその1である私には、合意が不十分であることを伝える文ではなく、
邪険で感情的な人格否定、如いてはただの煽り以外の何物でもないと判断します
>「合意が不十分な事を訴える事が、単なる嫌がらせか邪魔にしか感じられないのであれば riorio氏にとって、このスレは不要です。 どうぞ自らコミュニティを立ち上げて、ご自分の力で開発を続けてください。 きっと素晴らしいゲームが出来るでしょう。 」 少なくともどうすればいいか分からないと質問を投げかけている相手に対し、この返答は 失礼である以上に、傲慢です。 あなたがriorio氏にこのスレが不要だというのなら、私はあなたに対し「このスレにあなたは不要」だと断言しましょう。 riorio氏の文章内容からすれば、少なくとも、私の感想としては被害意識が多分に含まれ、 逆にあなたには加害意識が多分に欠落しています。片方ずつなら周りの対応が緩やかなここでは問題ないのでしょうが、 あなた方の相性は最悪です。お互いがお互いに批判し合って、周りを邪険にして 結果人が離れていく。 人を呪わば穴二つ。どっちかに消えろというのなら、両方消えてください。 逆に、私は自分は消えたくもないですし、 このスレの人員不足という面からしても、両者には消えてほしくはないと考えます もう少し、平和的に議論できませんか?少なくとも、お互いを理解しようという気概が双方に一切感じられません。 相手がこういう人間だとわかっているのなら、それに対してそれ相応の対応をするのが、大人ってものじゃありませんかね 小学生の口喧嘩じゃないんですから。
>>626 >それは、相手が誰だかわかった上で、なおかつ、その相手がメアドなり、
>別のHPなり、プラグインを公開する場所を保有しているとわかって上で、
はい、分かってます。
と、思ったけど今日はID違うね。
2人いたのかな?
じゃあ前言撤回しなきゃいかんなー 1人しか分かってません。
>このような否定合戦をわかったうえで故意に続けているというのなら、
>それこそ新規参入者へ対するプレッシャーであり、他参加者へ対する妨害ではないでしょうか
ここはよくわかんない。
モガミさん、さっき「少なくとも〜まだしも」と、それならしてもいいっていう主旨のことを
書かれたでしょ?
だからそうですよって肯定したまでのことなんですが。
私としてもこんな非生産的なレスをつけたいわけじゃなく、単にこの場でAvの開発進行
を妨害する書き込みが連発されているから、ふりかかる火の粉をふりはらってるだけの
ことで。
火の粉がかかってこなければというか、火の粉なんて生やましいものじゃなくやってること
は放火そのものですな。
放火されれば水ぶかっけなきゃいけない。
放火されなければ私はしゅくしゅくと開発を進められるのですが。
ものごとには原因と結果があって。
モガミさんたちは「水ぶっかけんなよ冷たいじゃないか」って言ってるわけです。
それは分かります。だれだって水ぶっかけられたくはないですね。
でもそれは結果に過ぎません。
原因は放火する方にあるわけで、放火するやつをなんとかしなきゃいけないのです。
>>622 >実際は、理不尽なクレームをつけまくる開発妨害者に対し、妨害者にふさわしい
処遇をしているだけの事なのですが。
人の話を聞いていたでしょうか。この際ハッキリ言いますが、
複数人が「無視しろ」といった意味、理解してますか?
無視しろと言った人間はみな、riorio氏が「相手をクレーマーだと判断している」と認識したうえで言ってるんですよ
クレーマーにご丁寧に喧嘩売り返し、そのうえで「ふさわしい処遇」ってなんですか?
実際のところ、本当にケチつけたいだけの人間は、何か月もスレに粘着しないんですよ。
たまに沸く単発なんかがいい例です。
逆に、何か月も張り付く人間は、私怨で動いてる人間か、本当に考えてるかのどっちかなんですが、
受け入れられないと考える人間にそれを強要するのも面倒ゆえに、「無視しろ」と言ってたのですが・・・
>>624 あなたの批判もここでなくてもできます。別の場所で個人的にどうぞ。
また、あなたも自分が正義だと信じて疑っていないタイプですよ
ぶっちゃけ、あなた方2人、主張も言ってることもやってることも同じなんですよ
お互い無視できず、考えもせずただ批判と揚げ足取り、最後に人格否定
なんていうか、不毛通り越して、体力と時間の無駄だって、まだ気付かないんですか?
>>629 >もう少し、平和的に議論できませんか?
>少なくとも、お互いを理解しようという気概が双方に一切感じられません。
私は以前聞いたことがあったはず。
「あれをするな」「これをするな」ってなんでもかんでも否定するから、
「じゃあ具体的に何をどうして欲しいの?」って。
すると急に黙ってレスがとぎれるんだよね。
「して欲しいこと」を具体的に明示してくれたら、「じゃあ前のことは後回しにしてこっち
先に実装しちゃおうか」ってことだってありうるのに。
なんで要望しないんだろう???
理解しようとしてあゆみよると、拒絶されるんじゃあ、理解のしようがないですよ。
あと、EXが好きならEXをプレイし続ければとも提案しています。
私がFreeTrain EX『Av』をどんなに奇形に変化させてしまったところで、EXはなんら
問題なくプレイし続けられるわけですから。
なぜその提案を受け入れないのでしょうね?
>>631 >複数人が「無視しろ」といった意味、理解してますか?
だから前私は言ったのよ。
「NGつっこんどくから、トリつけてくれ」
って。
でもいまだにトリつけてくれない。
>なんていうか、不毛通り越して、体力と時間の無駄だって、まだ気付かないんですか?
あ、これね。
わたしの場合にはあてはまらない。
少なくとも、NGできず目に入ってしまう放言を、目に入らなかったことにして無視を
決め込むのがもんのすごいダメージでかい。
まる二日コード書く気にならないぐらい。
それよりは、水ぶっかけて追い払ったほうがまだ体力も時間も有効に利用できる。
それに2chにかじりついてるわけじゃないし。
コード書いて、うーーーんとつまったときにブラウザ立ち上げてとか。
バグ取れてリリースだせるようになったからアーカイブ作ってアップして、告知するのに
ブラウザ立ち上げてとか。そんな感じだから。
>>630 コテハン同士で、人格否定合戦なんて起きないと思っていたのですが、
認識が甘かったとしか言いようがないですね。お互い誰だかわかった上で、
ここのこれだけ暴れるんですか・・・お互いメアド交換して、そっちでやってくれません?
>>632 >「して欲しいこと」を具体的に明示してくれたら、「じゃあ前のことは後回しにしてこっち
先に実装しちゃおうか」ってことだってありうるのに。
相手の主張は「それをやるための技術がないなら無理するな」なんですよ、要約すれば。
できることからやればいいのに、あれもこれもと手を広げて沈むなと言ってるんですよ、口調がドキツイだけで。
もっとも、技術面はほかの方がカバーできますし、本人の技術も常に上がり続けます。
だからそれを、クレームだとriorio氏が決めつけるのなら、それでも構わないんですよ。
しかし、その場合無視するべきなのに、相手にするどころか煽り合いの否定し合い。
第三者からすれば、お互い頭おかしくなってます。もう一度言いますよ?頭冷やしてきてください
火の粉を振り払うと言ってますが、あなたも火種なんですよ、すでに。
火だるまも人間が火の粉を振り払おうとしても、新たな火の粉を生み出すだけです。
火種と火種が火の粉振りまきあって、結果は大火事です。
このスレ全焼させる気ですか?
>>634 モガミさん、それ、2人の別人がごっちゃになってる。
>相手の主張は「それをやるための技術がないなら無理するな」なんですよ、要約すれば。
ID:Xk1Xjrpp のほうは、そういう意図がないとはいいませんが。
んー、でもそれはかなり好意的に解釈しすぎじゃないかな。
技術がなければしていけなければ、プレイヤーのみなさんの、こうしてほしい・ああして
ほしいという要望にはほとんどどれもこたえることができないですね。
こたえるためにソース読み解いてわからないところぐぐって、それでもまだわからない
ことがあったらスレに聞いてみて、「そうだったのかー」と分かったらやっといじってバー
ジョンアップ、みたいなことだらけですから。ここまで。
しょうがないじゃん。ほかに誰もリーダーしてくれないんだから。
こうでもしてやっていかないと。
「要望してもかなえてくれないからもういいわ」ってFreeTrain EX Avを見捨てられ
たくはないわけですよ。
問題はID:DQiiOCVM のほう。
こっちから、何かしらこういうことをしてくれというような具体的要望があがったことは
私の記憶にはただの一度もないですねぇ。
技術がないならうんぬんということもないです。
ただただあるのは否定・否定・否定。全否定。
あぁ、「マルチスレッドにしろ」というのはあったか。
でもこれもプログラミング的裏付けがあって発言したわけじゃなく、たた「マルチスレッド
=なんでも速くなる夢の技術」みたいな思い込みの産物だったし。
メアドはSourceForge.jpのアドレス公開してるんで、べつにあっちから送ってくるぶん
には送ってきていいんですがねぇ。こっちからは誤爆の危険があるからいきなり
こっちから送るわけにはいきません。実際誤認してたわけだし、今夜。
大事なこと書くの忘れてた。
>>625 問題の、2.0.3.4のソースですが、全部SourceForge.jpにコミットしてありますので、
全ソースおえるようになっています。
usedTime / TimeLength.fromDays( 365 );
するために、TimeLength.csの最後に、TimeLengthを/できるようにするオペレータを
追加したりしてみました。
結局
>>602 が正解なんだなと思わざるを得ない流れですね。
あの、私は随分前からFTを楽しく遊んでる者です。 このスレッドも以前より拝見させていただき、Avの開発状況に 期待しわくわくしながら見てました。 私はプログラムなどの専門的な部分は一切わからないので 遊ぶ専門なのですが・・・。 罵りあい、叩き合い等は他でお願いします。 ここでやる必要ないんじゃ? riorioさんや開発に携わっている方々には感謝してます。 どうか穏便に、スムーズに進むことを期待してます。
激しく同意。お前らそんなにどうでもいい話しがしたいなら、VIPイケばか。 ↓ここがVIPだAA禁止
ここはriorioの腕の見せ所ですね。
>>628 >>611 は別人。
重要なのは、相手が誰なのか邪推する事ではない。
一つ一つのレスの内容です。
私はあなたと同じで、riorio氏のレスの内容は、プロジェクトリーダーがやるべきレベルのものではないとは思いますがね。
riorio氏は「こいつの言う事は聞かない」という決め込みが激しいのでしょうか?
私なりに代案を示し、どんなに理論的に説明して差し上げても「作ってみたから実際にやってみろ」としか言わないのですから。
また、実装された仕様に対し後からどんなに意見を言って、また説明を求めても
「何故あの時言わなかった?合意を基に仕様が決定したのだから今更騒いで妨害するな。」と言われるだけです。
こちらは皆さんと違って四六時中2chを見る事も出来ないのにね。
私が「クレーマー」だと言うのならば、ぐうの音も出ないように納得できる説明をして頂ければいいのに
それが無い(できないのか?)ままプログラムを作り続けられてしまうのが問題だと感じています。
無視するのも、人格否定に走るのも、少なくとも多くの人が納得できる、理論的な説明が整ってからではないでしょうか。
riorio氏のプログラムが、何を意図して、またどのような仕様にしたのかも分からない人が
一体どうやって代案を示せば良いのでしょうか。
私が欲しいのは人格否定でなく、納得できる説明です。
以前私が「マルチスレッド化してみろ」と言ってみた時には
マルチスレッドプログラミングが高速化に有効だというレスもありましたね。
コード書き直しが必要で、現実的に考えれば困難だという事でしたが。
現実的に無理であればやるべきではないという思いがあり、
それ位やらなければ、riorio氏がやりたい仕様で快適にゲームできないのではないかという思いもありますが
難しいなら仕方ないと納得するわけです。
それを事もあろうに「夢物語」という一言で片付けてしまうriorio氏の説明の幼稚さ。
「夢物語」ってどういう事だ、ちゃんと説明しろと反発を受けるわけです。
「夢物語」と前述の説明、どちらが多くの人に納得できると思いますか?
優秀なフリープログラマが集うスレにはたいていこういうキチガイが沸くよな 他のスレでもそうだけど何でなんでなんだろう
赤ちゃんが出来るメカニズム並みに謎
したらばに避難所つくりました
http://jbbs.livedoor.jp/game/50598/ riorioの開発姿勢に注文があるかたは、このスレではなく避難所の方でどうぞ。
避難所のほうで受け答えいたします。
ということで避難所を用意しましたので、こっちを利用せずこのスレ上で注文つけ
るかたについては一切返答しませんのでご了承ください。
なお、別人と混同されて困るとおっしゃるならまず自分がトリップつけましょう。
>>644 そうやって、誰も見ないところに追い出そうとしても無意味な事。
どうせあなたもその掲示板は見ないのですから。
その避難所に、あなたのメモを移転させれば良いんじゃないですか。
もういい加減にして欲しい。 嫌味、罵りあい、叩き合いよりも やることあるんじゃないですか。 このままだと開発は空中分解 それがあなた方が望む結果ですか?
riorioのチラ裏や開発に関係のない闘争などはそっちに書いた方がいいね。
ここまで読み飛ばした
>>641 ようは開発速度が早くてついていけないってことでしょ
間口を広くするなら、月に一回とか変更箇所を見直す期間でも設けたら?
なんかごちゃごちゃしすぎでよくわからん。長文打ち込んでる人間が3人も4人もいるのはよくななぁ・・・
>>635 意図的に、好意的に解釈しています。
そうでもしないと、前向きな議論も作業もできません。否定的な解釈は、悪意しか産めません
こう言い方は難ですが、共同作業は、自分を殺してナンボですよ。
お互い、意見の主張が激しすぎて、口論じゃ意味がないですから。どっちかが大人になるしかないです
>>641 相手が感情的になっているときに、説明を求めて、理解の出切り返答があはずもないので、
ゆえに、落ち着いて、時を待つか、もしくは相手に受けいられるような書き方をする。
>プロジェクトリーダーがやるべきレベルのものではない
プログラムがわからない私からすれば、その辺はよくわからないのですが、
ではあなたがプロジェクトリーダーをやるのはどうでしょうか?
やってくれる人がいないから、riorio氏が名乗りを上げてくれているわけですよ。
恩付けがましいといわれるかもしれませんが、それくらいのことが許される程度には、
ここは慢性的な人員不足です。
他に人がいないのに、やめろとか、向いていないなんていうなんて、それこそナンセンスです
今あるもの、今ある技術、今ある人間で何とかするのが、技術者ってやつですよ
>>645 あなたのその態度が、「クレーマー」なんですよ
ここで言い合いするのはやめろと言われたから、rioiro氏のほうで、
避難場所もとい、口論場所作ったわけですよ
「どうせあなたもその掲示板は見ないのですから。 」なんて決め付け、人としてどうですかね
そういう言い分で、真っ向から否定する。それは、クレーマーといわれても仕方のないことですよ
わたしだって、それはいくらなんでもあんまりだとおもいますもん、
次からは、riorio氏に意見があるならそこ使ってください。
それで改善されない時にだけ、ここで文句を言ってください。
>>650 書き方が悪かったですね。
>プロジェクトリーダーがやるべきレベルのものではない
というのはriorio氏に「やめろ」と言う意味で書いたわけではないのです。
好戦的な態度というか、そういうのが滲み出るような文章をいつも書いているので
そういう書き方がプロジェクトリーダーを自称する人間にとって相応しいものではないという意味で書きました。
火に油を注いでる私が言えた事では有りませんが、貴方が言うように「大人になれ」という事です。
>ここは慢性的な人員不足です。
それは痛いほどわかっていますとも。
riorio氏のおかげで、今のFreeTrainは、過去数年の停滞に比べたら、飛躍的な速度で開発が進んでいる。
これは良い事ではありますが、開発速度が速いからこそ、十分なコミュニケーションが必要なのです。
そこを蔑ろにしていると私は感じています。
最近は以下のような流れを散見します。
@riorio氏がコードの一部や、あやふやな概念を示して質問を投げかける
A偶然それを見た人が、その質問を自分なりに解釈してレス
B互いに細部のニュアンスが伝わらないままお手盛りで仕様が決定されコーディング完了
C微調整が入る、これもriorio氏の感覚的な判断で、第三者による評価を経ていない場合が殆ど。
Dある程度掘り返したら、次々に新しい事に手を出し始めるから評価できない。
そもそも、数日ごとに次々とバージョンアップされるプログラムをテストプレイ出来る人が何人いるのかすら不明。
このようにして開発が進んだ結果、どのようなゲームが出来上がるのか、誰にも分かりません。
もし完成したゲームがつまらなく、riorio氏がメンテナンスを止めてしまったら
その時点でFreeTrainExAvは死んでしまいます。恐らくFreeTrainを巻き込んでね。
少々強い書き方で、多くの人に伝わるこの場で「しっかりと説明して、認識を共有しろ」と言わせて頂いています。
ここじゃなくて他でやってケロ
いちおう確認なんだけど。 せっかくしたらばに避難所作ったんで、あっちでは相手したいんだけど。 何%ぐらいの本気で相手したらいい? 100%出しちゃっていいかな?? 50%ぐらいでおだやかに??? それによって返答出来る内容も変わってくるんで、確認しておきたい。 これについてご意見いただけたら、ここ1日ぐらいの問題書き込みを まとめてしたらばのほうに引用しつつ返答したいと思います。 今後、ここ(ゲーム開発板)では返答しません。 これは私の意志ではなく、みんなの希望です。
もうやだこの勘違い
100%の本気で私と喧嘩して追い出そうとするの? それとも 50%しか私とあなたは理解し合えないの? どういう意味なんだろうねこの人が言ってることは。
敢えて言うなら、riorioさん、あなたが考えている事、あなたがどのようなゲームを作りたいのか この点について、今までの1000%くらいは細かく語って欲しいですね。
>>653 それこそ向こうで聞いたらどうですか
自分はゲーム内容について話し合うのには何の不満も感じてませんけど
ただの煽り合いのレスについては興味ないです
ネット上でやるゲーム開発なんて、結局はチラ裏の応酬になるよね。 開発会社だとデスク同士の会話だったり会議だったりなんだけど、ネットではそれができんからさ。 だから一見するとすんごくつまんねースレにはなってるな。 だが、数人でも議論の相手がいることで少なくとも開発は進行できてたわけだしなぁ。 2ch上でチラ裏をいちいちカキコするのが良いかどうかはともかくね。 とりあえず、riorio氏あたりには現在進行中の開発状況をまとめて、 どういう機能を実装しようとしてるのかを書き出して頂ければと思う。 俺も結構ROMってたが、専門用語ばっかで読めないし、進行も早くて読むのだけで疲れるんだ。
V2世代の「コストバランス」についてwikiを更新しました
http://www19.atwiki.jp/freetrain-exav/pages/142.html ちょっと読みづらいですが、川口さんがまとめられたFreeTrain時代のwikiページがベース
になっているもんですから、
A4ではこういうコストバランスになっていた
↓
それをもとにしてFreeTrain V1世代ではこう実装した
↓
それをFreeTrain EX Av V2世代ではこう変更した
という流れになってます。
「ここわかんねーからもっと詳しく」という部分があれば言ってくだされば書き加えます。
>>658 >とりあえず、riorio氏あたりには現在進行中の開発状況をまとめて、
>どういう機能を実装しようとしてるのかを書き出して頂ければと思う。
SourceForge.jpの「チケット」をもうちょっと活用したらいいのかもしれないけど、
2人のプロジェクトでプロジェクト外の人も読んでくれてなさそうだしなぁーという
ことで、フォーラムに要望やバグ報告があがってきたもの以外は登録してない
ですねぇ。すみません。チケット活用するのが良ければ今後活用しますし。
そんなの読みに行かないから使わなくてもいい、ということであれば今まで通りで。
現在進行中ですかー
・列車売却益、即1/2〜1年後1/3〜2年後1/4〜の実現。
みちなかばバグあり
>>625 ・特殊線路(鉄橋など)の敷設撤去に通常線路と同等のコスト計算と徴収
手付かず
・道路の敷設に、鉄道よりは安いが一定の距離比例コストを計算して「バス」項目から徴収
手付かず
・今まで「道路プラグイン」として実現されてきた線路敷石=バラストについて、
一定の距離比例コストを計算して「鉄道」項目から徴収
全プラグインをチェックして、<style name="railballast">を記入するのは完了
ダイアログ部分は手付かず。
今まで通り「道路」として敷設するのでいいのか、線路敷石は「鉄道」メニュー内に移動すべ
きか?という議論もある
>>623 >>619 ・鉄道アクセサリの建設や建物の建設できちんとコストが発生・徴収されるように
手付かず
・V2における、列車プラグインのfareや、運行コスト計算は適正かチェック
テストプレイのフィードバック待ち
・V2における、建物プラグインのpriceは適正かチェック
テストプレイのフィードバック待ち
・建物プラグインの「人口」(population)に土日を設ける
土日のpopulation率としてどのような数値が適当か募集中
>>496 数値さえ決まれば本体改造はすぐできる
・建物プラグインの「人口」(population)のクラスがおかしいの、baseがおかしいのの修正
モガミさんがExcelにまとめるよう手を上げてくださってますが、ひとりでは大変なので
もう2人ぐらい手伝っていただけるとありがたい
>>578 ・建物の人口クラスに、これまでのに追加して、学校・ホテル・遊園地・飲み屋を作ろう。
手付かず。
それぞれのクラスにどんな時間帯人口分布をつけるかも議論しないとですし、既存プラグ
インを調査したものをベースに「これは遊園地に変えよう」などとチェックして、書き換えも
しないとです。
>>394 ・今はA4ゆずりで「駅に到着したら乗客全員そこで降りちゃう」けど、これを「一部は降りる
が残りは乗り続ける」ようにできないか?とか思いついただけ
それと並行して、ダイヤとして「乗車のみ(乗ってきた客全員とじこめ)」設定もあったら
欲しい?とか
>>459 >>482 >>504 ・バス
欲しいねぇ〜 誰か実装してくれないかな
・貨物列車が意味のある貨物を運輸できるように
したいねぇ〜 誰か(ry
・α3系統のV2対応
β2でバグとりとかプラグインの各種値適正化とか済んでから移植しようかと……
「もう自分は3系統しかしてないから、早く3系統にV2もってきて!」って要望あれば
迅速にします
もいっこあるんだかないんだかどうなんだかw
>>567 に書いたみたいなTortoiseSVNをクライアントにしたSubversionの取り扱いで
Release1.0がわらわらできて……ってのは結局解決したようなしてないような。
削除したらSourceForge.jp上からは消えたんだけど、ローカルでは赤×ついたまま
消えないのはこれはそういうもんなのかな。
邪魔なんだけどw
まぁ新しい人がリポジトリ落としてきたときに、いっぱいRelease1.0が出てきてなんじゃー
ってなるのは防げるからいいか。
もともと聞きたかったのもそこんとこで、単なる削除操作がわからんみたいな
くだらんことじゃなかったんだけど、ねw
とりあえず1点だけ >625 this.boughtThisTrain == now == World.world.clock (reference equal)だからではないかと MemberwiseCloneを使うか(浅いコピーである事に注意)、もしくはnewで再生成するか 別に良い方法があればそちらに
>>664 ありがとうございます! まさにそれでした!!
@ITでざっと読んではいたところなのですが(MemberwiseCloneと浅いコピー)
実際に使わなければいけない場面に出会わなかったので忘れてました。
MemberwiseCloneで解決しました。
private void buttonOK_Click(object sender, EventArgs e) {
// buy trains
Time now = (Time)World.world.clock.Clone();
for (int i = 0; i < (int)count.Value; i++)
{
new Train(World.world.rootTrainGroup,
(int)length.Value, selectedTrain, now );
}
実はまだ解決した方がいない部分があって。
初期配置の3つの編成、this.boughtThisTrainがnullなんでエラーになるのを回避するため。
もう「買ったわけじゃないから売ったとき0円!」という手抜きで処理してしまってます。
ゲームとしてこれでいいのか?
TimeLength usedTimeに、開始時からの経過時間を入れられれば、返金額計算可能
なのですけど。totalMinutesを使うと、β2からα3に移植するときSecondsに直して、
割るところに*60加えてとハードコーディングが生じてあんまし良くないような気がして
いるので。なんとかTimeLength.fromDaysなどを使ってβ2からα3で同じコード使える
ようにしたいとこねくりまわしたんですがどうしても型キャストできなくてハマりました。
大した手間かけずにβ2・α3で共通コード使える手段で、初期配置3編成も値段つけ
られるなら、つけたげたいな、という程度のものなんですけど。
とりあえず上記仕様で売却益でるようにしたのが2.0.3.4として公開してます。
ソースもコミット済です。
声を上げれば動いてくれるものですね。
今後も、多くの人に伝える努力を怠らないでください。
>>662 実装された乗客の計算方法については良くわかりましたが、いくつか課題があるように思います。
課題
@特急などでも乗車率100%超はある。(200%くらいまで)
A混雑率は最高でも{(定員−着席定員)*2/定員}*100ですから、この計算式ではせいぜい180%止まり。
ダイヤが不適切な場合、250〜300%超の、いわゆる殺人的混雑が有得ると思います。
そもそも列車というのは、基本的に積み残し(乗客が乗りたい列車に乗れないこと)は出しません。
何故かというと、殆どの乗客は嫌でもその列車に乗らないと目的地に到着できないからです。
ですから、最大定員=(定員−着席定員)*2 というものは、本来は誰が決めるものでもないのです。
ここにリアリティを持たせるには、列車の乗車定員を変えるよりは、駅の旅客需要の計算方法を変えた方が良いのではないでしょうか。
それが難しいとしたら、amenityを使って最大定員をいじるとか。
一覧ファイルを見たところ、少しパラメータの見直しが必要な所もありますが
最大定員=capacity*3 /amenity
とでもすれば、上記の課題を解決できそうな気がします。
amenityは主観が入りそうなので、ある程度の値に決定する事が必要だと感じます。
で、車両の種別という概念を追加したらいかがでしょうかと提案。
車両の種別を選べば、列車に関する様々な細かいパラメータ(fare、amenityなど)を自動で設定できる機能。
amenityの値(案)
新幹線:1.5 (最大乗車率200%)
在来線特急・急行形:1.4 (約215%)
近郊型:1.3 (約230%)
通勤型:1 (300%)
それで満足できないプラグイン作者に対しては、従来どおり個別のパラメータを設定してもらえば良いでしょう。
・新幹線(高速鉄道) ・在来線特急・急行形 ・近郊型 ・通勤型 という4つが通常の旅客車の種別。 それに加えて以下の種別も準備しておいた方が良いでしょう。 ・貨車 ・事業用車両(機関車、作業用車両、線路計測車、荷物者など、乗客が乗らない車両) ・観光用車両(展望車、食堂車、ラウンジ車など、乗客が常に乗るわけではない車両) 「未定義」の場合は適当に「近郊型」の値でも流用しとけば良いのではないでしょうか。 そこの改変作業まで、プログラマが面倒見る必要はありませんよ。
補足 寝台車は通常、定員以上載せる事は無いので ・寝台車(amenity=0.34)という種別を追加した方が良いかも。
失礼、寝台車のamenityは3です。 ただ、これやると寝台車が常に満員になりそうですな。 (実際は乗車率悪いのに) 乗車人数の計算 (駅人口−消費乗客)*0.3*amenityは見直した方がいいでしょう。 実際、この計算式で乗車人数を表現できるとは思いません。
駅での乗車人数ですが、以下のようなファクターを加えた計算式にしては如何でしょうか。 ・運賃 ・速度 ・前の列車がその駅を発車してからの時間 以下のような状況を再現できれば良いかと思います。 @運賃が安く、速度が速い列車ほど乗客が乗る。 A運賃が速度に比べて高く、バランスの悪い寝台列車には、客はあまり乗らない。 一方、観光用車両を連結した列車は、週末に乗客が増えるようにするなどの工夫も必要。 B列車間隔が3時間もあるようなローカル線では、特急だろうが何だろうが乗らざるを得ないから 特急列車の乗車率もある程度上がる。 C列車間隔が短い通勤路線では、特急を選んで乗車する人は多くない。 D新幹線は運賃と速度のバランスが良く、それなりの乗車率を確保できる。 amenityは一種の制動係数として考えてみては如何でしょう。 amenityが高い車両は長距離用という扱いにして、駅での降車人数を少なめに設定し、客の入れ替わりを少なくする。 逆にamenityが低い通勤型は短距離用で、駅での降車人数を多くします。 以上、皆様の意見を求めます。
>>667-671 の、ID:xpPyu/cY って、
4月29日に
>>486 >>489 書いてるID:tMEW/tAM と同一人物だよね?
自分で「拘りたいならプレーヤー自身が自分の好きなようにcapacityを変更すればいいだろ。」
って主張したんだから、自分自身でそのとおり行動されたらどうですか。
以下そのときの書き込み引用。
486 名前:名前は開発中のものです。 投稿日:2010/04/29(木) 03:03:43 tMEW/tAM
駅の乗客とか定員とか、どうでも良い方向に労力かけすぎだろ。
489 名前:名前は開発中のものです。 投稿日:2010/04/29(木) 03:25:07 tMEW/tAM
オープンソースなんだから、拘りたいならプレーヤー自身が
自分の好きなようにcapacityを変更すればいいだろ。
プラグイン作者は今までどおり、各々の基準で定員を決定すればいい。
ちなみに自分の定員決定方法は・・・
車両のサービス定員を調査した上で
その車両が実際に運用される両数で編成を組成したときに、車両諸元と定員が一致するように
各車両(両先頭車、中間車、その他)の乗車定員を振り分ける。
定員と言っても色々種類があるが・・・
http://www.mintetsu.or.jp/knowledge/term/157.html そもそも乗車率100%以上載せたら法令違反だからね。有名無実な法律だが。
>>667 > @特急などでも乗車率100%超はある。(200%くらいまで)
自由席に限定すれば、今後のGWでも160%という報道がありましたが、
編成での多数派の指定席の車両との平均をとると、列車全体では100%ちょっとに過ぎません。
また、私鉄の有料特急では大多数が、JRでも全席指定の特急がありますし、
ゲーム中での特急の最大混雑率が100%ピッタリでも良いのではないでしょうか。
個人的には、ゲーム中の特急くらいは、お客さんには通路ではなくちゃんと
座席を提供してあげたいものですが。
> A混雑率は最高でも{(定員−着席定員)*2/定員}*100ですから、この計算式ではせいぜい180%止まり。
> ダイヤが不適切な場合、250〜300%超の、いわゆる殺人的混雑が有得ると思います。
250〜300%って、オイルショック前後の、国鉄が通勤五方面作戦とかいってた時代の混雑ですね…。
あの頃の日本人なら耐えられた(いや、耐えられなくて上尾事件になったんだっけ?)かもしれませんが、
おそらく現代がモデルなこのゲームで再現するのはどうでしょうか。
ここ最近のデータでは、最悪の混雑は山手線の216%、私鉄だと田園都市線の198%だそうです。
確かに、{(定員−着席定員)*2/定員}*100では現実の山手線の混雑は完全には再現できないかもしれませんが、
かなり近いところまで表現できていますし、なにより単純でわかりやすい計算式だと思います。
> そもそも列車というのは、基本的に積み残し(乗客が乗りたい列車に乗れないこと)は出しません。
> 何故かというと、殆どの乗客は嫌でもその列車に乗らないと目的地に到着できないからです。
地方の路線であれば、確かに積み残しは避けるでしょうけれど、列車頻度の多い都市部では
普通に積み残しますしねぇ…、というか乗客も無理して乗りませんし。
無理して250〜300%なんて大時代的な混雑率をゲーム中で再現する必要は無いと思います。
>>672 せっかく改善案を示したのにこういう非建設的なイチャモンを入れてくる馬鹿がriorio本人でない事を祈るわ。
レスの中身を見る事が出来ない人種はこのスレに必要ないんだよね。
>>673 確かにそういう考え方も出来ますが、現在か過去かの違いではないでしょう。
現在は過去に比べて、ダイヤや路線網が最適化されたからこそ、混雑率が低下してきているのです。
今後、急激に需要が伸びて路線建設や列車増発が追い付かない状況になる事があれば
また250%という混雑率を見る事が出来るかもしれませんよ。
ゲームのプレイヤーが、都市の需要に見合わないダイヤを組めば、300%という数字が出るのは当然ではないかと感じます。
なんか昔あった信号とか設置して交通量コントロールするゲームを思い出した
>>667 > 車両の種別を選べば、列車に関する様々な細かいパラメータ(fare、amenityなど)を自動で設定できる機能。
>
> amenityの値(案)
> 新幹線:1.5 (最大乗車率200%)
> 在来線特急・急行形:1.4 (約215%)
> 近郊型:1.3 (約230%)
> 通勤型:1 (300%)
これは無理でしょう。
国鉄時代ならともかく、今ではカテゴリーキラーな車両が多すぎます。
例えばE217系。
4ドアロングかと思えば編成中にはセミクロスもあり、グリーン車もあります。
これ、近郊型ですか、通勤型ですか?
近郊型か通勤型かで最大混雑率が70%も違うことになってしまいます。
211系も313系も近郊型のようでいて、オールロングシート車もいます。
205系も209系も通勤型のようでいて、セミクロスを一部取り付けられた車両もあります。
キハ120、オールロングの0番台とセミクロスの200番台の定員の差は7人しかありませんが、
オールロングは通勤型、セミクロスは近郊型になってしまうのでしょうか?
この辺の整合性をとり、かつ車両ごとに異なった定員数を再現するために、
議論の末考えられたのが、
{(定員−着席定員)*2/定員}*100
という計算式であり、seatcapacityというパラメータなのです。
>>673 特急の指定席の扱いですが、確かに指定席では普通は100%以上は行かないですね。
ただ
・自由席の立ち客を指定席の通路に移したり(東海道新幹線)
・定員を超えて乗車した立席特急券を販売して立席乗車を認める場合(東北新幹線)
もあります。
そこの扱いとしては色々考えられます。
@一律で100%までとする。
A指定席/自由席の区分をつくる。
B200%まで乗せるようにする。
CBと同じく200%まで、ただし、100%を超える部分に関してはamenityの高い車両or「着席率=着席定員/定員」が大きい車両に関しては、乗客の増加率を抑える
@はとにかく簡単。
Aは面倒だが、ライナーとかを再現できたり。
Bは
>>673 の問題がある。
Cは
>>673 の問題をある程度緩和でき、実際の条件に近い。
と考えますが、どうでしょうか。
>>676 そうなんですよ。E217系なんかが問題。
他にも似たような列車がごまんとあります。
定員は車両ごとに定義されていますから、車両の種別についても(「列車の種別」と定義していない事に注目!)
車両ごとに定義されるべきものと考えています。
ちなみにE217系のG車は余裕で乗車率100%超えますね。
>>674 > 確かにそういう考え方も出来ますが、現在か過去かの違いではないでしょう。
> 現在は過去に比べて、ダイヤや路線網が最適化されたからこそ、混雑率が低下してきているのです。
> 今後、急激に需要が伸びて路線建設や列車増発が追い付かない状況になる事があれば
> また250%という混雑率を見る事が出来るかもしれませんよ。
> ゲームのプレイヤーが、都市の需要に見合わないダイヤを組めば、300%という数字が出るのは当然ではないかと感じます。
どうでしょうか。
やはり、オイルショック前後と21世紀の現代では生活環境の違いは大きいものがあります。
その最たるものは自動車の普及です。特に地方では。
混雑率200%までならば、まだ乗客もガマンするでしょうが、250%(人の圧力でドアが開かなくなる…民鉄協会の見解)や
300%(物理的限界に近く身体に危険がある)ともなればマイカー通勤に切り替えてしまうことでしょう。
渋滞は激しくなるでしょうが、電車内で潰されるよりはマシと考えることでしょう。
実際、地方では鉄道を捨てて自動車に切り替えている例も多いのです。
列車に乗っているのは交通弱者(学生と高齢者だけ)という現状はよく聞かれることと思います。
プレイヤーが混雑率200%を超えても、車両の増車に踏み切らないのであれば、
単に乗客の逸走を招くだけではと思います。
まぁ、ゲーム中ではバスもマイカーも実装されてませんが…今のところ。
>>674 おいおい、そこで逆ギレすんの?
うわぁ
>せっかく改善案を示したのにこういう非建設的なイチャモンを入れてくる馬鹿がriorio本人でない事を祈るわ。
>レスの中身を見る事が出来ない人種はこのスレに必要ないんだよね。
rio2さんや他の人達が定員について建設的な議論をしていた4月29日に、
>>どうでも良い方向に労力かけすぎだろ
と非建設的も非建設的なイチャモンつけた本人がこういうことを言いますか。
へぇ〜〜〜〜〜
その「このスレに必要ないんだよね」って同じ言葉、4月29日に戻って自分自身に投げ
つけてみなよ。
あのさ、あなたがまずすべきはスレのみんなへの謝罪じゃないの?
「これまで、スレでおこなわれている建設的な議論を「どうでもいい」呼ばわりして
きたことは謝罪します。二度としません。ですから私も議論に加わらせてください」
って。
そうしたらみんなも許してくれるよ、きっと。
それもせずして誰も求めてない勝手な議論を始めて「俺様は建設的」ぶられても
冷笑しかできません。
capacityとは別に最大乗車数も車両プラグイン側に定義させて 駅の待ち人数を裁ききれない時だけそっちを参照するとかにしたらいいんでないの (あくまでも第1段階としての案) 待ち人数がどっち方面に行きたいかまではホームごとに待ち人数設定するとかしないと無理だろうけど
>>677 > @一律で100%までとする。
でいいと思いますけど。本来立席の設定無いんですし。
3両しかないのぞみ号の自由席で新大阪までデッキで立ちん棒なんて再現したくないですし、
つばさ号からMAXやまびこへの福島ダッシュなんかも再現したくないですw
>>678 > 定員は車両ごとに定義されていますから、車両の種別についても(「列車の種別」と定義していない事に注目!)
> 車両ごとに定義されるべきものと考えています。
それで、4ドアセミクロス車は近郊型ですか、通勤型でしょうか?
誰に聞いても意見が分かれるとは思いますが…。
> ちなみにE217系のG車は余裕で乗車率100%超えますね。
そうかと言って、いくらなんでもグリーン車で200%にはなりようがないと思いますが…。
>>682 >それで、4ドアセミクロス車は近郊型ですか、通勤型でしょうか?
>誰に聞いても意見が分かれるとは思いますが…。
て分かってるならいちいち聞かないで下さいよ。
それとも私に決定権があるのですか?
それこそプラグイン作者のさじ加減一つでしょう。
(何らかの基準を作り、それに準拠させるというのもアリだと思います)
それで満足できないならプレーヤー自身が書き換える。
それで問題ありますか?
今、あれっ、て思ったんだけど。
>>672 で
ID:xpPyu/cY == ID:tMEW/tAM
って書いてることにはなんの根拠もないよねえ?
単なるあてずっぽでしょー。
それに対してID:xpPyu/cY自身が否定もせず
>>674 のような反応をするということは、
これは
>>672 の書いた通り、
ID:xpPyu/cY == ID:tMEW/tAM
だったってこと?
それを自分自身で認めたってことだよねえ。
ID:tMEW/tAMは
>>517 でも
>pluginの属性を自分で変更すれば済む話。
>要は、便利にplugin.xmlのパラメータを吸い出してきて変更するツールを作れば良いんだろ?
>わざわざXMLという簡単に扱える言語でプラグイン作ってるんだから。
って主張してるんだから。
>>667-671 に対しては「pluginの属性を自分で変更すれば済む話」と回答すれば
それでオッケーなんじゃないかな。
OPBさんもそうは思わない?
こんなのの相手に無駄な労力使わないほうがいいんじゃないのかな。
逆に質問しますが、着席定員を比較すると 3ドアオールロング、4ドアセミクロス、4ドアオールロングの違いをどうやって出すのでしょうか。 恐らく通勤型に分類される3ドアロングの方が(定員−着席定員)は少ないですし 4ドアセミクロス、4ドアオールロングでは着席定員は4人しか違いません(その分サービス定員は違いますが) (定員−着席定員)という指標で一律に比較するのも難しいと思いますよ。
>でいいと思いますけど。本来立席の設定無いんですし。 >3両しかないのぞみ号の自由席で新大阪までデッキで立ちん棒なんて再現したくないですし、 >つばさ号からMAXやまびこへの福島ダッシュなんかも再現したくないですw まぁそういう意見が大半であればそれでも良いかと思います。 どうせやるならその辺まで再現できた方が、個人的には面白いとは思いますけどね。 >そうかと言って、いくらなんでもグリーン車で200%にはなりようがないと思いますが…。 200という数字は一つの案に過ぎません。 実態をもっと調査して、最適な数字を探していければいいと思います。
α3系統のリアル速度軸でお楽しみの皆様。お待たせしました。 FreeTrain EX Av α3.0.2.1出しました。 リアル速度軸の3系統で、やっとこさ【V2】プラグイン対応となりました。 また、【V2】プラグインセットにver 2.0.0.4出しました。 内容的には、道路プラグインを利用した線路敷石に、線路敷石styleを書き足したぐらいですが。 あわせてよろしくお願いします。 なお、α3.0.2.1では、plugin.xmlに記入されたすべての<price>を、内部で3倍して使用して います。 これにより、車両価格はおよそ1両1億円(基礎運賃fareの高い新幹線などは2億5千万円ほど) となり、建物価格もおおよそリアルな建設費用に近い金額となるはずです。 もし、建物価格でリアルな建設費用からかけ離れているものがあるとすれば、これからの 建物プラグインのパラメータ見直しにおいて修正したいと思いますので、ご報告ください。 パッと見で、あの一番最初に立ち始める「農家」などが安すぎる感じがします。 鉄道の線路建設費用などもβ2.0.3.1系の3倍に設定しています。 もろもろ含めたゲームバランスについても検証していただければと思います。
横からだけど、乗車率300%は行き過ぎとしても200%はあるかもね。 そもそも駅に待っている人が多いのに列車本数が少なければそれだけ乗車率は上がるだろうし 逆に列車本数が多ければ乗車率は下がると思う。 で今の仕様だと詰め込み乗客上限 = 着席定員 + ( 列車の定員 - 着席定員 ) * 2 で乗車できる最大の人数を求めていると思うけど、この「* 2」の部分を多少(例えば1.5 - 2.5とか) 幅を持たせて、乗車率を多少変化を持たせてみるとか。 混雑時(ラッシュ時)は乗車率が上がり(* 2.5)、通常時は乗車率が下がる(* 1.5)とか。 今更終わった議論蒸し返しても意味ないか。
>>689 いや、意味なくないですよ。
その「* 2」の部分の「2」が「2」でいいのかは、まだこれから議論と調整の余地がある数字です。
ここを「* 2.2」がいいとか、議論と合意ができれば変更したいと思ってます。
「2.5」はちょっとでかすぎるかなぁ?どうだろう。乗車率計算してみないと分からんけど……
順番前後しますが
>混雑時(ラッシュ時)は乗車率が上がり(* 2.5)、通常時は乗車率が下がる(* 1.5)とか。
この混雑時か通常時かというのを作っているのは、「建物の持つ人口」であるpopulation
なのです。
この表にあるような率で周辺の建物から駅に乗客が集まってくるわけで
http://www19.atwiki.jp/freetrain-exav/pages/137.html 周辺に家が多い駅は朝8:00にすごく混むというようになってるわけなんですね。
だから、このpopulationの変動によって、上記の「* 2」は「* 2」のままであっても、
8:00は上限に達するけど、10:00は上限まで達しない。
min( (駅利用人口 - 消費乗客数) * 0.3 * amenity , 列車の詰め込み乗客上限)
のうちの、(駅利用人口 - 消費乗客数) * 0.3 * amenityのほうが小さいからこっちが
使われるということになるわけです。
で
>そもそも駅に待っている人が多いのに列車本数が少なければそれだけ乗車率は上がるだろうし
これは難しい。
「この次の列車がすぐくるのか、なかなかこないのか」が分からないのです。
過去に出発した列車のからみでは、「消費乗客数」という考え方で(私、この言い方より、ソースの
変数名のgonePassengersのほうが「あ、行ってしまった客ね」って分かりやすい気がするが)
前までの列車にたくさん乗って行ってると、駅に残った客が少なく次の列車にはそれほど
乗らないということが実現されてます。
ここ数日でリリースしたバージョンのリナンバリングを行いました。 番号が変更になっただけで内容が変わったわけではありません。 Beta2.0.3.1→2.1.0.1 Beta2.0.3.2→2.1.0.2 Beta2.0.3.3→2.1.0.3 Beta2.0.3.4→2.1.0.4 α3.0.2.1→3.1.0.1 このリナンバリングによって、マイナーバージョン(2つめの数字)が「0」なもの=V1、 マイナーバージョンが「1」なもの=V2、と明確になったと思います。
>>690 書き方が悪かったorz
混雑、通常時の*2.5とかは乗車の方ですね。
詰め込み乗客上限 = 着席定員 + ( 列車の定員 - 着席定員 ) * 2
この最後の*2の部分です。
ここが例えばの話で、1.5 - 2.5まで変動することで、同じ型式の列車でもその時々の
乗車数が変わるという意味です。
で、書き直して気づきましたが、これ意味ない仕様ですねw
頭がボケていたのかorz
実際に乗る人数は
乗客数 = min( (駅利用人口 - 消費乗客数) * 0.3 * amenity , 列車の詰め込み乗客上限)
こっちですね
やっぱり頭ボケてるw
吊ってきますorz
>>692 >実際に乗る人数は
>乗客数 = min( (駅利用人口 - 消費乗客数) * 0.3 * amenity , 列車の詰め込み乗客上限)
>こっちですね
そゆことーー
でもラッシュ時間帯には列車の詰め込み乗客上限のほうで頭おさえられることになるから、
そこで立席*2を上限にするか*2.2を上限にするかって議論はアリだと思うのよ。
で、この「駅利用人口」を決めてるのが周辺にある建物のpopulationなわけで、
populationの数値を土日分どうするかとか、既存の平日でもおかしなところが
あったら直さなきゃとか(Residentalの7:00が少なすぎって指摘ありましたね)、
クラス増やすとしたら増やしたクラスはどういう数値にするかとか、それをplugin.xml
から情報抽出して既存パラメータの妥当性を確認してよくないものは直してとか、
そういうことがひいては、列車の乗客がちゃんと乗る、ということにつながるのです。
wiki見て思ったのですが、populationってクラスで定義してそれをplugin.xmlで指定してと なってますけど、新しく追加する、もしくはちょっとこの建物は特殊だから人工を変えたい という場合、いちいちプログラムを弄ったり、もしくは自分で作らないと駄目じゃないですか。 ある程度はbaseというので帰れそうですけど、特定の時間帯の人口を増やすとなると やっぱり新しく定義しないと駄目ですよね? これ、クラスよりはplugin.xmlの中で時間帯と人口を指定した方が建物プラグインの作者も 指定しやすくなる気がしますが、今更変更は大変そうですよね。 互換性の問題もあるだろうし。
システム側にはデフォルト値用意しておいてxmlの方に記述が存在しなければ そちらを適用した計算処理をするようにしておけばいいんじゃないの
>>694 >やっぱり新しく定義しないと駄目ですよね?
はい。
なので、今、欲しい新クラスがあれば具体的にこういう建物が使うクラスで
こういう人口変動するっていうのを示してもらえば、作りますよ。
どうせ数種類追加するわけですから。
そのついでに作れます。
>これ、クラスよりはplugin.xmlの中で時間帯と人口を指定した方が建物プラグインの作者も
>指定しやすくなる気がしますが、今更変更は大変そうですよね。
いやぁー、面倒なんじゃないかな。プラグイン作者さん。
本体のほうでこういうクラス用意するのはさほど大変じゃないと思いますよ。
>互換性の問題もあるだろうし。
まぁそれはV2プラグインの時点で、過去の本体では使えないの確定なんで考えなくて
いいでしょう。
>>695 オプショナルな項目についてはそれでいいと思いますが。
これ許すと省略すべきでないプラグインなのに省略しちゃったりしてめちゃくちゃになる
ことも多いので。記入必須・なければエラー!でもいいかと。
早く目が醒めちゃったので、population案作りました。
あくまでも案です。決定稿じゃないです。
これをベースにしてもらって、このクラスのこの時間帯はもっと多いとか少ないとか
だったらこんなクラスも追加して欲しいとかいやこれいらないとか、活発に議論して
いただけたらうれしいなー
http://www19.atwiki.jp/freetrain-exav/pages/147.html ホテルをビジネスとレジャーに分けたのは、とりあえずで、もし
「このホテルは両方の性格あるんだよなー」ってことがあればCombinationPopulation
組んで、両方にbaseを半々ずつふることでそれは実現できるしってことで。
学校は、中高校ぐらいを想定してます。
「大学はもっと遅くまでいるぜ」っていうのは、OfficePopulationクラスにしてもらう、
ということで。
あ…… その学校、普通のHourlyPopulationでは長期休暇を再現できませんね。
4/1〜4、7/25〜8/31、12/25〜1/4、3/25〜3/31は休日扱いになるように新しい
隠蔽クラス作ります。
>>698 了解しましたー。
わざわざロダ借りるのもアレなんで
とりあえずメールのほうに添付させていただきます
FreeTrain EX Av β2.1.0.5、α3.1.0.2、両者向けV2 Additional Plugin Set 2.0.0.5を 公開しました。 人口の平日・土日変化を取り入れ、また学校や遊園地などの特徴的な人口クラスを 取り入れました。 まだまだパラメータの調整を行わねばならない段階ですので、テストプレイをしていた だいたら、ぜひともパラメータのフィードバックをお願いします。 学校ですが、大学では院に行ったり卒論前になったりすると夏休みとかなしに研究 してたりするので、c477さん作の大学建物群のうち教育棟はSchoolにして夏休みあり、 研究棟は従来のOfficeのままにして夏休みなし、という変化をつけてみました。 ウチのコロネ島で、駅前にtoaruさんのナイトクラブビルを建てまくった歓楽街がある のですが、そのおかげで駅に乗客が集まる金曜夜にうまく出発する電車を設定して ないもんで、せっかくの新人口クラスが空振りになってたりします。 みなさんのほうでうまく乗客を拾えるダイヤを組んでみてください。 あと私案のままのResidentalなクラスでは、平日より土日の方が終日にわたって 幅広く乗客需要があるので、数時間に1本レベルの運転頻度だと土日のほうが1日 としての乗客数は多くなったりしている様子が伺えます。 朝ラッシュ・夕ラッシュにうまく列車がはまらないんですね。
>>697 学校長期休暇populationは正式なものにしても良いのではないかと。
なぜなら、学校が休みになると逆に人が増える遊園地やら動物園水族館(はなかった
様に思うけど)、そういう施設に使えそうだ。
実際にやるとすると、休日とダブるから平日の長期休暇中とでもするんだろうが。
プラグインの最新版か・・・乗客がデタラメで使い物にならない車両はなくなったから
まだマシだといえばそうなのだが、また色変えただけの○○タイプを削除する作業は
せにゃならんのか・・・。
>>701 あ。
今日だしたβ2.1.0.5、α3.1.0.2、両者向けV2 Additional Plugin Set 2.0.0.5で、
学校の長期休暇は実装できてるはずです。
ただですねぇ、これ人口クラスとしてはSchoolPopulationという名前なのですが、
夏休み=休日であることとを何月何日〜何月何日をif文で判定して、
そこは人がいないっていうハードコーディングしてしまってるんです。
なので、これを流用して
>学校が休みになると逆に人が増える遊園地やら動物園水族館
は作れないんです、ゴメンナサイ。
そのかわり、現時点では土日しか人の増えないLeisureLandPopulation・
LeisureHotelPopulationに、これもハードコーディングになってしまいますが
if文つけたして同じ期間休日扱いにすることは可能です。
そうしましょうか。
それか、Time.csあたりに、isHolidayとか関数作って判定した方がスマートかな。
それだと祝日対応もできるかもだし。
>また色変えただけの○○タイプを削除する作業はせにゃならんのか・・・。
うー、ごめんよー。
私個人としても色替え列車はキライなんですが、プラグインセットとして恣意的に
除外することはできないもんですから、お手数かけます。
あれかなぁ…… フォルダ構造を変えて色替え車両だけまとめて、フォルダいっこ
削除したらOKにする……と、それはそれで上書きインストールした人が二重になって
困っちゃうかー
P.S. 誰も読んでないかもしれないけど、SourceForge.jpにいくつかチケット登録しました
すいません、ヘルプ。 追加したコード部分がどうやってもビルドできなくなっちゃった。 たぶんまたC#の初歩中の初歩でつまづいてるんだと思うが、笑って指摘して欲しい。 ソース丸ごと、SourceForge.jpにコミットしてるので、見てもらったらいいのですが。 core\contributions\road\AbstractRoadContributionImpl.csです。 道路敷設時に費用が計上されるようにしたくて、かつ、道路styleのTypeがrailballastで あれば鉄道費目から計上し、それ以外のTypeであればバス費目から計上するように したいです。 まずここの70行目なんですが、 if( this.style.Type == railballast ) で「railballast」がコンテクスト内にないぞ、と怒られます。 このrailballastは、core\world\road\RoadStyle.cs内で public enum MajorRoadType:byte{ unknown, footpath, street, highway, railballast } と宣言してあるenum型なんですが。名前空間もちゃんと含まれてると思うのに? さらに次の71行目などで accounting.AccountGenre.RAIL_SERVICE.spend(cost); else accounting.AccountGenre.ROAD_SERVICE.spend(cost); と収支に計上しようとするところで、「accounting」がコンテクスト内にないぞ、と怒られます。 これはcore\world\accounting\AccountManager.csで、これも名前空間あってると 思うんですけどなんでだろう…… 以上2点、よろしくお願いします。
enum型を使う場合は型名.要素って書く。 だからこの場合はMajorRoadType.railballastが正しい。 ソース見てないけど、accountingは変数名、それともクラス名?
FTのソース(特にコア部分)見ると片っ端からリネームしたくなる 最初の開発者はC#嫌いだったんだろうか
>>703 追記
accounting.AccountGenre.RAIL_SERVICE.spend(cost);
を
freetrain.world.accounting.AccountGenre.RAIL_SERVICE.spend(cost);
に変更
または
using freetrain.world.accounting;
を先頭に追加して、
accounting.AccountGenre.RAIL_SERVICE.spend(cost);
を
AccountGenre.RAIL_SERVICE.spend(cost);
に変更
でどぉ?
>>704 >>706 ビルドとおりましたーー!
論理バグが残ってないか動かして確認する必要ありますが、
まずは一歩というところで、ありがとうございました。
accountingのほうなんですけど、参考にした線路をひくほうのコードで、
core\world\rail\SingleRailRoad.csでは、usingなしでいきなり私が真似たような
accounting.AccountGenre.RAIL_SERVICE.spend(cost);
と書いてて通ってるのは、これはなんでなんでしょう?
>>687 また「議論は済んだ、お前がやれ」の一点張り、そういう事言われましても理解できません。
現状が最も優れている理由だけ仰って頂いた方が十分に伝わりますよ?
私としては、過去に現実に起こった事象すら再現できない「リアルなシュミレーション」はちょっと。。。と思いますがね。
熟考するより先にあなたが動いてしまったのに「私は苦労したのだから尊重しろ」と言われましても。。。
頑張っているのは認めますが、正直「骨折り損のくたびれ儲け」だとしか言えません。
それに、そのような開発姿勢で、果たしていいゲームが出来るのでしょうか?
私が何度も言ってきたように「動く前に良く考えて」という事です。
あなたがコーディングする前に、皆でしっかり考えていれば、今回のように私が修正を求める意見
(あなたにとっては「苦情」でしょうか?)を申し上げる必要もなかったのです。
「車両の種別」については、以下の2点についても加味して、もう一度考えてみていただけますか?
@「車両の種別」が「列車の種別」でない点(
>>678 )
A今後プラグイン作者が大量の車両プラグインを製作した際、仮に今回策定したガイドラインに準拠していない場合
パラメータの管理・修正をするとしてどちらが楽か
・個々の車両のamenityとfare、その他のパラメータを個別に管理する。
・「車両の種別」を管理する。
暇があれば
>>670-671 の、駅での旅客の乗降の扱いについても返答してください。
これは比較的簡単に実装でき、かつ現状よりは良い案だと思いますが。。。
そこまで言うんならおまえさんもプログラムの勉強しろよw
>>708 したらばに書かれたことを2chに持ち込まないでください。
したらばで質問されればしたらばで受け答えもできますが、2chに持ち込まれた分に
ついては返答を要しません。
これは私の意志どうこうではなく私以外のこのスレ住人の総意です。
それでも持ち込みたいとおっしゃるんでしたら、あなたがあなたの責任でスレ住人
全員を説得してください。
以下、ほんとのチラ裏。
論理バグが取れねぇ〜
のはいいとして、Visual Studio 2008 Express Editionの根本的な問題に直面。
たとえばいま私がいじってる道路建設するコントローラGUIとかは、
freetrain.controllers.AbstractLineControllerで設計したやつを、必要なところで
継承して使いまわすっていうか、利用してるんだけど。
今回「費用」をCostBoxで表示したらそのままではRoadControllerのおかしなところに
CostBoxが出て困るからRoadControllerをデザイナで編集しようとしたところ。
>データが失なわれる可能性を防ぐため、デザイナの読み込み前に以下のエラーを解決する必要があります。
> 1 エラー
> このページが表示されている理由
> デザイナは型 'freetrain.controllers.AbstractLineController' のインスタンスを作成しなければなりませんが、
>型が abstract として宣言されているため、作成できませんでした。
となって、編集できない。これは建物の工事(仮)とかでも同じ現象が起こる。
が、abstractなコントローラはabstractで宣言しておかなかったら継承できないわけで
(ためしにabstract宣言消してみてどうなるかやってみたさw)、これどーにもなんないの?
RoadControllerは、結局、FreeTrain EX Avの画面見ながら「ツリー表示を上に12ドット狭めて」
「そのあいたところにCostBoxがはまるようにするにはSystem.Drawing.Point(12, 128)か」
とか全部手打ちで座標いれこみましたよww 俺何時代のプログラマだよwww
>>710 返答しないんじゃなくて出来ないんでしょ、事実を認めたくないんだから。
>>708 >>486 486 名前:名前は開発中のものです。 投稿日:2010/04/29(木) 03:03:43 tMEW/tAM
駅の乗客とか定員とか、どうでも良い方向に労力かけすぎだろ。
おいおい、コテ外し忘れてるよ。 ちょうど登場時期も一致するし、まさかYz氏を追い出した粘着荒らしって。。。 と、変な詮索はおいといて したらばに書いてあることって、大抵が言い訳と悪口だけで見る気も失せる。まして書き込みなんて。。。 定量的な評価なんか一つも無いんだもん。 それに一部のレスのさらに一部分しか見てないよあれ。 あんなところで口げんかしてても何の生産性も無い。 いい加減気づけ。
ちなみに
>>712 その忠告も聞かずにGW丸潰しした奴が
いまさらその発言を引用してくるなんて都合が良過ぎるんじゃないのかな。
>>710 freetrain.controllers.AbstractLineControllerの定義からabstructを外して、それで
デザイナは開けないですか?
で、編集終わったらabstruct戻して。
>>711 したらばにいけよ、おまえ邪魔なんだよ。
したらばいって思い切り議論してこい。
あとなYzは野郎から勝手に出て行ったんだよ。
経緯も知らんのに勘違いしたこと言うな。
>>707 よく、わからんね。
core\world\rail\SingleRailRoad.cs見るとusingないのにaccounting見れてるというのが。
しかもfreetrain.worldすらusingしてないような。
というかfreetrain.world.railとfreetrain.world.accountingは別空間だから見えないと思うけどなぁ。
うーん、なんでこれでビルド通るのか...
>>716 一段落ついたら一時的にabstract外せるかやってみます。
これからたぶん、何度もGUIいじることがあると思うので。
で、またヘルプ たびたびすまんw
ソースは今回コミットせずにロダにあげてますが
http://u4.getuploader.com/freetrain/download/68/FreeTrainEXAv2.0.1.6ALPHA.zip 今うまく動いてるのは、「道路」建設で、「バス」部門の支出につけること。
道路プラグインだけど「線路敷石(バラスト)」なものに限っては「鉄道」部門の支出につけること。
それぞれ道路コントローラで費用もあらかじめ正確に表示できてる。
で、今度はそれを組み込み済みプラグインの機関庫でやろうとした。
org.kohsuke.freetrain.rail.garageです。
建設・撤去を実際にしたときに、「鉄道」部門に支出をつけることは成功しました。
ただ、その前のワンクリックでアンカーして長さ決めるときの半透明時にCostBoxに費用を
リアルタイム表示させたいのですが、その数値が道路のときの安いままで機関庫の実際
の費用にできていません。
この費用計算の部分は、AbstractControllerImpl.csにcalcCostOfBuild・calcCostOfRemove
をvirtual宣言して、AbstractLineController.csの中で道路の費用でoverrideしてます。
それを同じようにTrainGarage.cs内でoverrideしたらイクだろうと思ってやってたのですが、
できませんでした。
その残骸が152行目〜179行目のコメントアウトで、これを実行できたらリアルタイム費用
表示できるはずなのにーーというところなのです。
いや、そもそもTrainGarage.cs内でAbstractLineController.csを継承してねーじゃん、という
のはまずあるツッコミどころなのですが。
あれ?じゃあこの機関庫の建設メニューはどっから継承されてきてるんだろう??が不明。
AbstractLineControllerをどっか経由で継承してきてるのは間違いないので。
あ まちがえた ロダにあげてるのはビルド済のバイナリです orz ソースはこれからSourceForge.jpにコミットしてきます orz orz
>>708 なぜ頑なに自分でプログラミングすることを拒むのか分からないです。
あなたの要望のみを実現するだけであれば、そのためのC#の習得には
それほど時間は掛からないと思いますよ。
もちろん、キレイなソースを記述したいとか、自分で1からA列車モドキを
作成したいとなると話は別ですが。
FTを「A列車もどき」などと思って作ってもらいたくはないな。 ぐっさんに失礼だろ。
riorioと愉快な仲間たちは一回抜いてください。多分それで解決するんじゃないかなぁ。 解決しないなら、もう一回抜いてください。 まだ解決しないな(ry
>>714 ここで口喧嘩したら生産性がないどころか、周りのやる気を殺ぐんですが。
ここで騒いだら周りに迷惑だといい加減気づいてください。
自分以外の意見が何も見えないのですか?
迷惑だから他でやれとさんざん言われて、
「したらばの内容が〜」とか言い訳して、
こっちで文句言い続けるとはどういった了見でしょうか。
>>724 悪いが直接生産に関与しない発言ならあなたもあっちでやってくれ。
私もこれを最後に以後はあっちでちゃんとトリ付きでやるよ。
スレの皆ごめん。偉そうに言わせてくれ。
以後も続くかもしれない。いや、多分続く可能性は皆も理解できると思う。
でも完全にスルーして欲しい。
もしこの発言にも文句があるならあっちで話そう。一回トリ付きで書き込むよ。
これ以上ここが荒れてはいろいろな意味でマイナスがでかすぎる。
FreeTrain EX Av β2.1.0.6だしました!
【2.1.0.5 -> 2.1.0.6 変更箇所】
・地下線路の建設費を地上の2倍に設定した
・道路の建設費・撤去費がバスの収支に計上されるようにした
・鉄橋・ガード高架・トンネル・機関庫の建設・撤去に費用がかかるようにした
・サッカースタジアムの建設費が計上されるようにした
・半ボクセル建築の建築費が子会社の収支に計上されるようにした
・建物総合の建築費が子会社の収支に計上されるようにした
・地表の工事費が子会社の収支に計上されるようにした
・鉄道アクセサリの建設費が鉄道の収支に計上されるようにした
・「建物の建設(仮)」と「貸ビル」をメニューから削除(建物総合に完全移行)
・人口クラスに長期休暇と祝日(ハッピーマンデー施行前)を実装
・LeisureHotelPopulation・LeisureLandPopulationでは長期休暇中の平日は、週末と通常平日の間の来客がある
・ブルドーザーによるボクセル撤去及び各メニュー内の撤去を行った際に経費が計上されるようにした
おそらく、現時点で実行可能な操作で考えうるすべての支出を実装出来ているはずです。
もし抜かりがあったら教えてくださいw
ただこうなると、子会社(建物)が単なる金食い虫になってしまうので、今度はいかにして
子会社の儲けを実装するかという点が課題かと思います。
【既知の問題点】
・鉄橋・ガード高架・トンネル・機関庫の建設時、ダイアログ中に表示される「費用」が正確ではない
(収支表には正確に記載される)
これが解決できてません。詳細は
>>718 のとおり。力及ばずすいません、分かる方教えてください。
あと、「地表」コントローラにもCostBoxつけようとしたのですが、こっちはうまくコントリビューションの
priceをゲットできなくてやはり実装できてません。コントローラにCostBoxつける余地だけ作ってます(トホー
>>725 そうは言っても肝心の ID:gdjSYFhS がしたらばに移ってくれず、
現在ほぼ唯一の FreeTrain 本体開発者であるりおりおさんが
彼の書き込みにより気力を無くしてしまう以上、ここでやるしか
ないでしょ?
問題は皆がスルーできるかどうかではなく、彼により開発者の
開発意欲が削がれることなんですよ。
>>727 いや、皆が全員スルーできたら、あんまり気にはなりません。
私はもちろんここではスルーしますし、看過できなければしたらばに書くまでのことです。
一番エナジードレインになるのは、彼の蒸し返しにつられて、種別がどうのなどという
解決済の議論に乗っかってしまう人が出ることです。
ここでそういう蒸し返しが起こると、それが一番つらい。
このことは皆様にご理解いただけると幸いです。
まぁ彼に対して、蒸し返しへの反応をしたくなれば、それもしたらばに書いてもらえれば
ここに書かれるのとは違ってさしてダメージにはなりません。
せっかく場所用意したので、したらばのほうも有効活用していただければと思います。
>>725 すいません。以後気を付けます
>>726 いろいろ変更点があるようですが
これから作るプラグイン関係のxml文書は今までどおりで大丈夫ですかね
また子会社の儲け云々は、やはり建物そのものに付与させる形になりそうな気がしますが・・・
何分「赤字が発生しない」という状態にすると、ゲームとしては成り立たなくなりますし
調整が難しそうですね
本体のほうで調節するとなると高さとボクセル数から維持費を持ち出して、
居住・就労人口から利益を算出させる・・・ってところですかね。
しかし数値固定じゃゲームになりませんし・・・
>>728 >私はもちろんここではスルーしますし、
えっ
>>729 >これから作るプラグイン関係のxml文書は今までどおりで大丈夫ですかね
建物プラグインはV1仕様で作ってもらえればと思います。
それはそのままではV2本体では使えませんが、公開されたらそれを私の方で
V2仕様に書き換えてAdditional Plugin Setに含めて公開します。
建設費・priceの数字が10000〜100000違うことになるので、V1に揃えた方が
たぶんこれまでの人には親切じゃないのかなぁ。
もうモガミさん自身がV2で遊ぶ!と決めておられたら、最初からV2で作成され
てもかまいません。
wikiのGenericStructure解説は、V1/V2両対応の書き方をしておきました。
http://www19.atwiki.jp/freetrain-exav/pages/111.html 建物の場合違いはpriceだけですので
>【V1】プラグインでは、この<price>に設定する数値は現実の建物価格の1/30000の値を記入します。
>30000000の一戸建て住宅であれば、1000と記入します。
>
>【V2】プラグインでは、この<price>に設定する数値は現実の建物価格の1/3の値を記入します。
>60000000の木造アパートであれば、20000000と記入します。
というところで。
V2のβ2.1.0.5で新規追加された人口クラスについてはここを見てください
http://www19.atwiki.jp/freetrain-exav/pages/136.html P.S.
駅とホームの建設費が抜かってた orz
何点か。
>>718 まずどのソースを登録したとありますが、問題のあるソースがどのバージョンなのか書いてくれると
ありがたいです。
次に
>それを同じようにTrainGarage.cs内でoverrideしたらイクだろうと思ってやってたのですが、
>できませんでした。
どういう状況になるのですか?
ビルドが通らない?
動くけど意図した動作にならない?
もっと具体的にこう書いたら、こうなったと書いて欲しい。
>>732 すみません。
問題のあるソースは、コミットしましたと書いた時点の最新のもの、
からそれ以降現時点最新のものまで引き続き同じ問題を抱え続けています。
リビジョンでいえば74と75がそうです。
>どういう状況になるのですか?
>ビルドが通らない?
ビルドが通りません。
「calcCostOfBuildはoverrideすべき相手がみつかりません」「calcCostOfRemoveは(ry」
という意味のエラーになりました。
なのでその箇所を /* */ してビルドとおしたのが今公開してるバイナリになります。
>>733 すいません、書き方悪かったです。
バージョンというのは1.0系なのか、2.0系なのか、ALPHA系なのかという意味です。
ビルドが通らないのですね。
とりあえずtrunkの下のソースを見たところ
TrainGarageContributionImpl<-SpecialRailContribution<-LineContribution
<-Contribution
のような継承の流れなのでAbstractControllerImplは継承してないかと。
もうそろそろおねむの時間なのでこれ以上の調査は今日は無理です〜
>>734 あぁー、重ねてもうしわけないです。
同時公開したバイナリがβ2.1系なことからβ2.1系の話なのは自明だと思い込んでました。
>TrainGarageContributionImpl<-SpecialRailContribution<-LineContribution
><-Contribution
>のような継承の流れなので
そうなんですよねー
じゃあ、コントローラ(GUI・ダイアログ)はどこから継承してきてるの??というのが
分からないのです。
動作的にも、またビルド時のエラーメッセージからも、コントローラとしては
AbstractLineControllerを継承してるはずなんですけど。
これが解決したら、α3.1系に支出関係のアップデートを持ち込みたいと思います。
今夜はβ2.1系で、駅舎建設とホーム建設の費用支出ができました。
駅舎・ホームの撤去には費用0としてますけど、それはさすがにいいですよね。
>>660 でまとめたことの再掲&現状報告
・列車売却益、即1/2〜1年後1/3〜2年後1/4〜の実現。
→実装済
・特殊線路(鉄橋など)の敷設撤去に通常線路と同等のコスト計算と徴収
コスト計算と支出は実装できてる。ダイアログ表示がデタラメなままなのを要改修
・道路の敷設に、鉄道よりは安いが一定の距離比例コストを計算して「バス」項目から徴収
→実装済
・今まで「道路プラグイン」として実現されてきた線路敷石=バラストについて、
一定の距離比例コストを計算して「鉄道」項目から徴収 →実装済
・鉄道アクセサリの建設や建物の建設できちんとコストが発生・徴収されるように
→実装済
・V2における、列車プラグインのfareや、運行コスト計算は適正かチェック
テストプレイのフィードバック待ち
・V2における、建物プラグインのpriceは適正かチェック
テストプレイのフィードバック待ち
・建物プラグインの「人口」(population)に土日を設ける
→実装済、パラメータの調整はテストプレイのフィードバック待ち
・建物プラグインの「人口」(population)に祝日を設ける
→実装済、パラメータの調整はテストプレイのフィードバック待ち
・建物プラグインの「人口」(population)のクラスがおかしいの、baseがおかしいのの修正
モガミさんがExcelにまとめはじめてくれてます
・建物の人口クラスに、これまでのに追加して、学校・ホテル・遊園地・飲み屋を作ろう。
→実装済、plugin.xml書き換えも完了してPluginSetとして配布中
あとは実装できてないこといろいろですが、優先度はどうしましょう。
これから先にやって欲しい、というのがあれば言ってもらえればそこから手をつけます。
とくに、乗客下車と子会社とどっち先やる?っていうの。
・今はA4ゆずりで「駅に到着したら乗客全員そこで降りちゃう」けど、これを「一部は降りる
が残りは乗り続ける」ようにできないか?とか思いついただけ
それと並行して、ダイヤとして「乗車のみ(乗ってきた客全員とじこめ)」設定もあったら
欲しい?とか
>>459 >>482 >>504 ・子会社(建物)を意味のある収入計算をどうやるか
これは私一人では思いつかないのでみなさまからのアイディアを大募集
現状の「子会社売買」ウィンドウに出てくる数値は、建設価格priceに立地の地価かけた
程度の超簡易なもの。収入の大小はあるが絶対赤字にならない。
・サッカースタジアムと同様に、プロ野球チームをもって試合させて球場収入と試合後の
観客輸送できるように。画像は既存建物プラグインの球場から拝借
といっても交流戦とか2リーグ制とか実装できんですよw 対12チームランダム対戦で
いいですか。
・バス
欲しいねぇ〜 誰か実装してくれないかな
・貨物列車が意味のある貨物を運輸できるように
したいねぇ〜 誰か(ry
・α3系統のV2対応
→β2.1.0.5相当のは公開済
なんか最新単体だけでは起動しなくね? 前のバージョンに上書きしたら動いたけど
β2.1.0.6は問題なくて、動かないのはα3.1.0.2のことですよね。 うげっ、本当に動かない。 なんだろう…… 前バージョンに上書きしたら動いたんですか? あっれーー 調査します。 ごめんなさい。
うん、リリース毎に落としてるわけではないんで 手元にzip残ってた3018を全展開して、そこに3102のファイル全部上書きって形で動いた (どっちも、追加プラグイン等はなしの状態)
なんか、ウチでもよく分からなくて。 手元でもアーカイブは動かなかったけど、リビルドしたら動いて、あれーーってかんじで。 とりあえず今あげなおしたものは動くと思うのですが。 あと、ソースのビルドができないって言ってた方も、今はできると思います。
ちょっと改造してたら、セーブデータ互換性に問題をはらんだバージョンができてしまったので、
どう修正したらセーブデータを互換性維持を取り戻せるかご教授願います。
http://u4.getuploader.com/freetrain/download/69/FreeTrainEXAv2016ALPHA.zip PASS: ALPHA
β2.1系統なんですけど。
「【売上レポート】見てるとき、「今日」とか「今月」とか、最後の最後どうなったんだよーー」
と分からないことが多くてイライラしたので。
「昨日」「昨月」「昨年」をタブにつけたしました。
いつでもゆっくり、1日の結末・1ヶ月の結末を確認できるようになりました。
が、新規ゲーム開始では問題ないものの、既存セーブデータをロードするとエラーに
なって異常停止してしまいます。
accountingの「昨日」「昨月」「昨年」のインスタンスが作られてなく、「昨日」「昨月」「昨年」
にアクセスしようとしたときにエラーになるものです。
なので、エラーを未然にnullかなにかで判定してなければnewする、というような感じで
対策できないかと思うのですが、どこでさせたらいいのか、またそれでいいのか、という
のが分かりません。
あと、こういうときって既存セーブデータをロードしても「昨日」「昨月」「昨年」のインスタンス
は0フィルで用意されないっけ??ていうのも疑問点ではあったり。
アーカイブ同梱のaccountingフォルダに入ってるのが、core\world\accounting以下の
ソースです。
ごくり…
>>742 新しいオブジェクトを追加したけど、データをロードするとそのオブジェクトが生成されず
参照した時に例外が発生するということでしょうか?
MSDNの「カスタムのシリアル化」というところにデシリアライズした時にオブジェクトを初期化
するために呼び出すメソッドが書かれています。
OnDeserializedAttributeという属性をメソッドに付与することでデシリアライズした後に.NETから
呼び出されるようになります。
[OnDeserialized()]
private void OnDeserializedMethod(StreamingContext context)
{
//ここで追加されたオブジェクトを生成する
}
メソッド名は何でもいいですが、パラメータはこのまま書く必要があります。
ただ、このパラメータは使う必要はありません。
このメソッドを新しいメンバが追加されたクラス内に書いておけば、後は.Netがデシリアライズした
後に勝手に呼び出してくれます。
ちょっと古い件ですけど
>>703 の名前空間について。
MSDN呼んでたり、IDE上で確認しましたが名前空間の性質として以下のようですね。
例えばこの前のAbstractRoadContributionImpl.csのAbstractRoadContributionImplですが
これはfreetrain.contributions.roadという空間に属しています。
こいつの場合は
freetrain.contributionsに属している空間はfreetrain.contributionsを付けずにrail.RailAccessoryContribution
とかland.Bulldozerとかで参照できる。(freetrain.contributions.roadから見ると兄弟にあたる)
更にその親であるfreetrain.contributionsの兄弟であるworldやframeworkは
world.accounting.AccountGenreやframework.plugin.PluginManagerというように参照できる。
この両者の違いは、
・自空間と兄弟の場合は兄弟の空間名から書き始めることができる
・自分の親の兄弟の場合はその兄弟の空間名から書き始めないと駄目
ということです。(すっげぇややこしいですが)
で、この前のAbstractRoadContributionImpl.csのAbstractRoadContributionImplの場合は属している
空間がfreetrain.contributions.roadなので、直接親空間の兄弟の子であるaccountingは参照できず、
その親であるworldから書き始める必要があります。
で、SingleRailRoad.csのSingleRailRoadの場合は属している空間がfreetrain.world.railなので兄弟で
あるaccountingは直接accountingから書き始めることができるということです。
かなーり、ややこしいですが。
そのため、AbstractRoadContributionImplからAccountGenreを参照するためには
・world.accounting.AccountGenreと書く
・using freetrain.world.accounting;を先頭に追加する
のどちらかということです。
長文すまん。
>>744 あー、今見直したらちょっと問題があるか。
というのはとりあえず今のバージョンでロードすると新規に追加したオブジェクトが生成されて
問題が発生しないようになる。
今のバージョンでセーブされたデータをロードすると既に生成されてシリアライズ化されている
ため、新規に追加したオブジェクトもちゃんとロードされた状態になる。
しかしOnDeserializedMethodメソッドでオブジェクトを生成しようとするので、既存のオブジェクト
が消去されて新しくオブジェクトが生成されてしまう。
解決作としては
・新規追加オブジェクトを生成する前に、そのオブジェクトが存在するか確認する
ない場合は生成、ある場合は何もしない
チェックは
classname aaa = obj as classname
とas演算子で別オブジェクトに代入して、aaaがnullであれば生成されていない、null以外なら
既に存在すると判断
・そもそも保存する必要のないオブジェクトであれば[NonSerialized()] を付与して保存されない
ようにする
>>744 >>746 さんくすーー
でも両者あわせて考えると結局現物に即するとどうしたらいいんじゃ?というのが
また分からなくなってしまってます。
>チェックは
> classname aaa = obj as classname
> とas演算子で別オブジェクトに代入して、aaaがnullであれば生成されていない、null以外なら
> 既に存在すると判断
この考え方は理解できるのですが。
これをif文で判定した時の新たに生成するのはnewになるのかな?
744に書いてもらったOnDeserializedAttributeは使えませんよね。
クラスを生成してるのがTransactionHistory.cs内で、
参照しててエラー起こしてるのがAccountSummaryWindow.cs内なので、
判定するとしたらAccountSummaryWindow.csで判定することになるのですけど
追加生成をAccountSummaryWindow.cs内でやって大丈夫?
なんかすっきりしない……
クラスを生成してるのがTransactionHistory.cs内であれば、TransactionHistory.csに OnDeserializedメソッドを追加です。 参照することは関係ないです。
>>748 話が循環してるーー
それだと746な解決策がなってないではないですかー
今回問題になってるのは
public TransactionHistory() {
day = new DayTransactionSummary(this);
month = new MonthTransactionSummary(this);
year = new YearTransactionSummary(this);
yesterday = new YesterdayTransactionSummary(this);
lastmonth = new LastMonthTransactionSummary(this);
lastyear = new LastYearTransactionSummary(this);
}
の部分の、yesterday/lastmonth/lastyearの後ろ3つのはずなんですが。
ソースのケツんとこに
[OnDeserialized()]
private void OnDeserializedMethod(StreamingContext context)
{
public TransactionHistory() {
yesterday = new YesterdayTransactionSummary(this);
lastmonth = new LastMonthTransactionSummary(this);
lastyear = new LastYearTransactionSummary(this);
}
}
だと「}がない」とか「;がない」とか怒られてビルドできん???なんか根本的に間違えてる
可能性大(自分が)。
そこんとこ見たいのに、ぐぐってMSDN読んでみても「// Code not shown.」『いやそこが
見たいんじゃボケェ』なの自分だけ?
書き方が全然違う。 正しくはこう。 public class TransactionHistory { public TransactionHistory() { //コンストラクタ yesterday = new YesterdayTransactionSummary(this); lastmonth = new LastMonthTransactionSummary(this); lastyear = new LastYearTransactionSummary(this); } [OnDeserialized()] private void OnDeserializedMethod(StreamingContext context) { // デシリアライズ時に呼ばれる yesterday = new YesterdayTransactionSummary(this); lastmonth = new LastMonthTransactionSummary(this); lastyear = new LastYearTransactionSummary(this); } } これが基本の書き方ですね。
どうでもいいけど属性に()付けるのダサい 厳密に書きたいんだったら[OnDeserializedAttribute()]と書くべきだし中途半端
すまん、今までのコテは忘れてくれwwww
外し忘れていたw
で、
>>746 の問題解決のためにはごめん、
>>746 は冗長すぎたので簡潔にすると
[OnDeserialized()]
private void OnDeserializedMethod(StreamingContext context) { // デシリアライズ時に呼ばれる
if (yesterday == null) {
yesterday = new YesterdayTransactionSummary(this);
}
if (lastmonth == null) {
lastmonth = new LastMonthTransactionSummary(this);
}
if (lastyear == null) {
lastyear = new LastYearTransactionSummary(this);
}
}
という書き方になる。
つまりnullチェックしてnullなら生成ということ。
>>751 なあ、横やり入れて来るのならおまえがriorio氏に教えろよ。
知っているのに教えもしないやつは黙ってろよな。
riorio氏、今後は
>>751 が教えてくれるそうなので自分は引っ込んでおきます
わぁ、751のばかばかばか〜
せっかく教えてくれてたのに。
で、今まで変数増やしたりしても今日みたいにハマることなかったのになんでだろーって
不思議だったんだけど。
変数がreadonlyだと旧セーブデータのデシリアライズのとき初期化されないとか、ある?
public TransactionHistory()の
day; Month; year; yesterday ; lastmonth; lastyear;
これ全部readonlyついてた。
今 OnDeserializedに
>>750 な記法で書いたら、「読み取り専用なものはOnDeserialized
できません」て怒られて。readonly外したらビルド通ったところでこれから動作確認なん
だけども。
ためしてみたけど、readonlyだから、ということはないみたいだなぁ。
なんだろう??
Avになってからこっち、セーブデータの互換性で悩んだことなかったんだけど……
謎だぁ。
で。
>>750 な記法のままで、
>>752 のようなif分null判定を入れなくても、
新セーブデータを読み込んだときに既にデシリアライズ成功して変数あったら
それが上書き初期化されるということはなくセーブした数値がちゃんと読めたので
if分判定不要に思えたのだが。
間違ってないよね?
OnDeserializedはシリアライズ後に呼ばれるんだから チェックしないと全部上書き初期化されるよ
757 :
756 :2010/05/11(火) 21:54:22 ID:aqFTq1CD
デシリアライズ後の間違い
>>756-757 理屈としてそうなのは分かるのですが、実際に変数追加後から新規ゲーム開始して
一ヶ月ぐらい経過してセーブしたデータを。
750記法のif文判定してない本体でロードしたとき。
もしyesterday/lastmonth/lastyearが強制初期化されてしまってたら「昨日」の収支は
0,0,0になってしまっているはずなのですが。
実際にはロード直後に売上レポート開けて「昨日」を見ると、ちゃんとセーブした時点の
昨日のデータが入ってるんですよ。
だから初期化されてないんです。
さて。
問題解決したことだし。日計は1ヶ月、月計は1年分ぐらいは保存するようにするか。
それをどう表示するかが問題だが。
タブ増やすわけにいかないし、「過去ログ表示」ウィンドウでも新たに作るかな。
>>720 >>727 仕事が忙しくプログラムに触る暇は無いため、今までも長い事プラグイン製作や仕様の議論という形で参加してきました。
これからもそのスタイルでいきたいと思っています。
ですので、これからもFreeTrainを良くする為の提案は続けます。
私の提案は、開発者のやる気を殺ぐためのものでは無いですよ。
結局は、彼が意地を張っているのです。私はそんなつもりは無いのにね。
>>728 「解決済み」と言うには早いんじゃないでしょうか。
私の提案と現状とを比較した上で、どうしても出来ない理由を示して頂ければいいのです。
あなたの愚痴を聞いても、正直、何の参考にもなりませんよ。
以下チラシの裏
結局複数IDでスレを荒らしていた件についてはスルーなのかな?
面の皮の厚さだけは一級品ですね。
これを見て見ぬフリをするどころか全力フォローする諸氏にも軽く失望。
こんなんでいいの?このスレ。
>>759 にはしたらばで回答しました。
以下抜粋:
>私の提案は、開発者のやる気を殺ぐためのものでは無いですよ。
それはあんたが決めることじゃねー
「開発者がやる気を殺がれているという『事実』『現実』」から目をそむけるなアホウ。
FreeTrain EX Av β2.1.0.7と、V2 Additional Plugin Set 20100511をあわせてリリース。 【2.1.0.6 -> 2.1.0.7 変更箇所】 ・「売上レポート」に、「昨日」「昨月」「昨年」を追加 ・自動発展による畑などの「地表」ボクセル造成で経費徴収されていたものを修正 独自の実行DLLを持ってる「地表」プラグインのチェックが漏れている可能性が有りますので 、もし自動発展で「これ」ができたときに経費を徴収されてしまった、ということがあればバグ レポート等でお知らせください。 2010年05月11日版 version 2.0.0.7 ・price,operationCostがおかしい駅プラグイン修正 2010年05月10日版 version 2.0.0.6 ・priceがおかしい一部プラグイン修正 2010年05月09日版 version 2.0.0.5 ・TOMYさんの建物プラグイン価格調整 ・学校の建物プラグインにSchoolPopulation適用 ・遊園地や景勝地の建物プラグインにLeisureLandPopulation適用 ・ホテルや旅館の建物プラグインにLeisureHotelPopulationあるいはBusinessInnPopulation適用 (要本体FreeTrain EX Av β2.1.0.5)
本日のリリースは、
>>744 さんのアドバイスがなかったら実現できませんでした。
ありがとうございました。
Plugin Setは、ウチでマップを自動発展させて様子を伺い、おかしいなと思ったもの
があったらちまちま直しています。
もし、最新版でもまだpriceの設定がおかしいと気づいたものがあれば、お知らせ
くださいね。
さてさて。
>日計は1ヶ月、月計は1年分ぐらいは保存するようにするか。
というのにとりかかってみたのですが。
早速いきづまってます <はえぇよw
β2系でソースコミットしてあるんですけど(trunk下)。
core\world\accounting\TransactionHistory.cs
で、とりあえずRecorderクラス内に_dayAgoTotal = new long[32]; _monthAgoTotal = new long[13];
と配列でもって、毎日
for( int i=0; i<31; i++)
_dayAgoTotal[ i+1 ] = _dayAgoTotal[ i ];
ってやってるんですけど(配列の中身いっこずつずらせ!って命令あったりする?C#に)
ええとこれですね、変数もRecorderクラスもprivateなものなんですよね。
で、カプセル化されてて、もともとあった_dayTotalとかは、いったん
internal long dayTotal { get { return _dayTotal; } }
としたあと、これをさらに
private readonly Recorder sales = new Recorder();
private readonly Recorder expenditures = new Recorder();
とここでもまだprivateで、
private class DayTransactionSummary : TransactionSummary { private readonly TransactionHistory history; internal DayTransactionSummary( TransactionHistory _history ) { this.history = _history; } public override long sales { get { return history.sales.dayTotal; } } public override long expenditures { get { return history.expenditures.dayTotal; } } } と、それぞれの項目いっこずつになんとかTransactionSummaryってクラスを作った上で、 public TransactionHistory() { day = new DayTransactionSummary(this); month = new MonthTransactionSummary(this); year = new YearTransactionSummary(this); yesterday = new YesterdayTransactionSummary(this); lastmonth = new LastMonthTransactionSummary(this); lastyear = new LastYearTransactionSummary(this); } と、ここでやっと外に出るんです。 えーーーと、これ、_dayAgoTotal[]; _monthAgoTotal[]; を外に連れ出すのってどぉーすん ですか、こういうとき。 無理ぽ??? 外から、TrainsactionHistory.dayago[5]とかで読み出せるといいなーってかんじなんですけど。
TrainsactionHistory.dayago(5)ではあかんですの?
>>764 おっけーですよ
むむむ、ということは、だ。
今書き込みながら考えてるので、思考の過程だだもれなのはゆるしてw
んー、でも月と日と変数型では見分けつかないから、外に見せるクラスは日と月と
べつのものを用意しないとだめかな。
クラス名考えるのめんどくさー
というかTransactionHistoryという既存クラス名がめっちゃよすぎ!これ以上これを
表すのに良い名前はないというかんじで、それよりいい名前がうかんでこないww
TrainsactionHistory.dayago(5)ではなくTrainsactionDaysHistory.day(5)とか
TrainsactionMonthsHistory.month(8)とかならアリかな?
っていうか、あれ?そうするならTrainsactionDaysHistory(5)でよくて、.dayいらなくね?
public TransactionDaysHistory( int num ) {
で return TransactionSummary( num );
} ってこれじゃあ意味ねーー
public TransactionDaysHistory( int num, TransactionDaysHistory _history ) {
this.daysHistory = _history;
}とかになるんかな
public override long sales { get { return あれ?これじゃだめだな。
んーーー。なんか考えがまとまりません。
あああ、聞こうと思ってたこと書き忘れてた。 で、30日or12ヶ月履歴貯めたら、ただ数字並べるよりグラフ表示した方が分かりやすいし、 既に右クリックメニューにメニューだけ「グラフ表示」っていうのがあるので、これ選んだ時に することを実装したらちょうどいいかなって思ってるのだけど。 そのグラフ表示よ、問題は。 ぐぐったら、www110.kir.jp/csharp/index.htmlってとこに「著作権ありません」な各種グラフ 描画ソースコードが掲示されているので、それをお借りしてくるというのが一案。 ZedGraphControlっていうライブラリが綺麗なグラフを描けるようなので、外部ライブラリ に頼ってみるというのが一案。 ZedGraphはLGPLなのでAvと同梱配布しても問題ない。 どっちがいいでしょ?
767 :
名前は開発中のものです。 :2010/05/12(水) 07:39:28 ID:nmXysG2o
> 620 :riorio ◆rio2xMQlrQ :2010/05/07(金) 01:28:15 ID:naC75q3v > > 私から見ると、ID:DQiiOCVM がどこの誰なのかはコテ・トリつけてるとまったく > 同様に丸わかりなんですよ。 > プラグイン公開するときにはauthorにコテ入れてるのに、スレに書き込むときには > ガンとしてコテ入れないことにはなにかしらうしろめたいところがあるんだろうから > あえてそこをこっちからバラすいやがらせするのはやめとこうと思って名指ししない > だけで。 > メールでもしてもらえればこっそり教えますよ。
>>766 2つの違いがよくわからないのですが、
「版権的にフリーで使い勝手のがいいもの」と「綺麗なグラフをかける」
程度の認識でいいんですかね。
たとえばどちらのほうがCPUに負担をかけないとか、
どちらのほうが既存のシステムに影響を与えないとか・・・
株式市場プラグインに株価のグラフみたいなやつあるけど、あれは使えないの?
>>768 肝心なのは、一方は扱いが「ソースを示すので勝手に組み込んでください」ってのと、
他方「外部ライブラリライセンスがLGPL」って所じゃないのか?
組みやすさは説明書を見ないとわからんが、どうせ表示するグラフは横軸が時間で
縦軸が金額の標準的なグラフだろうから、扱いとしては前者をカスタマイズするほうが
楽な気はする。
荒らし云々の話だが 開発者が信用されて無いから、みんな文句の一つも言えないんだね。 「もしやる気を無くしたらどうするの」という諸氏の懸念に、それが如実に表れている。 そんな懸念を知ってか知らずか、みずから便乗して >「開発者がやる気を殺がれているという『事実』『現実』」から目をそむけるなアホウ。 とかいう甘えた発言をするアホウ。(実際のところやる気満々だろアホウ) 荒らしがバレても平気なriorio氏なら、他の住人全員に総スカン食らっても大丈夫だと私は思うけどね。 ただ、上のような発言で、他者が面と向かって反論し辛い空気を作るのは開発者としていかがなものか。
>>769 ああーー ありますね。
今見てみたら、ソースはChartControl.csがそれでした。
ざっくり眺めたところ、がしがし全部自力で描画してます。
www110.kir.jp/csharp/を参考にしたコードかもしれませんし、c477さん完全オリジナル
かもしれません。
株式に特化した折れ線グラフなのでそのまま流用は無理で、メソッドとか、やり方を
参考にさせてもらいつつという形になるかと思います。
できあがるものはwww110.kir.jp/csharp/をこぴぺしてくるのと同じものになるでしょう。
>>770 >扱いとしては前者をカスタマイズするほうが楽な気はする。
え、そう思う?
そっかーー
自分は、ZedGraph使った方が楽に手抜きしつつ綺麗なものできるかと思ってたがw
>>768 >たとえばどちらのほうがCPUに負担をかけないとか、
CPUに負担かけないのは自前で描画した方だと思います。
ただ現時点では、グラフをリアルタイム時間進行描画するつもりはありません。
A4,A7あたりの売上グラフは確かにリアルタイムで「今日」描画できて、するする線が
のびるの楽しかったりしたけど。
そこまでこなすのは無理だと思ってる。
なので、時間止めて、昨日までor先月までを描いて止める、だけにするつもりだから
CPU負担は考えなくていいのではないかな。
>どちらのほうが既存のシステムに影響を与えないとか・・・
それはどちらも条件同じだと思います。
私女だけど、riorioさんは余計な一言さえ言わなければ抱かれたい男ランキングNo.1だと思う。 じゅんじゅわ〜
>>773 はwikiのほうにアドバイスいただいたので解決しました。
次は表示部を作らなきゃ、というところでまたハマってます。
これはどーーーしたもんかなぁ。
>>736-737 の進行表のその後
>・「売上レポート」を、日計過去30日間&月計過去12ヶ月間とる
「とる」だけはできてる、と、思う。
まだ「見れる」ように作れてないので、本当にちゃんととれてるか不安w
とりあえず今、数字で30日間&12ヶ月間をずらっと見せるだけやろうとしてる。
が、結構難航。いつできるかわかんない。
数字並べてみて、ちゃんと「とる」ことができてることが確認できたら、グラフ描画に
とりかかろうかとも思うけど、正直グラフはあんまし乗り気じゃない。
>・今はA4ゆずりで「駅に到着したら乗客全員そこで降りちゃう」けど、これを「一部は降りる
> が残りは乗り続ける」ようにできないか?とか思いついただけ
> それと並行して、ダイヤとして「乗車のみ(乗ってきた客全員とじこめ)」設定もあったら
> 欲しい?とか
>
>>459 >>482 >>504 今一番やりたいのはこれ。グラフ描画あとまわしにしてこれやりたいぐらい。
なのでご意見・ご提案あればお早めにおねがいしますね。
>・子会社(建物)を意味のある収入計算をどうやるか
> これは私一人では思いつかないのでみなさまからのアイディアを大募集
> 現状の「子会社売買」ウィンドウに出てくる数値は、建設価格priceに立地の地価かけた
> 程度の超簡易なもの。収入の大小はあるが絶対赤字にならない。
これは結局、地価を使うしかないかと考えてる。駅の降車客は地価としてじわじわっと
周囲に広がるので。今の売買ウィンドウよりもうちょっと凝った演算して、地価が低い=
降車客のまばらな土地に高額な物件建てたら赤字になるようにはしたい。
>・サッカースタジアムと同様に、プロ野球チームをもって試合させて球場収入と試合後の
> 観客輸送できるように。画像は既存建物プラグインの球場から拝借
火水木同一カード3連戦〜金土日同一カード3連戦、土日はデーゲームという対戦カード
作成アルゴリズムに悩んでいる。そこさえできれば、あとはサッカーの流用でちょちょい
かと思うのだけどなー あとオフシーズンが10〜3月で、3月最後の火曜にシーズンインと
したいのだが3月最後の火曜をどうやって探す?っていうのも。
ワールドカップイヤーで開催国になったら収入が増えるイベントもよろしく
A駅からB駅経由C駅まで乗った乗客の運賃は 1) distance(A→B) + distance(B→C) 2) distance(A→C) のどっちに比例だろう?
>>777 1プレイ中に1回起こるかどうかのイベント実装してうれしいかなあ…(苦笑)
複数人から同種の要望がもうちょっと具体性をもってあがってきたら考慮します。
>>778 2番ですね。現状。
で、これは「一部は降りるが残りは乗り続ける」を実装したとしても変えないつもりです。
運賃徴収計算は客の降車時に行っているので、客の降車が起きない、既存の「駅通過」
ダイヤ設定で特急や快速が通過していった駅については計算が起こらないからです。
マップ全体が「大都市近郊区間」に含まれてるとでも脳内設定しておいていただければ。
>>776 とりあえず3月は1日の曜日と最終火曜日の関係は
日 31、 月 30、火 29、水 28、木 27、金 26、土 25
なので、3月1日の曜日が求まれば最終火曜日は簡単に求まる。
3月1日の曜日はdate型ならそれに関する関数はあるような、C#は知らんが。
カードについては最初に組み合わせを並べてそれをシャッフルすると
対戦カードは特定のチームに偏ることなく組み合わせが組める。
(某ぷよぷよのぷよが落ちてくる順番もこれで決まっているらしい。)
実際のプロ野球ではもっと色々いじっているようだけど。
球場はビジター遠征中とかオフシーズンだとイベント会場になったりするんだけどね
>>776 >>・子会社(建物)を意味のある収入計算をどうやるか
>> 現状の「子会社売買」ウィンドウに出てくる数値は、建設価格priceに立地の地価かけた
>> 程度の超簡易なもの。収入の大小はあるが絶対赤字にならない。
現状、地価0の物件の場合、売上に対しての利益と経費がまったく同額、つまり50%になってますね。
いろいろと試算をしたいので、お手数ですけど今実装されている収入計算の数式を教えて頂けますか。
> これは結局、地価を使うしかないかと考えてる。駅の降車客は地価としてじわじわっと
> 周囲に広がるので。今の売買ウィンドウよりもうちょっと凝った演算して、地価が低い=
> 降車客のまばらな土地に高額な物件建てたら赤字になるようにはしたい。
地価からさらに子会社単体でのその日の人口を計算して、それに客単価を設定をかけたものを
売り上げにする方法もありますね。
客単価は建設価格priceから割り出すか、別途プラグインに記述するか、
いずれかで。
そうすると、例えば遊園地はLeisureLandPopulationに沿って人口が変わるので、
連動して曜日によって売り上げが違ったりといったことが表現できる気が。
もっとも、子会社によっては毎日売り上げが上がる性質のものとは限らないですね。
住宅や貸店舗などのように、家賃やテナント料が月に一度計上されるものもありますしね。
これは人口関係無しに地価と建設価格priceから割り出した方が自然かも。
テナント扱いであれば、自社物件として市役所を所有したり
公共施設から売上が上がっても説明がつきますね。
乗客の一部降車しない仕様にした場合の疑問。 単純な2駅往復の場合どうするの? 一部はそのまま出発元の駅に戻る? 駅で折り返す場合は全員降車? 後者は簡単に出来そうだが、駅では折り返しても その後は別の駅に向かう場合はあるよね? そういう場合は全員降車もいたしかたなし、とするならばいいのだけど。
>>783 >単純な2駅往復の場合どうするの?
A列車式ダイヤ設定の簡易設定で「折返」にチェックが入った場合は、
「全員強制下車」にするつもりです。
詳細ダイヤ設定の方にはラジオボタンをいろいろ増やして、
通常停車と「全員強制下車」停車とを作ります。
通常停車+折返発車を組み合わせれば、一部が乗ったまま折り返させることもできます。
終点だとか車庫入れだとかのときは「全員強制下車」停車と組み合わせてください。
>>782 >いろいろと試算をしたいので、お手数ですけど今実装されている収入計算の数式を教えて頂けますか。
うーーん。logとってかけたりいろいろやってて複雑なので、なんというか示しづらい。
下手に私が翻訳するより、core\world\subsidiaries\Parameters.csを直接見てもらった
ほうが速いと思う。
単なる数式のならびなので、C#知らなくても読めるんじゃないかな。
CとかDとかは、一番最後にC=0.01、D=0と定数定義されてる。
「読めませんー」ということなら翻訳します。
>地価からさらに子会社単体でのその日の人口を計算して、それに客単価を設定をかけたものを
>売り上げにする方法もありますね。
うん、まぁそうなんだけど。
毎日毎日で子会社収支を取るのは煩雑なんで、そこまでする必要ないんじゃないかなーと
思ってるのですが。
なんで曜日ごとにとかもなし。
すべての建物一括で、毎月1日に前月分の収支計算して収入支出、じゃダメかな。
29日に建てた建物は2日しか存在してなくても一ヶ月分の収入になっちゃたりするけど
もうそれは誤差ということで。
exp(-distance/amenity)とでもすればおk
exp(k*(-distance/amenity**3)) くらいにしても良いかもな。
えー、駅毎に近隣建築物の集客度みて下車率(or人数)出す(だいたい乗車の逆パターンですな) ぐらいはするもんかと思ってたわ。
>>790 乗る数以上に降りるのに違和感はわかる。が思うのは
>>790 氏の勝手
案として「乗車数以下の下車数縛り」はとして出せばいいでしょ?
実現性の問題、負荷他検討すべきだろうけど。
>>790 駅周辺の需要によって降車人数を見る必要もあるね。
集客力と言うのは難しいから、単純に待ち人数を使っても良いかも。
>>791 >案として「乗車数以下の下車数縛り」はとして出せばいいでしょ?
これでは永遠に乗客が増え続ける。
それくらい考えなきゃだめね。
待ち人数だと乗車と大体等価っぽくなるように思えるんだけど、 学校やビジネス街だと朝降車が多くて夕〜夜に乗車が多くなって欲しくね? 負荷的にも乗車待ち数の計算と直観的には大して変わらないように思えるのだが。
>>794 なんで否定なのかな?ま、それはいいや。よくわかってないと見えるし。
で案は
>>793 って事だとriorioさんの2案でいいのかな?
なら私も同様ですよ。
>>796 たぶん一番分かってないのは
全列車共通はありえないし、
>>793 見ると分かるとおり直線的な減少もあり得ない。
riorio氏2案+
>>789 で
min(1,exp(k*((-distance/amenity**3)-amenity*2)))というのはどうだろう。
ある点まで1で、そこから先は自然関数で減少。
「ある点」と「減少の傾き」はamenityで決まる。
今の人口クラスは、calcPopulationメソッドで吐き出す人口を時間帯に応じて 変化させながら返すことだけしか実装されてないんだよね。 だからそれそのまま利用することはできない。 まぁ必要とあらば、calcEnteringメソッドとでも名付けましょうか、下車需要を 返すものも追加して、もちろんそれがどのような時間変化するかのクラスごと 実装書き分けて、それ使うようにしてもいいけど。 でもあまりその影響を受けすぎるのもあれだから、gonePassengersの考え方で arrivedPassengersもカウントして、需要を満たしつつあったらあんまり降りない とかいうことにすべきなんだろうか? 今は問答無用で次の停車駅で全員降りちゃうわけで。 それにくらべたらあんまり難しいことせずに単調減少でも違いとしていいんじゃねーかと 思ってたりもするのだが。
あと、amenityは使いません。 1970年ごろだと、中電は新車で長距離列車は旧型客車なんてこともザラだったわけで。 列車ごとに個性的・動的な減少パラメータを持たせたいということであれば、それは 新パラメータを追加する方向で考えようと思います。
>>799 おい、まさかそのグラフの見方も分からんのか?
そのグラフはトリップ長の分布。そのグラフから
>>787 の図を書いてみろ。
そのピンクの線の傾きこそ、短距離利用が多く、長距離になるにつれて利用者が減少している事を表しているのだ。
直線的減少はバスや自動車の方だな。
ただ
・旅客の流入が一切無い
・駅に停車するごとに距離カウントリセット
という仮定なら
>>787 の3案でも自然対数的な利用者の分布を再現できるな。
個々の旅客に距離を持たせるのは無理だろうし、
>>787 の3案で良さそうだな。
ただ、むやみやたらにパラメータを増やされるのはごめんだ。
何でもかんでも新規パラメータに頼らず、既存のパラメータだけでやるべきだし
そういう設計思想を持たないと、今後の新機能追加がどんどん面倒になる。
>778-779からすると、個々の客に距離をもたせる (そうでないとA駅からの客とB駅からの客の運賃が計算できない)と判断出来るが。
>>786 > 「読めませんー」ということなら翻訳します。
読めませんーwww
まぁ、でもなんとなく子会社の利益と経費が同額な理由はつかめたかも。
> すべての建物一括で、毎月1日に前月分の収支計算して収入支出、じゃダメかな。
> 29日に建てた建物は2日しか存在してなくても一ヶ月分の収入になっちゃたりするけど
> もうそれは誤差ということで。
それでよろしいんじゃないですか。
子会社というよりも、建物をテナントとして貸しているというイメージなら
29日竣工の建物から収入があっても違和感無いし。
ただ、β2はともかくα3でプレイしているヒトは
「一か月も子会社収入無しじゃ待ってらんねー」
と思うかもですが。
ID:cRuw4M+kはいつもの粘着荒らし。 みんなスルーな。 riorio氏もどうせ、こいつはわけわからん仕様しか出してこないのだから、相手にしない。
>>803 なるほど。なんかややこしくなりそうだな。。。
運賃なんて単純に距離比例だから
たとえB駅で旅客の乗降は無くても、B駅に停車した時点で、A駅から乗車した乗客全員分の運賃を計上してしまっても良さそうだが。。。
ところで横軸の距離って最短距離?それとも道のり?
ごめんごめん。
身内に解説してもらってようやく理解した。
とりあえず
>>807 のほうで。
>面倒なので一次関数(直線)にしちゃう。
は取り消し。
でもなぁ。
通勤列車ではMath.Pow(a,-distance)ってことに(aはEでも他の適当な数でも)なるのか、これ。
それはいいとして。
長距離列車だと意外と一次関数になりそうな気がするんだよなぁ。遠くに行きたい人こそが
その列車を選んで乗るわけだから。もっともFreeTrainの客は列車を選べず拉致られてる
んだけどw
あ。あと問題なのは。「乗り続ける客」を計算するより、「今こここの駅で降りる人数」
を計算したほうが実装上使い勝手がいい、ってことだな。
ある駅に停車したときに「今こここの駅で降りる人数」をどういう数式で出すか。
>>808 最短距離。
ただし列車運行経費はそれとは別に道のりで3ボクセル(V2仕様)動く度に計上
されてる。
集客施設の集客イベントと最寄駅での下車傾向を連動させる(施設の集客ピーク時間帯に最寄駅に到着する列車について 下車率にある程度の上方補正をかける)ことができれば良さそうだけど...。(これをやるには下車処理ルーチンだけでなく施設側 のプロパティにも手を入れる必要がありそう?)
駅前にアーケード商店街を立てたい
>>810 798にも書いたけど、建物・施設のplugin.xmlの記述を書き換える必要はなく、
calcEnteringのような新メソッドを各コントリビューション定義に書き足し、それがどのような
時間帯変動を示すか現行populatinのような表を作って数字埋め込めばイケます。
>>811 創作館さんのアーケード道路プラグインをうまく活用してどうぞ。
>最短距離。 そうすると、例えば2駅A/Bからなる環状線を作ったりすると ・A駅で100人乗ったとする。 ・B駅で半分、50人降りたとする。(残り50人) ・A駅へ戻るが、距離0なので(Bで降りなかった残りの)50人は降りることは無い ・B駅では最初に付いたときと同じ最短距離なので50人が残る。誰も降りない。 以下同様。。。となるように思えるが如何か?
>>813 A駅で乗車した人数に対する比率で考えるとそうなっちゃうので、
「今乗ってる人数」に対する比率でおろしちゃえばいいのでは。
そうしたら、1周加わるごと25人・13人・7人・4人となっていきますよね。
あとは最遠駅に「強制全員下車」をプレイヤーのほうでダイヤ組むか。
それがまさに上で挙げられていた指数関数による低減ですよ。
だからそうしようっていうのが
>>807 じゃんちゃんと見てる?
>>802 ,806+降車駅の需要を勘案したアルゴリズムじゃだめかな。
これなら必要な情報は少ないから簡単に組める気がするけど。
・距離カウントは駅で客扱い停車するごとにリセットすれば、自然対数的な減少をある程度再現できそう。
・運賃は客扱い停車した時点で、降車しない客に対しても一旦計上(初乗り運賃分(が実装されていればの話だが)は乗車時に徴収)すれば
運賃取りっぱぐれも無い。
以下は要望
・運賃は駅間の直線距離でなく、実際の運行経路に応じて徴収する
(実際の鉄道の運賃計算方法がこの方式。環状線でなくてもループ線とか作っても利益にならないのは嫌だな。)
あと。もう少し。 強制下車が無いとした場合、今まで半周当たり100人分の売上があったけど、 修正後は今までより回す回数を多くしないといけないので運賃収入が減る (というか収入のためのコストが増加する)ことになる。 なので、これに会わせてなにがしかの調整を後で入れる必要があるかも。 強制下車がある場合(環状線に限らず)、ある程度街が発展してしまう (現状でどの区間でも列車がほぼ満員となるくらい)と、 全駅で強制下車させた方が有利になる (運賃収入増加+下車人数増加で街が発展しやすくなる...よね?)んだけど、 それくらい発展してもあえて強制下車させないほうが有利になる点が 何かあった方がよさそうな気もするが、さて何が出来るか思い付かない...
>>817 >・距離カウントは駅で客扱い停車するごとにリセットすれば、自然対数的な減少をある程度再現できそう
ごめん。よくわからない。
ちゃんと乗車駅管理とそこからの距離を個々に計算しないことには、自然対数的でも他の数式でも
減少を実現できないのでは?
あと「乗車駅情報」は持たすから。というか持たないとデバッグもままならないのでw
>・運賃は客扱い停車した時点で、降車しない客に対しても一旦計上
最短距離で計算と矛盾するので無理。
>実際の鉄道の運賃計算方法がこの方式
大都市近郊区間の考え方を調べてきてくださいな。
最短「直線距離」ではないけど、「実際の乗車経路」でもないから。
そのうえでFreeTrain EX Avで可能な手段でより近いのは最短直線距離計算になる。
あと昔は長万部以南〜札幌以遠の函館本線周り計算とか、上野〜仙台の東北本線周り
計算とか、乗った列車によって乗客が損しないような規定があったこともあった。