シューティングゲーム製作技術総合 4機目
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/08/09 19:53ID:oKoFsB2nそれは「シューティングゲーム製作」・・・。
このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!
ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
■前スレ
シューティングゲーム製作技術総合 3機目
http://pc5.2ch.net/test/read.cgi/gamedev/1087339516/l50
0008名前は開発中のものです。
04/08/09 20:55ID:xSjOuF7xOtu-
0009名前は開発中のものです。
04/08/09 21:32ID:t7QIFbAWどこ?
0010名前は開発中のものです。
04/08/09 22:20ID:BKqxHMzOhttp://pc5.2ch.net/test/read.cgi/gamedev/1021401881/l50
0011名前は開発中のものです。
04/08/09 22:44ID:caiVTS3L乙
0012名前は開発中のものです。
04/08/10 01:03ID:R5QjJYYr0013名前は開発中のものです。
04/08/10 02:19ID:PO3x+WEk0014名前は開発中のものです。
04/08/10 04:09ID:x1kklWK/そういやハイスペック要求するクソゲー作ったけど何処からも文句でなかったなと言ってみるテスト
0015名前は開発中のものです。
04/08/10 04:14ID:NTPKW7Dl0016名前は開発中のものです。
04/08/10 04:21ID:x1kklWK/ら、ランキング登録は100件くらいあったもん!
0017名前は開発中のものです。
04/08/10 04:31ID:V5mwTAuIThanks!
しかしこのスレ、思ったより人が多かったんやね。
スレ建てて、こんなにも乙と言われたのは初めてだす。
0018名前は開発中のものです。
04/08/10 04:43ID:V5mwTAuIシューティングの場合、
ある程度スペックが上昇するのはやむを得ない
と思っている人が多そうやね。特に弾幕系は。
まあマシンが重くても、多少は遊べるしな。
PenII400〜500は、もはや許容範囲?
0019名前は開発中のものです。
04/08/10 04:48ID:Fvq3fX7sうちも今ある古いPC壊れたらもう無理。パーツ揃えるのも面倒すぎる。
対応したくてもできなくなりつつあるのが実情。
0020名前は開発中のものです。
04/08/10 04:52ID:NTPKW7DlビデオカードはGF2MX。よってこれ以下は外部の報告待ち。
0021名前は開発中のものです。
04/08/10 07:54ID:wSz4zWtW今回はデカキャラが多いね
0022名前は開発中のものです。
04/08/10 09:02ID:rktJH6yl0023名前は開発中のものです。
04/08/10 09:45ID:weMtGCde0024名前は開発中のものです。
04/08/10 10:27ID:SIvuUVa0中古屋でいくらでも売ってますよ。
PenII233MHz+RageII合わせて1500円ぐらい。
BXマザーせいぜい3000円ぐらいでしょ。
0025名前は開発中のものです。
04/08/10 11:19ID:x1eX9+9e0026名前は開発中のものです。
04/08/10 13:18ID:NTPKW7Dlいくらなんでもそこまでの低スペックには対応しません。
>>25
ありがとうw
0027名前は開発中のものです。
04/08/10 13:57ID:W1jxbUtv最新で格安で最低限の性能を持つG/Bと、
中古のPenII400を積んだPCを買っても、
1万を切る状況になったら、もう一台買うかな?
とか思っていたけれど・・・もうすぐそこだな。
あるいは、PenIIIの1Gクラスが買えるまで待つかな?
0028名前は開発中のものです。
04/08/10 14:31ID:NTPKW7DlPenIIIの1Gをテスト用に使うの?
0029名前は開発中のものです。
04/08/10 15:13ID:wVs3skAG0030名前は開発中のものです。
04/08/10 20:05ID:m8rTdvrBネットから隔離したPCが一台欲しいというのが本音。
あと、ゲームを遊ぶために必要なスペック自体が、
もう、極端に上昇する事が無さそうなんで、
そのぐらいで十分かな?と。
0031名前は開発中のものです。
04/08/10 21:07ID:+QgPq+jKそれなのにプログラムは合ってるというからどうにもこうにも…
0032名前は開発中のものです。
04/08/10 21:28ID:o2y5nWQcこれは垂直同期取ったら1フレーム遅れるんだろうな、程度に認識してた
まぁ明確な改善手段があるなら公開すればいいし、そうでない場合は改善の見込みは薄いな
0033名前は開発中のものです。
04/08/10 22:09ID:XcTzDuU60034名前は開発中のものです。
04/08/11 00:50ID:odztj+4Yあまりお勧め出来ない。
0035名前は開発中のものです。
04/08/11 01:21ID:70Q98qT+pen3だとそれ以上は買い換えになるし。
0036名前は開発中のものです。
04/08/11 04:38ID:vskcAlbBこれをやってみて
0037名前は開発中のものです。
04/08/11 05:31ID:RVlkJYJv何を求めてるのか判らん。
感想?技術的な話?
0038名前は開発中のものです。
04/08/11 05:38ID:vskcAlbBできれば技術的に見てどうかも
ねらい撃ち弾が今のところ限界です
0039名前は開発中のものです。
04/08/11 05:43ID:vskcAlbB今までは乱数で敵を発生させていたのを今日からマップファイルを読み込んで
出現させるようにしたのです
0040名前は開発中のものです。
04/08/11 06:03ID:RVlkJYJv0041名前は開発中のものです。
04/08/11 06:12ID:zv+4Gafdというタテマエ
0042名前は開発中のものです。
04/08/11 10:20ID:JGhqPHdu0043名前は開発中のものです。
04/08/11 10:41ID:A7xLarqQ>東方の入力遅延って単にFPS処理とかウェイトの処理がうんこなだけだよ
そう言うのであればどのようなゲームループが最も遅延を感じさせないか
議論するのもいいかもしれんな
0044名前は開発中のものです。
04/08/11 11:05ID:JGhqPHduタイマースレッドはSetEventとSleep(17)で回す。
メインスレッドには、WaitForSingleObjectを
フリッピングの手前に配置して同期させてる。
ある意味、ゲームループと言えるかどうかは微妙だな。
0045前は開発中のものです。
04/08/11 11:59ID:ElDehwSsパッドの入力値はどのタイミングで拾うのん?
0046名前は開発中のものです。
04/08/11 15:25ID:WVo9/J+cうちはHDDラックで一台をLINUXとWINで使い分けてます。
低スペックの問題ですが、ドリームキャストってどのくらいの
スペックなんでしょう。ゲーセン用に開発されたものがいまだに
ドリキャスに移植されてるって、アルゴリズムマニアックスに
あったんだけど、ということは弾幕系シューの基盤とドリキャスって
同じくらいの能力なのでしょうか。
こちらは高水準言語でプログラムするのだし、少しマシンのレベルを
高くしても。
0047名前は開発中のものです。
04/08/11 15:35ID:RVlkJYJv0048名前は開発中のものです。
04/08/11 17:00ID:0D+d8eq40049名前は開発中のものです。
04/08/11 18:25ID:KKi/P4ET0050名前は開発中のものです。
04/08/11 18:33ID:BTJzSJCa入力遅延の話に混ざっていいかい?
0051名前は開発中のものです。
04/08/11 18:41ID:A7xLarqQアーケード基板だとNAOMIの遅延が結構気になるな
シューティングも何作か出てるけどやっぱ遅延を感じる
0052名前は開発中のものです。
04/08/11 18:51ID:KKi/P4ETNAOMIのシューティングってあんまやってないからなー。
0053名前は開発中のものです。
04/08/11 19:21ID:BTJzSJCaまず現在見ている画面に対して超反応で入力したとき、それが次のフレームで
反映されていれば遅延0フレームと定義しとくな。
理想は
VBLANK→入力取り込み→諸々の処理→仮想オブジェクト生成→オブジェクト転送→VBLANK終了→ビデオ出力
で遅延0フレームだけど、俺の場合VBlank期間中に処理が間に合わないので
VSYNC→オブジェクト転送→VBlank終了→ビデオ出力→入力取り込み→諸々の処理→仮想オブジェクト生成
こうしてる。これだと1フレーム遅延だよね。
PCの場合は・・・よく分からんのだがリフレッシュレート論争を参考に
B宗1派:タイマ割り込み→入力取り込み→諸々の処理→仮想オブジェクト生成
VSYNC→フリップ→ビデオ出力→バックバッファ生成
B宗2派:VSYNC→フリップ→ビデオ出力→入力取り込み→諸々の処理→バックバッファ生成
A宗:dt経過→フリップ→ビデオ出力→入力取り込み→諸々の処理→バックバッファ生成
こんな感じ?B宗1派だと、どれだけ遅延するか、予測が難しくないか?
B宗2派はダブルバッファリングで1フレーむ、トリプルで2フレーム遅延。
A宗は問答無用で遅延0。もしくは最大dt秒遅延。
生温かい突っ込みよろしゅう。
0054名前は開発中のものです。
04/08/11 19:23ID:BTJzSJCa東方に関しては>>32から察するに、B宗1派からVSYNCを除いてみたら
フリップしまくりで遅延がなくなっちゃいましたーな状態だと思う。
AとB1の混合。
0055名前は開発中のものです。
04/08/11 19:30ID:pqwfgvctDirectInputで普通に。
昔は、キー入力が欲しい時に拾ってた。
今は、一度拾ったら、画面の再描画が行われるまでは、
記憶しておいた値を使うようにしてる。
0056名前は開発中のものです。
04/08/11 19:43ID:phTbdjQU>まず現在見ている画面に対して超反応で入力したとき、それが次のフレームで
反映されていれば遅延0フレームと定義しとくな。
それが常識なんですよタコ。 ←生暖かい突っ込み
0057名前は開発中のものです。
04/08/11 19:44ID:BTJzSJCa0058名前は開発中のものです。
04/08/12 01:46ID:k/nH6te4その代償がティアリングと不安定なレイテンシでは、
シューティング的にいいことないと思うんだけど。
アーケードやコンシューマのシューティングは普通に1/60秒待ってるわけだし。
005958
04/08/12 01:51ID:k/nH6te40060名前は開発中のものです。
04/08/12 01:57ID:b5ZRVX6Mティアリングがあっても自機がキビキビ動くほうを選んだ
他の人がティアリングのない美しい画像を選んでもよいし、
どちらかを選択する自由のある現状に不満はない
0061偽ガルーダ
04/08/12 02:21ID:S2SW3FD3偽ガルーダの場合、
描画>更新処理>V待ち の順なんで、
>>53と同じなのかな?と。
1フレームの遅延は確実にありそう、、。
最初に描画しといて、CPUとGPUの処理を並列でやらす。
という一般的な処理だとは思うけど。
因みに、appウィザードで生成されたコードを元に組んでます。
input,music,初期化,メインループは、ほぼまんまです。
0062名前は開発中のものです。
04/08/12 02:24ID:HAGb2R5P遅延があるよーと言った者だが、流石に1フレ程度の遅延はわからないと思う…。
とりあえずお大事に。
0063名前は開発中のものです。
04/08/12 06:07ID:+k3BxUTzFlipでVSYNC待つならありえないかも知れないけど。
0064名前は開発中のものです。
04/08/12 10:47ID:Ecjad9pAんで、どのタイミングで取得するかだけど
画面更新->処理->17msWait->次の画面更新という流れの中で、画面が更新される->プレイヤーが
それを見て反応となるからには入力を取得するのは可能な限り次の画面更新の直前がいいと思ってみたり
上の流れだと「処理」の一言で済ませてるけど、背景書いたり敵を動かしたり、自機以外の
オブジェクトを先行して描画したりして、可能な限り後で入力取得・自機移動・当たり判定
・自機の描画なんかを行うとか。
いっそ1フレーム17msの時間で更新直後に全ての処理を一気に行うんではなくて、
更新->(a,入力不要な処理)->(b,腰溜めで数ms時間を潰す)->(c,入力を拾った後の処理)->(d,更新から17ms経過までwait)->次の更新
みたいにしてなるべく画面更新->入力取得までの時間を延ばすってのはどうよ?
0065名前は開発中のものです。
04/08/12 10:52ID:y1VSXtO/以前テストプログラム書いてみて色々試したんだが、
フレーム進行速度の管理部分をPresentに任せてしまった時に入力関係に何らかの支障が出てたような記憶があるなぁ。
遅延だけでなく「入力データ落ち」っていうこともあった。東方と全く同じ現象だな。
ところがtimeGetTime使ってフレーム進行を管理したら遅延とかが全くなくなることがあった。
アイドル時間中にSleepを呼ぼうが呼ばなかろうが関係が無かった。
このときのPresentは垂直同期待ちを使ってる。
サンプルソース無くしちゃったのが残念なんだけど、どうもPresent前後が怪しい気がするな…
あの関数、内部でSleep呼んだりせんから、CPUパワー丸ごと奪ってくし
0066名前は開発中のものです。
04/08/12 15:56ID:SgX1z8Kfムズイ。個人的にはあまり面白いと思わなかった。
コンボシステムは面白いかも、
だけどコンボしようとすると敵の移動がランダム過ぎて当たらないし
当てられない。狙っているうちに敵が増えて死ぬ。
なんていうか、敵が突っ込んでくるクレスタ? いや違うな。敵軌道がランダムっぽいし
自機と敵弾共に速すぎると思う。
弾よけようとして敵に当たることがしばしば。
とりあえず難易度を低めにしてみてはどうだろうか。
良いスコアシステムを持ってるのだが、稼ぐ暇が無いのは残念。
インターフェイスがマズイ。
ゲームパットで操作させたいなら、ゲーム開始/終了もゲームパットでできるように。
ところで、残機はなしの方針なのかな。
0067名前は開発中のものです。
04/08/12 16:11ID:794mlL1Pでも、処理の都合で、そうは行かないことが多い
ということ?
0068名前は開発中のものです。
04/08/12 16:26ID:Xf2yxFlj0069名前は開発中のものです。
04/08/12 23:40ID:aZoYqMYq>>66
早速応急処置みたいに自機と敵弾を遅くしてみました
&コンボが終了すると点数が入るように
&8方向対応
タイトル画面で無駄弾を撃つといきなりエキストラモードになる
乱数はなんとか使わないようにしたい
やっぱシューティングってあんまり乱数はつかわないものかい?
0070名前は開発中のものです。
04/08/12 23:44ID:DGVaLsgBそんなことはないよ
0071名前は開発中のものです。
04/08/12 23:53ID:DJMabCSM昨今のアーケードならほぼ皆無に等しい
0072名前は開発中のものです。
04/08/13 01:10ID:5zQmr7zqケイブのばらつきのある弾幕とか、斑鳩の撃ち返しとか。
パーティクルとかには当たり前に使う。
007369
04/08/13 01:21ID:jogizV9Zやっぱこうするとランダムな動きって恐ろしい事この上無いね
シューティングを作るとき敵の動きってスクリプトを作って動かしてるかい?
if とか実装するのムズそう
マップに画面上の敵が全滅するまでスクロールを停止ってマップチップ番号を実装してみようと思う
0074名前は開発中のものです。
04/08/13 01:36ID:Na1asP9+0075名前は開発中のものです。
04/08/13 01:53ID:2hwTrV1s>乱数はなんとか使わないようにしたい
>やっぱシューティングってあんまり乱数はつかわないものかい?
上の行と下の行、繋がるのか?お前さんなりの理由・事情があって
『乱数はなんとか使わないようにしたい』という結論に行き着くのか
それとも『乱数はなんとか使わないようにしたい』が
『乱数を使わない』積極的な動機になるのか気になるところだが。
俺の場合、ゲーム中の主要な構成物(自機・敵機・弾)の処理に
乱数が全く絡まないことはあるが、それは主にゲーム内容というか
ステージデザインの都合で、たまたまそういう形に行き着いたという
だけの話で、乱数つかわないようにしたいという発想が出発点に
なったことはないな。
007675
04/08/13 02:03ID:2hwTrV1s>>73
「誰が動き作って諸々のバランス調整するか」によってやりかたは色々だが
個人でやるなら最小限の手間でそれなりにラク出来そうなところで、luaあたりを
使ってみたらどうだ。
0077名前は開発中のものです。
04/08/13 06:08ID:a+Gadudgスクリプト言語でそれらしきモノはあるみたいだが・・・
0078名前は開発中のものです。
04/08/13 10:40ID:fgpq9KfN>固有の種からの乱数は未だに使っていると思うけど。
そりゃ勿論だが、それを「乱数」と呼べるのかは疑問がある
今時のアーケードシューティングには純粋な乱数はまず使ってないと思うよ
0079名前は開発中のものです。
04/08/13 11:03ID:O3VPAjQCゲームじゃまず使わないぞ?
0080名前は開発中のものです。
04/08/13 11:33ID:fgpq9KfN0081名前は開発中のものです。
04/08/13 12:14ID:YnZPHn2j0082名前は開発中のものです。
04/08/13 14:45ID:qWDtLTZ/0083名前は開発中のものです。
04/08/13 17:22ID:YnZPHn2j使わないならその理由を説明してくれよ〜。
0084名前は開発中のものです。
04/08/13 17:35ID:JkO8kwqjそこで電池切れを利用した電源パターンですよ
0085名前は開発中のものです。
04/08/13 17:43ID:O3VPAjQCコンピュータで作られる乱数は基本的に
「擬似」乱数だってのは知ってるか?
0086名前は開発中のものです。
04/08/13 18:50ID:A73Y8hRL本物の乱数か、擬似乱数か、なんてそんな話の流れじゃないだろ。
>>78 の最後の行の
>今時のアーケードシューティングには純粋な乱数はまず使ってないと思うよ
今も昔も、本物の乱数なんか使っていない。
つうか>>78 が意味不明なこと言ってるだけだから流したほうがいい。
0087名前は開発中のものです。
04/08/13 19:01ID:fgpq9KfNNAMCOのSYSTEM2にはセキュリティチップ兼用の乱数発生器が付いてるぞ
メモリマップされてて、特定のアドレスは読み出す度に常に一定しない値になる
0088名前は開発中のものです。
04/08/13 19:10ID:fZrOVVZPそもそもシスIIのシューティングでランダムってどこに使って竹。
0089名前は開発中のものです。
04/08/13 19:42ID:HrNESXb40090名前は開発中のものです。
04/08/13 20:14ID:qWDtLTZ/・敵の攻撃が大雑把で良いのなら、乱数をどう利用しようと構わない
とくにプログラム練習用の手抜きSTGなら、乱数をお気楽に使ってもよい
・ちょっと凝りたいとか、アーケードに見習うとかするなら…
・種を与えることができない乱数は、制御ができないのでリプレイに使えない
ygs2kのrandなどが相当(srandを持たない)
・対策は、乱数用ライブラリを使ったり、自前で乱数処理を書いたり、乱数テーブルを用意したり
・敵の攻撃を乱数に頼りすぎると、大雑把なSTGになってしまう
膨大なので省略するが、乱数を使わずに多様な変化を起こすよう組むのが理想
0091名前は開発中のものです。
04/08/13 20:41ID:Nown/V0q0092名前は開発中のものです。
04/08/13 20:45ID:fZrOVVZP0093名前は開発中のものです。
04/08/13 22:29ID:X+DBCEy70094名前は開発中のものです。
04/08/14 00:16ID:8/1UJRkcで、昔時のシューティングは本物の乱数使ってたのか?
0095名前は開発中のものです。
04/08/14 01:01ID:FhSpBoTD009775
04/08/14 01:14ID:RNsB3r9gんー。例えば高校物理を学んでいれば
答えを知ってるはずなのですが。(電子雲とか)
実際に入手可能な乱数発生器としては
熱電対を使用したもの等があります。
STGとは無縁の話なので、後は勝手に調べるなり
勉強してください。
0098名前は開発中のものです。
04/08/14 01:21ID:HVNXAjWE小波のスクランブルとかタイムパイロットの時代だと結構再現性の無い
出現パターンのゲームは珍しくも無いし
0099名前は開発中のものです。
04/08/14 01:38ID:CzLQ3mfh0101名前は開発中のものです。
04/08/14 10:33ID:FYvwCjIRところで乱数を効果的に使ってるSTGってどんなのある?
はっきりいってないと思う。
ドラゴンブレイズのランダム面はクリア優先の人もスコア目指す人も振り回されるほど最悪だったし。
ただ単に覚えるだけではだめ、というスパイスにはちょうどいいが、
やりすぎるとどうしようもないものになる。
0103名前は開発中のものです。
04/08/14 11:37ID:aEOnkU4o0104名前は開発中のものです。
04/08/14 12:04ID:vO8xIoDx「自機などに影響されて多様に変化するが、乱数ではない」という仕組みは多い
0105名前は開発中のものです。
04/08/14 13:07ID:kbvTau8Wというか、固有のシードからの乱数は色んなところで使われてるでしょ。
0106名前は開発中のものです。
04/08/14 13:11ID:k6kHA1v+自機の位置と反対方向から出現するとか、
点数によって、1upの発生する場所が変わるとか。
パワーアップによって、攻撃が苛烈になるとか。
0107名前は開発中のものです。
04/08/14 13:15ID:k6kHA1v+■ このスレッドは過去ログ倉庫に格納されています