トップページgamedev
1001コメント480KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001名前は開発中のものです。2009/04/06(月) 22:12:16ID:5LmTI8rQ
鉄道および都市経営シミュレーションゲーム制作の
情報交換スレッドです。(sage推奨)

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

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

[関連サイト]
アートディンク
http://www.artdink.co.jp/
0971名前は開発中のものです。2010/03/30(火) 00:24:17ID:62jSr8U0
>>956
時間加算のタイミング、か。どう説明したらいいんだろう。

最小時間単位をまず決めるんだけど。
初代FreeTrain〜EX〜Av ver2は、これが1分なわけ。
1年1月1日0時0分を0として、現在時刻はそこから現在までの累積分数を
long型整数currentTime変数にぶちこんでる。
currentTimeは、core/world/Clocl.csの最後にあるtick()というメソッドに内で
+1 される。これがFT世界の時間の進みそのもの。

プロトタイプ3では、これを1秒にしてみただけ。
currentTimeには1年1月1日0時0分からの累積秒数が入ってる。

tick()が呼ばれるのは、core/framework/MainWindowの1330行目あたりにある
timerHandler()から。

ゲームの進行速度が最高速とか通常とかゆっくりとかっていうのはウェイトループ
させてタイミングとってて。そのウェイトの数があるのが
core/framework/MainWindowの1375行目あたりからのclockMenuUpdater()とか
menuItem_ClockGo1_Clickあたり。変数名はtimer.Interval

で、このウェイトが……あれ、どこで待ってるんだろ。
それっぽい変数名があったからこれ幸いといじったものの、ウェイト実際に入れてる
のが分からん (をひ


まぁこんな感じなんだけど。説明へただよね。どこが分からない?
0972名前は開発中のものです。2010/03/30(火) 02:21:15ID:eeAu1t7h
コードだせばいいじゃん
0973名前は開発中のものです。2010/03/30(火) 02:47:02ID:GmPbSYIX
つうか、独り言ばっかり...またネタもないからいいか。
0974riorio ◆rio2xMQlrQ 2010/03/30(火) 16:22:56ID:62jSr8U0
もろもろファイルの配布元があっちこっちしてると新規に始めようとした人が混乱
するかと思ったので。

Additional Plugin Set 20050904版をFreeTrainEX AvのSourceForge.jpダウンロード
コーナーでも配布するようにしました。

収録内容はEXのコーナーで配布されていた20050904版ほぼそのままです。
ただし綾瀬ヒロさんの橋脚が、現在のAv本体収録バージョンと逆転してしまって
いてセーブデータの不整合を起しかねない状態だったので、そこのみAv本体収録
バージョンに入れ替えてあります。
0975名前は開発中のものです。2010/03/30(火) 17:52:56ID:62jSr8U0
列車追跡機能、実装できました。

Beta2.0.1.4とプロトタイプ3.0.0.5に収録してSourceForge.jpに置いてあります。
SourceForge.jpには2.0.1.4の最新ソースもコミットしてありますので、ソース
欲しい方はどうぞ。

これを入れるときは、plugins\system\plugin.xmlも忘れず上書きコピーしてください。
配布パッケージすべて上書きすればOKですが。
0976名前は開発中のものです。2010/03/30(火) 19:09:36ID:62jSr8U0
>>nanashiさん

通過監視信号の件
Reflectorでの復元ソースをファイルに分割し直してみました。

http://u4.getuploader.com/freetrain/download/41/PassMonitorSignal_Reflector.zip
pass: nanashi

なんかウチでうまくビルドできないんですよねー
本体への参照が不足している感じ。
Locationとか本体の定義や関数が呼べてないです。
0977名前は開発中のものです。2010/03/30(火) 20:10:14ID:62jSr8U0
>>976
nanashiさん以外でも、これDLLにビルドできるかたおられましたら。
ビルドしてみて、修正点を含めたソースをまた返してもらえるとありがたいです。

ver2.0系列のDirectXWrapper利用になっております。
0978名前は開発中のものです。2010/03/30(火) 21:45:29ID:aK1jZF3m
>>977
ttp://u4.getuploader.com/freetrain/download/42/PassMonitorSignal.zip
pass: nanashi
0979名前は開発中のものです。2010/03/30(火) 21:52:08ID:f5yrOWGK
>>970
>ただ超高速が1ボクセル5秒は私は遅すぎると思います。
>箱庭にはいいかもしれませんけど、ダイヤ命派・実在路線再現派には納得できない
>んじゃないかな。

確かに「中速、15両編成の通勤列車を3分間隔で運行」なんて芸当は
最小時間単位5秒では明らかに無理ですね。これが出来ないのは確かにつまらない。
かと言って1秒ではあまりにも速過ぎる。ダイヤ設定を60秒ごとにすると
今のFTの感覚で言うと「1時間単位でしかダイヤを設定できない」というお寒い状況になってしまいます。

間をとって、最小時間3秒とか?
その辺は、様々なゲーム性、プログラムの組みやすさを考慮して考えなければいけないと思います。
0980名前は開発中のものです。2010/03/30(火) 22:00:59ID:eeAu1t7h
1分でいいじゃん
0981名前は開発中のものです。2010/03/30(火) 22:18:32ID:62jSr8U0
次スレたてたお
http://pc11.2ch.net/test/read.cgi/gamedev/1269954334/l50


>979
>ダイヤ設定を60秒ごとにすると

>というお寒い状況になってしまいます。

ふむ。

1. 時間速度は数種類から選択制にする
2. ダイヤは15秒単位

これ実装しましょう。
0982名前は開発中のものです。2010/03/30(火) 22:26:58ID:f5yrOWGK
>>981
>1. 時間速度は数種類から選択制にする

実験的に取り入れるのならいいとは思いますが
この機能を恒久化するのは危険ではないでしょうか。
他人と様々なデータを共有できるというAvの最大の利点が死んでしまいます。

>2. ダイヤは15秒単位
奇数だと画面表示と整合性が取れなくなります。
10、20、30秒あたりで良いのではないでしょうか。
0983名前は開発中のものです。2010/03/30(火) 22:39:24ID:eeAu1t7h
もちろんセーブファイルの方に記録するんだろうし何言ってんだ?
0984名前は開発中のものです。2010/03/30(火) 22:39:28ID:62jSr8U0
>>978
さんくす、

と思ったけど、ほどいたものをVisual C# 2008 Express Editionでリビルドかけたら
やっぱり失敗するお (´;ω;`)

さらに同梱DLLをPrototype3.0.0.5のpluginsにつっこんだらエラーになるお?


>>982
時間速度の設定値をSerialize対象にしておけば、セーブした時の時間速度が
ロード時に復元されて大丈夫だと思われる。
やってみないと分からないけど。

>奇数だと画面表示と整合性が取れなくなります。

なんか奇数がまずい画面上の問題ありましたっけ。ないと思うんだけど。
3.0.0.5でも秒数は時計で表示してないしね。

>10、20、30秒あたりで良いのではないでしょうか。

とりあえず日本の鉄道は15秒単位なんですよーー
電車でかぶりつく機会があったら、運転士用の時刻表見てみるといいです。
0985名前は開発中のものです。2010/03/30(火) 22:47:18ID:GmPbSYIX
>>984
>時間速度の設定値をSerialize対象にしておけば、セーブした時の時間速度が
>ロード時に復元されて大丈夫だと思われる。
確か前の人がそんなこと言ってた気がする
できる算段があったんじゃないかな。

ダイヤ設定の最小単位は1秒単位でもいいと思うけど、ネックは電車の速度が
1ボクセル動くのに何分かかるかになってることなんでしょ?
今と同じように1ボクセル1分なら、1分経過したら移動すればいいのでは?
>>979の内容が理解できないボンクラ頭乙orz

0986名前は開発中のものです。2010/03/30(火) 22:50:12ID:62jSr8U0
>>985
プロトタイプ3.0.0.5やってみそー
画面右下の時計に注意してな


あと同じことをβ2.0以前でやってみて、ヒマならプロトタイプ3.0.0.3も試してみれ
0987名前は開発中のものです。2010/03/30(火) 22:54:34ID:GmPbSYIX
言葉じゃ説明できないの?
そんなにややこしいことなの?
だったら、話に入ってもしょうがないので遠慮するわ。
続けてどうぞ。
0988名前は開発中のものです。2010/03/30(火) 22:59:43ID:62jSr8U0
なんで「やってみれば分かる」と言われたら、やることを拒否するんだろう。
10分もあればできることなのに。

説明できないのかってのは単なる逆ギレじゃん?
キレるまえにやってみようぜ。
0989名前は開発中のものです。2010/03/30(火) 23:17:26ID:62jSr8U0
今、プロトタイプ3.0.0.6作ってるところなんだけど。

いやーー、3.0.0.3〜5の駅の詳細ダイヤ、バグってるね(汗)
たぶん時・分の設定が壊れてたと思う。
クレームついてないってことは誰も試した人いなかったのかな。

3.0.0.6で直しますね。
3.0.0.6はとりあえず時間軸変更はナシで、駅詳細ダイヤ設定のみの変更にします。
0990名前は開発中のものです。2010/03/30(火) 23:25:20ID:f5yrOWGK
>>984
実際の鉄道が15秒単位なのは知っているけれど、必ずしもそれを再現する必要はないと思う。

FTの画面は2分ごとに描写。だから新幹線は1度に2ボクセル進んでいるように見える。
これが1秒単位になると、画面は2秒ごとに描写する事になると思う。

プログラムの内部で、奇数秒に電車が動くような構成になっていると、画面の動きと実際の電車の動きがズレてしまう。
画面合わせでダイヤ設定する上で、このタイムラグは非常に厄介なので止めて欲しい。
特に「10分停車」に当たるであろう「15秒停車」の扱いが非常に難しく、ダイヤ作成時に不必要にイライラするだけなので。
0991名前は開発中のものです。2010/03/30(火) 23:33:00ID:62jSr8U0
>FTの画面は2分ごとに描写。だから新幹線は1度に2ボクセル進んでいるように見える。

あ、やっぱそうだったのね。

メインループでtick()が一度に2回連続して呼ばれてるから、あれー?なんだろ、
おっかしーなーーと思ってたんだわ。昨日。ここに時計の進みの解説文書いてて。

tick()を1回しか呼ばないことでなにか不具合が生じるのであれば、また考えなきゃ
いけないけど。
特にそういうことがないのであれば、メインループでtick()を2回続けて呼んでるところ
1回だけ呼ぶように変えるだけで問題なくなるとおもう。
0992名前は開発中のものです。2010/03/31(水) 00:23:05ID:EoS/793G
Prototype(ALPHA)3.0.0..6をSourceForge.jpに置きました。

tick()は1回ずつ呼ぶようになりました。
駅の発車時刻は15秒単位で設定できます。

ポイントの切り替えは、同じポイントに1時間以内に2回通過することはまずなかろう
ということで1時間単位になっています。
もしまずければ1分単位にしますのでご相談ください。


あと今までPrototypeのソースを公開してませんでしたので、今回ソースファイルも
まとめました。参考にしたい方、ごらんになってください。
http://u4.getuploader.com/freetrain/download/43/FTEXAvALPHA3006src.ZIP
DLpass: ALPHA
0993名前は開発中のものです。2010/03/31(水) 00:35:17ID:ZTcZrobW
>>992
>ポイントの切り替えは、同じポイントに1時間以内に2回通過することはまずなかろう
路線の距離によっては十分に有り得るかと。
今のFTでいう60時間=2日半ですよ。
毎分がちょうどいいですね。

このように、最小時間単位1秒だと色々と不都合が出るので、もう少し長い方が良いと強く思います。
0994名前は開発中のものです。2010/03/31(水) 00:51:30ID:EoS/793G
>>993
通過することはあっても、異なる進路をとらせたくなるわけではなく
同じ進路をとっていいのなら困らないかと思ったのですが。
はっはっは、やっぱ手抜きはダメですかw
じゃあまたこんどポイントを分単位実装します。
そんなに手間かからないと思う。
もとの川口さんの設計が綺麗だから。


あ、それで。
ほかのことやってて途中になってしまってますが。

>>984 >>978が未解決です (´;ω;`)
978さんが(ビルド環境不明ですが)どうやって解消したのかも
ソースの違いから発見しようと思ってたけどもうねみゅい……
補足できるかたおられたらヨロです
0995名前は開発中のものです。2010/03/31(水) 05:49:08ID:FpC+3O7N
早朝に目がさめたので出しました。バージョンはα3.0.0.7です。

◎既知の不具合
・時間進行軸の値がセーブデータに保存されない

○3.0.0.6からの変更点
・ポイント切り替え設定を1分単位で行えるように細かくした
・時間進行軸を6種類から選べるようにした

うーーーん。なんだろ。Serializeされてないみたい。
とりあえず、セーブした時の値をおぼえててセットしてからロードしたら大丈夫なはずw


ソースも置いてあるので、Serializeされるようにする方法がわかった方は直してみてください。
http://u4.getuploader.com/freetrain/download/44/FTEXAvALPHA3007src.ZIP
0996名前は開発中のものです。2010/03/31(水) 05:52:02ID:FpC+3O7N
>>995
すみません、DLpassはspeedです
0997名前は開発中のものです。2010/03/31(水) 09:24:31ID:FpC+3O7N
そうそう古い話だけど。
実は0.1〜0.8のFreeTrainEX Av同梱Readmeには、対応OSとしてバッチリVistaが
書かれていた。
嫁嫁と書いてる本人が一番読んでないっていう恥ずかしい事例でしたってヤツだね。



755 名前:名前は開発中のものです。 投稿日:2010/02/24(水) 23:36:05 442060O7
だからFreeTrainはVistaに対応してないって。
Readmeぐらい嫁よ。

うpロダに一応Vista対応してみたというテスト版があるから、それ試してみれば。
人柱だけど。


759 名前:名前は開発中のものです。 投稿日:2010/02/25(木) 23:43:18 +j2qcvqG
だから、VISTAに対応してるとどこに書いてるのと言ってんだよ。
おまえのとこで動くから、みんな動くとか勝手なこと言ってんじゃねーよ。


761 名前:名前は開発中のものです。 投稿日:2010/02/26(金) 00:20:07 Dd72mMBD
Readmeに対応OSは2000とXPってあるだろうが。
どこにVISTAは対応してますと書いてんだよ。
VISTAで動く動くと言うのはいいが、それを見て動かないと言ってきた奴には全部
おまえが対応しろよ。
0998名前は開発中のものです。2010/03/31(水) 10:08:35ID:ivSVD6Tc
全部おまえが対応しろよ。
は酷かったな。小学生かってね。
0999名前は開発中のものです。2010/03/31(水) 15:48:44ID:iEHrg+la
>>975
列車追跡機能に感動した乙!
A7だと一つしか表示できなかったんだよなあ。
一応要望として下記2点。難しくなければ検討してみてください。

 ・列車の追跡に使用するマップウィンドウを複数並べて表示することを考えた場合、
  どのマップウィンドウを使用するかを列車の追跡ウィンドウから指定したい

 ・列車追跡中のマップウィンドウはスクロールバーを消去したい

1000名前は開発中のものです。2010/03/31(水) 16:00:31ID:iEHrg+la
ああ失礼
任意のマップウィンドウをアクティブにしてから
列車追跡ウィンドウを呼び出せば指定できるのか
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。