シューティングゲーム製作技術総合 4機目
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/08/09 19:53ID:oKoFsB2nそれは「シューティングゲーム製作」・・・。
このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!
ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
■前スレ
シューティングゲーム製作技術総合 3機目
http://pc5.2ch.net/test/read.cgi/gamedev/1087339516/l50
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+0108名前は開発中のものです。
04/08/14 14:07ID:mqi8oET6最後のは根本的に違うと思う
0109名前は開発中のものです。
04/08/14 14:45ID:FYvwCjIRランダムなんて無い方が攻略性が上がって良いし
多様性を出すにしても>>104で十分、ってことだな
0110名前は開発中のものです。
04/08/14 15:01ID:lMLTpqkY不規則性=ランダム(乱数)って頭では到底わかんだろうけどね。
0111名前は開発中のものです。
04/08/14 15:52ID:V5sEIrrJ自機が多関節の竜みたいなので、全方向スクロールするやつ。
名前が思い出せんしぐぐってもみつからないが、誰か覚えてない?
0112名前は開発中のものです。
04/08/14 15:53ID:mqi8oET6シューティングとは微妙に言いがたいが。
0113名前は開発中のものです。
04/08/14 16:20ID:vO8xIoDx0114109
04/08/14 16:33ID:FYvwCjIR_, ._
(;゚ Д゚) …?
藻前が理解できん・・・
漏れは乱数なんて使わなくていいなぁって言っただけなんだが
もしかして多様性=不規則性って頭ですか?
0115名前は開発中のものです。
04/08/14 16:35ID:B+a4EEQYまず日本語の勉強
0116名前は開発中のものです。
04/08/14 16:49ID:lMLTpqkY乱数使うも使わんも勝手にすればいい、不規則性は多様性のひとつだ一緒にするな
そんなこともわからんのか!
狭い見解で「これで充分」などと抜かすのが叩かれる原因なのだヨ
0117名前は開発中のものです。
04/08/14 16:54ID:lMLTpqkYその言葉そっくりてめぇに返してやるぜ♪
0118名前は開発中のものです。
04/08/14 17:00ID:CzLQ3mfh0119名前は開発中のものです。
04/08/14 17:01ID:mqi8oET6| ノ _, ,_ ヽ
/ ● ● |
| ( _●_) ミ _ (⌒) 夏だよな♪
彡、 |∪| ノ
⊂⌒ヽ / ヽノ ヽ /⌒つ
\ ヽ / ヽ /
\_,,ノ |、_ノ
0120109
04/08/14 17:22ID:FYvwCjIRつまりお前は十分という言葉を硬くとらえすぎなわけだな。
ファジー機能搭載しる
0121名前は開発中のものです。
04/08/14 17:31ID:FYvwCjIR>>90
>>101(漏れ)
>>102-104
>>109(漏れ)
>>109の要点
「ランダム使うくらいなら>>104の方が楽だよな」
0122名前は開発中のものです。
04/08/14 18:25ID:lMLTpqkY自分@かなり大人げなかった
でもキミもちょっと、必死すぎて(ry
0123111
04/08/14 18:37ID:KSESjClWそうそう、作者自身も攻略を楽しめるんじゃないかって、マップの自動生成にはあこがれたよ。
結局自分のゲームに実装したことは無いけど。
0124名前は開発中のものです。
04/08/14 19:38ID:s5UuKyHo誘導レーザーを作ろうと思っているのですがどう作ればいいか分かりません。
レーザーの構造体配列(またはクラス?)を作って、尻尾?になるやつは一つ前の構造体の
座標を代入していけば、くっついて来ると思うんですけど、誘導なので、レーザーの発射角度が
変わるときのレーザーの画像をどう描画すればいいのか分かりません。発射角度に対応した画像を
作っておくのか、それとも画像自体を回転させた状態で描画したらいいのかが分かりません。
というかその場合どーいうプログラムを組んでいいのか分かんないです(つД`)
環境はWindowsで、VC++6.0、DirectX7.0です。
どうかお助けを。できることなら協力しますので。
0125名前は開発中のものです。
04/08/14 19:59ID:exmazSmf0126名前は開発中のものです。
04/08/14 21:13ID:FYvwCjIR>それとも画像自体を回転させた状態で描画したらいいのか
よくわかんないけど、レーザーがぐにゃぐにゃ曲がる部分の絵をどうしようってこと?
そうだったら
⊂⊃
こんな感じのレーザーの絵用意して、画像自体を回転させて重ね合わせていけば
綺麗にまがるんじゃないかな
0127名前は開発中のものです。
04/08/14 21:21ID:FYvwCjIRプログラムのほうは
尾を引くんじゃなくて、頭を伸ばしていく感じにしたら?
レーザーを動かすんじゃなくて、
レーザーの先頭から新しいレーザーの先頭を次々置いてくかんじでさ
0128名前は開発中のものです。
04/08/14 21:26ID:XRLALKINとりあえず、おまえが思っている「誘導レーザー」を使っているゲームをよく観察し、よく考えろ。
>できることなら協力しますので。
そんな他力本願な意識じゃ、いつまでたっても分からないと思うよ。
0129名前は開発中のものです。
04/08/14 21:27ID:cPuaNr+sマップの自動生成ネタは、多分、これだけで一スレ建てられる。
0130名前は開発中のものです。
04/08/14 21:30ID:mqi8oET6実際にはなかなか上手くいかないけどなー>作者自身も攻略を楽しめる
一応、ダンジョン自動生成スレ
http://pc5.2ch.net/test/read.cgi/gamedev/1027084016/
0131名前は開発中のものです。
04/08/14 21:32ID:1pObmtDF⊂⊃
こういうレーザー全体の形を表すテクスチャを用意して
⊂======⊃
こういう風にテクスチャを引き伸ばせ。
頂点座標を適当に置けばぐにゃぐにゃする奴も簡単に作れる
0132名前は開発中のものです。
04/08/14 21:32ID:CzLQ3mfhどうするかってセオリーがあるわけじゃなし、いくつか表現の方法がある。
具体的にゲーム名挙げてみるのもいいかもよ。
>>123
マップ自動生成とはちょっと違うけど、KOBO deluxeってゲームの要塞生成は
面白いなと思った。内容はボスコニアンアレンジなんだけどね。
0133名前は開発中のものです。
04/08/14 21:36ID:cPuaNr+sしばらく逝ってくるわ。
0134124
04/08/14 23:25ID:s5UuKyHo>>128
自分が参考にしてるレーザーはレイストームのやつです。
(ロックオンしてから発射という機能はいりません)
画像は>>131の意見を参考にします。先頭、中間部分、尻尾の3つ。
描画については、レーザーの発射角度を求めたら、その角度に画像を
回転させて描画する処理、でいいのでしょうか?
ていうかとにかくやってみまつ。
0135名前は開発中のものです。
04/08/14 23:31ID:CzLQ3mfh買ってないから判らないけど。
0136名前は開発中のものです。
04/08/14 23:54ID:1pObmtDF「ポリラインストリップ」は3Dのポリゴン技術じゃ基本中の基本
3Dグラフィクス数学でも読め。必読書だ
0137名前は開発中のものです。
04/08/15 02:12ID:89Y7+yAz画像回転でやるなら
レーザーが曲がるトコでスキマが出来ないようにガンガレ
0138名前は開発中のものです。
04/08/15 16:36ID:o5VncmOGできたらアップしてほしいのですが。
よろしくお願いします。
0139名前は開発中のものです。
04/08/15 19:07ID:cYZSqdz30140名前は開発中のものです。
04/08/15 19:55ID:NB90yfFr0141名前は開発中のものです。
04/08/15 19:59ID:p19KBqQ7問題は、その1割をちゃんとわかるように解説してあるか、という気がする。
それでもマニアクスというタイトルの割りに、マニア向けでない点は批判されているみたいだね。
0142名前は開発中のものです。
04/08/15 19:59ID:zPMy/XgF0143名前は開発中のものです。
04/08/15 20:10ID:NB90yfFrなんというか小手先テクニック集という感じがした。
0144名前は開発中のものです。
04/08/15 20:35ID:mS2ppr5tレイフォースじゃなくてレイストーム?
レイストームは画像回転じゃないのでは?
0145名前は開発中のものです。
04/08/15 22:07ID:acFn8L7f誘導ミサイルだとか曲がるレーザーとか特定の方法が分からない場合には役に立つか
既にシューティング1作完成させたことがある人ならちょっと考えれば分かるような事ばかりだし不要だな
■ このスレッドは過去ログ倉庫に格納されています