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

シューティングゲーム製作技術総合 2機目

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。04/01/10 21:07ID:hzI9eQA5
ゲームプログラマなら誰もが通る、もしくは、通った道。青春の香り?
それは「シューティングゲーム製作」・・・。

このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!

ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。

■ 前スレ

シューティングゲーム製作技術総合
http://bbs.gamdev.org/test/read.cgi/gamedev/1056635103/
0753名前は開発中のものです。04/03/29 17:19ID:ii1j6UxY
復活してる!?
0754名前は開発中のものです。04/03/29 23:24ID:mJElVnW8
752 名前:名前は開発中のものです。[] 投稿日:04/03/25 14:50 ID:mDlUdfpu
縦スクロール3Dシューティングのスクロール処理について、

1. 一般的な3Dゲームのように地面は動かさずにカメラを動かす。
2. カメラは固定で地面を動かす。
3. キャラクターはカメラの影響を受けないようにして地面は固定でカメラを動かす。

他にもあると思いますが普通どんな感じなんでしょうか?


753 名前:名前は開発中のものです。[sage] 投稿日:04/03/25 15:08 ID:uxZXQBMG
レイストームはどうやってると思う?

754 名前:名前は開発中のものです。[sage] 投稿日:04/03/25 15:12 ID:I9lHEMTg
>>752
3の方法は始めて聞いた
画面外に出た玉とかの処理を考えると1は無意味にダルイヨ(´д`)


755 名前:名前は開発中のものです。[sage] 投稿日:04/03/25 15:19 ID:S5YyhTyg
>>752
強制スクロールだったら2の方が画面固定シューと同じで、常に同じ座標で計算できていいような気がする。
任意スクロールやアクションだったら1の方式でないとキャラ配置が面倒じゃないかな。


756 名前:名前は開発中のものです。[sage] 投稿日:04/03/25 17:33 ID:+inoUp+H
スターフォックス・スターフォックス64のような3Dシューティングは2の方法なんだろかな
0755名前は開発中のものです。04/03/29 23:27ID:mJElVnW8
757 名前:名前は開発中のものです。[sage] 投稿日:04/03/25 19:12 ID:lrvsDftl
>>752
弾幕系だと、3が正解かと。

D3Dは3Dトランスフォームがメチャクチャ重いことを実感させられた。
2Dクソ速ええぇぇ!!

そーいや、SSのシルバーガンは
実際のゲームではレンダリング済みの2D絵(ボス以外)を、
3Dのデモ画面では3Dオブジェクトを
使ってやってたな。アレはマジ凄いよ…

758 名前:752[sage] 投稿日:04/03/25 20:53 ID:mDlUdfpu
1はFPSやMMORPG系って感じがしますね。確かにキャラクタ管理が面倒臭そうです。
2は背景が完全に強制スクロールで淡々とスクロールするタイプなら一番楽かな?
3は高度を上げ下げしたりビルの隙間に吸い込まれるような凝った演出が出来そう。

3にしようかと思ってるんですが自機の左右の位置によって画面が左右に少しスクロールするタイプの
シューティングってありますよね。あんな感じをやりたい場合自前でキャラの座標を修正しないといけなくなる?
カメラの姿勢を殺しておいて自前でパンするってなんだか複雑な気持ち。

推測するにレイストームやグラディウスVは2なのかな?
背景にこだわらなければ2なんだろうけど。

759 名前:名前は開発中のものです。[sage] 投稿日:04/03/26 02:33 ID:A90WqE+p
座標系を2系統持っておいて
描画時に合成するとかすれば?

760 名前:名前は開発中のものです。[sage] 投稿日:04/03/26 02:54 ID:+CeMOBN2
世には出さなかったけど759に近い形で作ったことがあるよ。
ゲーム空間からワールド空間へ変換する行列を作ればいいだけの話なので。
0756名前は開発中のものです。04/03/29 23:28ID:mJElVnW8
761 名前:名前は開発中のものです。[sage] 投稿日:04/03/26 03:25 ID:lYL1ZdP1
原点からの相対位置か,カメラ座標からの相対位置か,の違いしか感じないんだけどなぁ・・・。

762 名前:名前は開発中のものです。[sage] 投稿日:04/03/26 08:37 ID:hV+ngtVh
>>758 >>752 の3って斑鳩みたいな感じですよね?

763 名前:752[] 投稿日:04/03/26 14:11 ID:wuS+wbFI
>>759-761
要するにカメラを2つ持って使い分ければいいんですかね。
片方はスクロール用で常にカメラは地面をまめる様に動かして、
もう片方は常にワールド空間の原点を見下ろすかたちで。
キャラクターは後者のカメラで座標変換(と言うかほぼ無変換)。
必要に応じて両方のカメラを同時に動かせば左右のパンニングも表現できますね。

>>762
実は斑鳩ってやった事ないんですよね。
DC版買ってみるかなぁ。

764 名前:名前は開発中のものです。[sage] 投稿日:04/03/26 14:13 ID:AL8Oj5h9
FPSのシューティング作ろうかと思うんだけど、
任意の目標に対する追尾カメラってどうするん?
適当な感覚の点をベジェ曲線とかで補間するのがよいのかしら?

まぁ肝心の敵の挙動もさっぱりですがね。
0757名前は開発中のものです。04/03/30 13:39ID:BCC3a7o8
鯖が逝ってたのか・・・
0758名前は開発中のものです。04/03/30 22:08ID:elXgJ6eW
俺が書いたレスが消えとる…

カメラ1つにしてゲーム座標に配置して
ゲーム座標からワールド座標への変換行列を用意してやれば
手間も掛からず簡単に実装できるという趣旨の内容を書いたのだが
075975204/03/31 10:14ID:rjSKXijA
復活おめ。

>>758
脳内には残ってますよ(藁)
world * view * proj と game * world * view * proj っての。

厳密に言うとこう?
world * (game * view) * proj (括弧は便宜上つけてみた)
world は各モデルの変換行列ですよね?

なんだか混乱気味でsorry.
0760名前は開発中のものです。04/03/31 13:51ID:RFvDPTr6
>>759
ああっ、ごめん。思いっきり勘違いしてた。
順序はworld * game * view * projですね。厳密に言うとどうだろう(笑)
括弧の順序の付け替え次第で結果は同じでも意味の捉え方はかわるからね。

worldは各モデルをゲーム空間へ変換する行列で、
ゲーム空間からワールド空間への変換行列がgameという感じかなー
076175204/03/31 18:59ID:rjSKXijA
>>768
なんとなく理解しました。
通常の model -> view 変換の前に model -> game を行ってから game -> view ですね。
実際の処理では gameView = game * view を SetTransform(..._VIEW, gameView); とすれば
各モデルに対してゲーム空間に変換する作業ははしょれますね。
ゲーム空間に変換しない背景とかはそのまま SetTransform(..._VIEW, view); してレンダ。
これなら基準となるカメラは1つだし。
0762名前は開発中のものです。04/04/04 21:08ID:tyCvmNft
今シューティングゲームをdirectx9使って作ってんだけど
なんか全体の動きがカクカク
でもメディアプレーヤーと同時起動させるとなぜかサクサク動く
なんで?普通逆じゃない?

情報が少なくて申し訳ないが、これだけでピンとくるシトいる?
0763名前は開発中のものです。04/04/04 22:03ID:G7zZTyVo
>>762
タイマーの精度を明示的に変更しろ。
timeBeginPeriodだったかな。
メディアプレイヤーを起動するとタイマーの精度が変更されるためそういう状況になる。
その時点で一番精度が高い値が使用されることになるので。

メディアプレイヤーを起動すると2chブラウザの動作が速くなるなんてのもあった。
0764名前は開発中のものです。04/04/04 22:25ID:8gl5+fjo
どんなブラウザだよw
0765名前は開発中のものです。04/04/04 23:03ID:G7zZTyVo
>>764
スレ違いだが、
http://fm-x.netfirms.com/kage/kage.htm
>0.99.1.1034 03/01/21 21:21
>・レンダリング高速化のおまじないを入れてみる。
とか、
Live2chの履歴の
> 2003/ 1/21 Ver1.00beta78
>・レスの表示やスレ一覧の表示がかなり速くなったらしい。
など。

Live2chのスレの過去ログ
http://pc3.2ch.net/software/kako/1041/10410/1041058846.html
http://pc5.2ch.net/software/kako/1043/10431/1043121738.html
このあたりのスレをWMPでgrepすると出てくる。

IEのコンポーネントの動作速度がタイマー精度に影響されて762と同じような状況になる。
0766名前は開発中のものです。04/04/05 00:10ID:wbaZXZRt
>>763
おぉサンキュ
まだ試してないが、なんとなくそれっぽいね
0767名前は開発中のものです。04/04/09 21:16ID:dG0Euqyf
みんな音楽はどうやって調達してるんだ?
自分で作れればイメージ通り作れるから一番良いのだろうけど・・・
0768名前は開発中のものです。04/04/09 21:52ID:PjiZkLYL
自分で作ります。
0769名前は開発中のものです。04/04/10 06:37ID:N0rIs2WL
外注
0770名前は開発中のものです。04/04/10 13:41ID:SDqZRV5G
音楽ってmp3?mod?オリジナルドライバ?
漏れはオリジナルドライバなんだけど、
最近の人ってMML理解できないらしいから
どうしていいのやら・・・。
0771名前は開発中のものです。04/04/10 16:42ID:Z0fPfzpx
なぜにMML?
オーディオデータを流すほうが扱いやすいじゃんか。
0772名前は開発中のものです。04/04/10 16:43ID:8HeIq1n8
何時の時代の人間だって感じだな
0773名前は開発中のものです。04/04/10 16:54ID:WRRJ0nJl
どのマシン環境でも統一した音がでてサイズを抑えるというのなら
そっち方面はひとつの解だとは思うけど

そこまでやれるならサウンドフォント自前でもってソフトウェアMIDIでも
作った方がいいような気がする
そしてうまくいけばそれなりに(ライブラリだけでも)メジャーになれる

SCCやFM、PSGのような音が欲しい場合はMMLベースでもいいと思うよ
PCM全盛になって昔は音楽だめな人もMMLで手軽に曲作っていた人を発掘できるかも
俺も鍵盤はわからんかったけどCDEFGABだけはなんつーか体が覚えてた

mp3などの圧縮形にせよ動作環境がwinならSTGでも負荷的に問題はあるまい
0774名前は開発中のものです。04/04/10 17:05ID:8HeIq1n8
呆れて反論する気も無くなる
0775名前は開発中のものです。04/04/10 17:28ID:BV7x21I7
音ゲーならまだしもそんな部分に時間かけてどうするんだろう?
0776名前は開発中のものです。04/04/10 18:39ID:VoEFIeEx
趣味だろ。ふぁみべのよっしんも数年かけて色々模索してたな。
Z-MUSICとかMDXとかTSSとかMODとか...

ところでCAVEシューティングのBGMがADPCMの垂れ流しからMODに変わったのは
どういう意図があったんだろう。ROMの節約だろうか?
0777名前は開発中のものです。04/04/10 18:47ID:n0T1nu9p
Z-MUSICなんて聞いたの何年ぶりだろう。
0778名前は開発中のものです。04/04/10 19:58ID:8HeIq1n8
あの基盤の制約じゃなかったかなあ
基盤性能なんか怒首領蜂より大往生のほうが悪かったりするから酷いもんだよ
0779名前は開発中のものです。04/04/10 22:30ID:unHNCvci
PC歴の長いプログラマが陥る罠かな。
PC界隈で使われてきたMMLやMODに入れ込んでしまうの。

そもそも古今MMLがまともな音楽シーンで使われた試しはありません。
こいつは昔の廉価音源チップを載せたPC・ゲーム機でのみ有用な打ち込み手段。
使用音数が増えたり、曲が緻密になるに従って、打ち込み効率が底なしに落ちていくから。

ゲーム音楽でも、アマチュアを含めて、もうMML使ってる人間なんかいない。
普通にストリーム再生したほうが、広い範囲からより腕のいい作曲家を募れるでしょう。
今のコンピュータ音楽は音符を打ち込むだけの世界じゃないしね。

ま、Oggあたり使って、ループ開始点を指定できるようにしておけば十分かと。
これもプログラマはよく忘れるんだけど>ループ開始点
(イントロとか弱起とか入れられまへんがな)
0780名前は開発中のものです。04/04/11 00:50ID:osyo1R4q
ループに関してmidiやpcmだけやってきた人間は忘れてるというか無頓着というか
mml時代からやってきた連中はそここだわるけどね

fmやpsg、sccの音色ダイスキーな人間で、PCM垂れ流し以外の
世の中のゲームの音楽ってあまりいいものじゃないのばかりって感じる種族なので
mmlでがんばる人は応援したくもなる

pcm全盛になってからゲームの曲イマイチなものばかりぽ
0781名前は開発中のものです。04/04/11 00:59ID:XhUPW4mT
確かに楽器は音楽の中で重要な位置を占めて居るけれど
かといって楽器に制限されて視野が狭くなるのは悲しいことだと俺は思う。
078277004/04/11 01:30ID:F6uVTG3Z
いやぁ、GBAで遊んでるんだけど、
結局簡単に作ろうとするとオリジナルドライバ+MMLになっちゃったんだけどね。
0783名前は開発中のものです。04/04/11 06:38ID:4JV3b2r6
FMでもPSGでもオーディオ化したものをストリーム再生すりゃいいんじゃ?

プログラムのことは判らんけど、MMLからじゃなくてSMFからじゃだめなの?
0784名前は開発中のものです。04/04/11 08:51ID:4f0RoMxJ
>>782
あー、GBAの音源ならMMLはアリかも。

>>783
自前でソフトウェア音源実装するにしても、
標準MIDIファイルで駆動できたほうが大多数の音屋には嬉しいでしょうな。
PCM波形部分はDLSに対応して。
(もっとも、DirectXならDirectMusicが既に標準で対応してるけど)
078578304/04/11 10:04ID:4JV3b2r6
音屋探してもMMLでやってくれっていったら嫌がられそうだw。
俺自身はPC-88のCMD PLAY時代からMML好きなんだけど、
こんな奴はあまりいないw。
0786名前は開発中のものです。04/04/11 10:26ID:3H1SQA+/
GBAだと、PCMオンリーでいい曲なのって少なくねえ?
てーか、全体的にノイジーすぎ。
海外のMOD自体からやってます、みたいなのはいいけどな。
日本のは、たまにPSG+PCMを使いこなしてるのがいいね。

まー、PCはさすがにPCMオンリーだな

そういや、大往生はサントラ買って、
いいアンプやスピーカー聞いてもさっぱりダメポ
作曲者がよくても元の環境があれじゃあな
0787名前は開発中のものです。04/04/11 10:27ID:3H1SQA+/
> MOD自体
MOD時代
0788名前は開発中のものです。04/04/11 10:46ID:XhUPW4mT
所詮MMLなんぞ楽譜の文法で演奏の方法ではないんだがなあ。
MMLで演奏した奴をOGGで保存して何が悪い。w
まあ冗談だから突っ込まんでくれ。サイズが激しく非効率だからなw
でもね、このご時世、大容量・高速転送なのだから。
サイズに関してはあまり深く考えなくていいと思うな…。

>>786
大往生の凄みは曲自体のパワーってよりマップとの同期が一番かな。
ゲームミュージックってのはゲームと一体になって完結するものだと俺は思う、
ゲームと音楽のどちらかが一人歩きしては駄目なんだな。
具体的に言えば5面道中なんかはBGMのお陰で本当に物語のようだ
0789名前は開発中のものです。04/04/11 13:36ID:NLoamb6E
>>779 ああ、だからゲームミュージックが普通の音楽になったんだな…
と納得。
0790名前は開発中のものです。04/04/11 15:54ID:XDbFJEB+
>>781
制約の中から生まれる音楽というものもありますが。
0791名前は開発中のものです。04/04/11 17:22ID:4JV3b2r6
同意。
でもまあ曲作る人間が制限すれば機能上の制限はいらないけどね。
0792名前は開発中のものです。04/04/11 21:03ID:302InegI
それって制限する意味がないと思う…
0793名前は開発中のものです。04/04/11 21:09ID:4JV3b2r6
そお?
たとえばOPN再現のためにFM3声PSG3声に制限して作れば同じじゃ?
0794名前は開発中のものです。04/04/12 00:28ID:fQb6KOhv
今MMLを使うのって、プログラマの都合でしかないよな。
(例外もあるけど)普通は1トラック1和音になるから逐次処理がしやすい。
余計な分岐が減る分軽くなるという話もあるが。

おいらもGBAで遊んでるけど、最終的にはやっぱりMMLコンパイルっす^^;
SMF2MMLコンバータ作ったのでコンポーザにはSMFで書いてもらってるけど。
0795名前は開発中のものです。04/04/13 12:21ID:xi3HdIxL
>>789
今のゲーム音楽に普通の音楽が多いのは、普通の音屋が作ってるからだよ。
音源とか入力方式とかは関係ないと思われ。

昔ながらのゲーム系音屋のほとんどは、低スペック音源で精一杯で、
音源の制限(というか防壁?)がなくなるとフェードアウトしてしまった。
もちろんそうでない人もいてがんがってる。
0796名前は開発中のものです。04/04/14 00:17ID:9sQL4khc
でも、ゲームは普通の曲が流れるより、
ピコピコ音の方が合ってると思うのはジジイだから?

で、音屋さんがGBAで組みやすいようにしてあげるにはなにがいいんでしょ?
MDI?
0797名前は開発中のものです。04/04/14 00:25ID:0QMtBAnG
同意だ。
ピコピコ音っていうか、メロディーラインのはっきりしてる音のほうがゲームには合うと思うんだがなあ。
0798名前は開発中のものです。04/04/14 00:47ID:GkIK2ZbT
同意。
全盛期の東亜節...燃えるZe!
0799名前は開発中のものです。04/04/14 00:49ID:/c5YFH/5
最近のRPGとかだと、キャラの台詞が被ったりするから、
メロディが弱く、あまり主張しない映画音楽みたいなのを要求されるのよ。
だからゲーム音楽をやりたがる若い人はこういう曲を作る傾向が強いね。
0800名前は開発中のものです。04/04/14 04:20ID:xyddHfFg
ゲーム音楽あってのゲームだと思ってたのに、今はそうなんだ。
古代祐三氏のインタビューの記憶が未だに忘れられないわ。
ファルコム厨ですみません。
0801名前は開発中のものです。04/04/14 05:53ID:3o+xyjgg
そこらへんにしときましょうや。
0802名前は開発中のものです。04/04/14 12:58ID:/c5YFH/5
シューティングのBGMならメロ強くても平気だけどね。
0803名前は開発中のものです。04/04/14 21:08ID:gsSJhrQg
MMLはすっごく苦手だけど、内蔵音源系の音は大好きだから
シーケンサ(ピアノロール式)で音符並べた後に、それ見ながら
MMLに直してる。まんどくさいけどこうしないと曲作れない。
0804名前は開発中のものです。04/04/14 21:45ID:/c5YFH/5
>>803
VSTiでよければOPM使えるやつとかPSG使えるやつとかあるぞ。
Windowsしかないけど。

あーすまんシューティング関係ねえや。
0805名前は開発中のものです。04/04/16 02:02ID:8uKRdr8v
シューティングとサウンドは切っても切れない関係。
グラディウスの逆火山の曲をゲーセンで聴いた時はびっくらこいた。

グラディウスのダブルってなんで弾が出ないかと思ったら
前方向にに2連射してたのが、斜め上と前方向に1こずつになったからなんだね。
同じバッファかよ(´・ω・`)
0806名前は開発中のものです。04/04/16 02:09ID:tI+mDSrQ
いまさら何をいっとるのかね?w
0807名前は開発中のものです。04/04/16 06:34ID:JB99uPaO
グラの基本中の基本だなw
0808名前は開発中のものです。04/04/16 08:29ID:xRr/Izbv
グラはちゃんと発射元(オプションor自機)を管理してるから、2発になるんだろうな。ここを手抜くと、
オプションが地形にめりこんでいたりするとき自機が普段より多く連射する現象が起きそう。
0809名前は開発中のものです。04/04/16 08:41ID:xRr/Izbv
と思ったけど、オプション、自機それぞれ別のショット領域を与えておけばいいのか。
最近は画面端まで連射できるのが当たり前なので錯覚してた。
0810名前は開発中のものです。04/04/16 10:54ID:40YnSUjN
画面上に一発しか撃てなかった時代が懐かしいな。
0811名前は開発中のものです。04/04/16 19:19ID:iy9iYxtF
やっぱギャラクシアンかなぁ>一発
狙い撃つ緊張感が好きだ。
0812名前は開発中のものです。04/04/17 01:07ID:on9b1nPV
>>805
AC版だと2発分空になってないと次が撃てないけど、
FC版は上下別にチェックしてるから、片方が画面に残ってても
もう片方は撃てるんだよね。なのでちょっとだけ強い。

>>810
弾どころか、弾の爆発も同じバッファのゲームがあるから
撃ち逃して画面上方で爆発すると次が全然撃てなかったり。
0813名前は開発中のものです。04/04/19 23:30ID:vxlKtg0o
来月のCマガ
特別記事 シューティングゲームアルゴリズム
ttp://www.cmagazine.jp/contents/next.html

2Dかな?FPSとかだと(´・ω・`)
0814名前は開発中のものです。04/04/19 23:52ID:zT9SwzEQ
やっぱりインベーダじゃない
1回だけやるなら、複数のオブジェクトを動かす方法と、方位を得る方法くらいかなぁ?
0815名前は開発中のものです。04/04/21 22:33ID:UlTbA0ct
・2発両方が空になっていないと撃てない
・空のほうはもう片方に関わり無く撃てる
この2つのシステムは最近のSTGでも共存していて、たとえばプロギアの嵐なんかは
ゲーム中の細かい条件でこれが切り替わったりもしている。
0816名前は開発中のものです。04/04/22 19:39ID:XvUw8NqD
え?ごめん聞いてなかった。もう一回説明して。
0817名前は開発中のものです。04/04/22 21:06ID:awTAk/Yp
なにが?
0818名前は開発中のものです。04/04/22 22:06ID:g9gmvMTD
まだプログラム歴は浅いのですが対人戦闘の格ゲーっぽいシューティングを
つくろうと考えています。
そこで質問なのですが、一人のキャラの攻撃に複数種類がある場合、
(近距離攻撃、遠距離攻撃、必殺技のようなもの..etc)
それぞれのクラス(AttackクラスやShotクラスなど)でつくってからActionクラスというのを作ってその中に
入れてもいいのでしょうか?
やはりActionクラスな中にそれぞれ関数として(Attack()やShot()など)
ひとつにまとめたほうがいいのでしょうか?
ただ、後者のほうはいまいちやり方がわかりません。
(特に画像などを読み込む初期化)

ちなみに、アスピライトというページのスケルトンプログラムを使って作ろう
としています。
ttp://www.plustarnet.com/aspil/
0819名前は開発中のものです。04/04/22 22:20ID:3AHU11NF
>>818
そこのページでやってることをざっと見てみたが、
「弾や敵が一種類しかいない」ことを前提にしてる気が。

漏れなら、
Action、Drawといったインターフェイスを持つEnemyクラスを作っておいて、
その派生クラスとしてZakoクラスやBossクラスを作る。
画像は面倒なので、特に量が無ければグローバルにして、
起動時に読み込む。
0820名前は開発中のものです。04/04/22 23:30ID:vrWxzhwt
>>818
漏れも丁度、似たような所やってる。開発状況報告スレに書き込んだ。
それなりにコード追加の柔軟性重視で構築してるんだけど、
(逆に、CPU負荷をあまり考えない作りに、、virtual()、文字列比較、dynnamic_castが多々)
みっともない部分が多く、見せれない状態だが。(規模もそれなりだし)

サイキック・フォースみたいのを作りたいのかな?
漏れも今後やりたいと思ってたし、作り的にもシンプルかと思う。(1対1という点で)

因みに、漏れの場合、アクションクラスXXを、キャラクラスXXが、任意の数保持して切り替え。
といった感じ。
0821名前は開発中のものです。04/04/23 19:54ID:69UU5Qh3
スペハリの地面ってどうやって作ってるの?

0822名前は開発中のものです。04/04/23 20:44ID:hbyebCU2
フラクタル
0823名前は開発中のものです。04/04/23 23:40ID:1VRXC3Iw
>>826、828
なんか同じ元ネタな予感。俺も含めてナ
#826にいたってはゲームシステムまでかぶってる予感
俺の場合、ゲームシステム部に弾クラスをあらかじめ多数用意し、
キャラクタークラスが弾を撃った段階でそれを割り当てる、という方法をとってる。

>>828
virtual関数呼び出しとかに掛かるコストなんぞほとんど誤差程度
昔の「遅い」ってイメージに毒されすぎ
1000万回くらいループまわして計測してみろ
0824名前は開発中のものです。04/04/24 01:16ID:dsxFdC9m
おやおや。
0825820 04/04/24 04:34ID:wMAF1O76
>>823
>1000万回くらいループまわして計測してみろ
まあ、気にしてないので、採用してる訳で、、。
ただ、文字列比較等、最適化出来る所は「いずれ」やろうかと。
(ただ、最近のCPUは高性能なので、そのまま放置する可能性あり)

クラスのプール化も、いずれやろうかと。
今は2Dだからか、全然負荷は気にならないけど。(400キャラぐらい管理)
カテゴリー別にキャラ管理するだろうから、必要だろうけど。

今後、データドリブン化する場合、クラスは汎用的なものにする必要あるかも。
プール化も効果的に出来るし、、どうしようかなー。
082681804/04/24 08:54ID:n6OgNP2N
>>819
>そこのページでやってることをざっと見てみたが、
>「弾や敵が一種類しかいない」ことを前提にしてる気が。
 これはここのスケルトンプログラムでは難しいということでしょうか?
 このページに書かれている以上のことはできないので、
 これを改良すればできるかなぁ、などと考えていたのですが^^;

>>820
 はい。サイキックフォースのような感じです。

 ちなみに今試そうとしているのは
player1.Shot(); と書いたら キャラ名.Shot();
 となってくれるようなものです。
 ただ、そのShot()の中に何を書けばいいのかいまいちわかってないのですが^^;

 アドバイスありがとうございます
0827名前は開発中のものです。04/04/25 19:37ID:6SVzr6yc
ふと思ったんで聞いてみる。
親子関係の実装の時、どちら主体で書く?
子供をエージェントにして自律行動させるか、
それとも親の一元管理で子供を完全に制御するか。
みなさんどちらがお好きでしょうかね
0828名前は開発中のものです。04/04/25 20:08ID:PC4HLMdq
触手の場合、両方違う動きになるから楽しい
0829名前は開発中のものです。04/04/27 04:32ID:97M/I6Oo
基本的には子は自律じゃないかな
そうじゃないと親子にする意味あんまりないし。
0830名前は開発中のものです。04/04/27 09:37ID:VKeIx2UK
背景(2D)の管理をどうしようか悩んでます。

キャラは、(triList*2)を1スプライトとして、テクスチャごとに
グループ化して管理しています。HW頂点が使える環境では非常に高速かな?

メッシュを作って、チップ指定から、UV値を設定というのは考えてるけど。
オーサリングツール作るのが面倒。
0831名前は開発中のものです。04/04/27 09:42ID:7UoVRs6G
>>827
どういう親子関係を構築するかによるんじゃない
一応子供が親の状態を見て、行動するようにさせているけど
親も子供も互いのアドレスを保持して参照できるようにしている
0832名前は開発中のものです。04/05/01 05:45ID:9AdKeHJT
誰かトランスミュージックのエピック・トランスとシンクロして
ひたすら脳内に訴えかけてくる気持ちのいいシューティングを創ってくれYO!
0833プログラムも初心者です04/05/01 14:53ID:YzGOV9op
シューティングを作り始めてわからない事がたくさんあり質問させてもらいに来ました。

まず、敵の出現の仕方と敵の弾の当たり判定などです。
自分は
struct tagEN{
int x,y;//敵の最初の表示位置
int flag;//画面内にでてるか
int type;//どの種類か
int time;//始まってから出現するまでの時間
};
EN en[100];
とやり全ての敵に出現するまでの時間を入れてやっています。

その場合に弾の判定の方は全ての敵の当たり食らい判定をし、if文でflagがたってない敵をはじくようにしています。
しかしこの場合、出現する敵の数が増えてしまうとif文の使用率が増えてしまい動作が重くなったりしまわないでしょうか?

何かもっと良い方法などがあれば教えてください。
0834名前は開発中のものです。04/05/01 15:35ID:9KyDOHUR
それだと
 10フレームごとに弾がどんどん出現する。弾は画面内には10発までしかでないが
 画面外に弾が消えれば次の弾が出せるので
 100発でも10000発でも弾は出続ける。
という状態を作れないんじゃない?
弾でなくても、敵でも同じ。
0835プログラムも初心者です04/05/01 15:48ID:o19KIfKS
つまり、一度使われたところが終わってflagが0になったところに次のを入れるといった感じにすればよいのでしょうか?
もし、自分の言っている事が教えてくださった事と同じならば本当に感謝です。
こんな事もまったく思いつきませんでした。
0836名前は開発中の者です。04/05/01 17:32ID:yiK8st2N
最初にステージに出る敵すべてを起動して、時間で動き出すんですよね。
マリオみたいに縦横に行ったり来たりスクロールするゲームでは
そういうやり方かも知れないけど、シューティングの場合、背景をスクロールするごとに
カウンタをアップしていって、ある値の時にあるタスクを、空きのワークエリアに
設定というやり方でいいのではないでしょうか。

画面内のタスクはflag=1で、画面外に出たらflag=0で、スクロールポインタが
ある値に来たときの起動は、ワークエリアすべてを検索してflag=0のワークエリアを
探して、そこへタスクのデータを設定するのです。

>一度使われたところが終わってflagが0になったところに
>次のを入れるといった感じにすればよいのでしょうか?
その通りです。
0837プログラムも初心者です04/05/01 19:48ID:o19KIfKS
>>836
ええ、タイムにどのカウンターで出てくるかというようにやるつもりです。
この場合、毎カウンターごとに全ての敵の出てくるべきカウンターとの確かめをするのでしょうか?
0838名前は開発中のものです。04/05/02 06:17ID:i1mYGEjc
>>837
>毎カウンターごとに全ての敵の出てくるべきカウンターとの確かめをするのでしょうか?

いいんじゃないかな?それで。
ただ、全ての敵じゃなくて待機中の敵だけでいい筈。
その他、最適化したいなら、敵出現のバッファを幾つかに分割し、
カウンタでソートしておいて、現在のカウンタから先だけをチェックすればいい。
なので、敵structに、出現カウンター、出現位置をつける必要はないかと。

最近の環境で開発してるなら、if文の回数とか、あまり気にしなくてもいいと思うよ。
CPU速いんで。
アルゴリズム系の本は読んでおいた方が良い。
0839名前は開発中のものです。04/05/02 11:16ID:zVbO0VnT
初めてゲーム(STG)を作りました。
動作確認中です。
動作スペックを満たしていながらも、画面がおかしい、音が出ない、60fpsでない、ジョイスティックで操作できない等がでたら教えてください。

それと、クリアできる人を探しています。
一応クリアはできます。
今のところ、クリアできたのはメインデバッカの一人だけです。
次回作の難易度調整の参考にしたいので・・・。

意見、アドバイス等があれば言ってくれればとてもありがたいです。

宜しくお願いします。

http://www5f.biglobe.ne.jp/~yakimorokosi/
0840名前は開発中のものです。04/05/02 11:54ID:5MhNR0w8
>>839
やってみたよ

・時々落ちる(タイトルでボタン押すと落ちたりする)
・ジョイスティックのアナログ軸にデッドゾーンの設定してくれ
・終了後ウインドウ位置が元に戻らん

こんなとこですかね
0841名前は開発中のものです。04/05/02 12:09ID:ON3G+DzB
DPPパラレルだと操作できない。JoytoKeyも無効。
なので、うちではジョイパッドが使えず、キーボードでしか操作できなかった。
バイクバンディッツのように、入力にDirectInputを使わないモードがあるといいんじゃないかな。
0842名前は開発中のものです。04/05/02 14:13ID:HlcFzc0Q
>>839やってみた

Joystickオンだと解像度変更しに行った直後に終了しちゃって起動せず
使用パッドはUSBの、どっかの安モン
オフにしたら遊べたよ

私は1面もクリアできんかった
もともとSTGは得意じゃないんだけど
すっげー難しい! と思ったよ
参考までに
0843名前は開発中のものです。04/05/02 19:24ID:45kFFDg5
>>839
ためしにやってみた。
うちにあるPSパッドのUSB変換器つかってまともにパッドは使えるっぽい。
ただし、>>840と同様に「やきもろこし」っていうロゴが出てるときにボタン4(だったと思う)押したら落ちた

難易度高過ぎ。STGは大往生5面いける程度の実力だが、2面途中までしかいけなかった
(初プレイでの感想ってのもまぁあるが)
1面でいきなり左右両方から弾幕貼るってのはどうかと思う

あと、あれだと誘導弾使う気になれない
大量に撃破できないため、誘導弾を使ったら死が待っているとしか思えん
0844名前は開発中のものです。04/05/02 19:28ID:H8EMSMM+
>>839
設定後OKボタンを押しても起動せず
Joystickオフでも同様
0845名前は開発中のものです。04/05/02 21:38ID:skeO4xtm
>839
試しにやってみた
バグとかは特に見つからなかったけど
難しすぎヘタレシューターには1面もクリアできなかったよ
1面ボスであの弾幕はやりすぎ大往生より難しいと思う
あとBGMがちょっと変かも
短い曲をループさせてるんだろうけど繋がってないから曲の切り替わりが気になってしょうがない(これは個人的な感想なんで気にしないでくれ)
0846名前は開発中のものです。04/05/03 00:08ID:2W/aC+Ph
>839
>842に同じく、USBパッド有効だと直後に終了しました。
あと、6FPSしかでないっぽい。ので、難易度とかは全くわかりませんです。
0847プログラムも初心者です04/05/03 01:03ID:yvAzXtSL
敵出現のまでのtimeと位置を入れる時にはすべての敵に手打ちで入れるべきでしょうか?

簡単な質問ですみません。
0848名前は開発中のものです。04/05/03 04:20ID:hQjA8AGn
>>847
面数増えると疲れるよ。調整とか。

簡単なエディットモードを用意するとか
面作りが楽しくなる方向でひとつ。

あと、aba氏のサイト行くと弾幕MLとか面白いもんあるから
参考にしてみては。ttp://www.asahi-net.or.jp/~cs8k-cyu/
0849プログラムも初心者です04/05/03 04:33ID:yvAzXtSL
なるほど、ありがとうございます。

というより、たまたま今来たら↑の方の書き込み時間が近い事に驚きです。
0850名前は開発中のものです。04/05/03 08:52ID:s6SOnC7v
>>839 家のしょぼいビデオカードだと自機が消えたり表示が
変。難易度は高いけど作りこめば名作になる雰囲気はある。以上
0851名前は開発中のものです。04/05/03 10:25ID:i/0fCijI
>>847
背景とシンクロさせない雑魚敵だったら、見えないジェネレータが
一定時間画面端からランダム、又は決まった点から編隊状に敵吐き出すようにすれば、
手間が大分軽減されるんでない?
...ってもうやってるんでしょうけど。(w

0852名前は開発中のものです。04/05/03 10:43ID:/y7FPKn2
>847
1面だけじゃなかったり後で調整をするようなら
俺は簡易エディタを作るだろう。
■ このスレッドは過去ログ倉庫に格納されています