08/03/08 23:08:03 KVGlCgOg
そしてゲッターセッターだらけのウンコクラスを作って
ゲロ吐いて人間は成長する
51:名前は開発中のものです。
08/03/09 00:55:27 mx6cSeWU
友達が作ったクラスにゲットセットが12個以上あって見る気失せた事があるな
52:名前は開発中のものです。
08/03/09 01:30:17 jBNp8q5y
クラスに含むものは最小限にして、
単なる変数の分類代わりにしているのは俺だけか
53:名前は開発中のものです。
08/03/09 01:45:53 o3a80veI
俺なんてC++をBASICみたいな使い方しかしてないぜ。
クラス? なにそれ?
54:名前は開発中のものです。
08/03/09 01:51:21 ieFCERy3
まぁstructでもメンバ関数作れるしな
55:名前は開発中のものです。
08/03/09 02:09:14 OuSoXFED
クラスの中でクラスをインスタンス化できるから、下記のような構造に
ゲーム世界クラス
├プレイヤー陣営クラス
│ ├プレイヤーキャラクラス
│ └プレイヤーの弾クラス(弾クラスを継承)
├敵陣営クラス
│ ├敵キャラクラス
│ └敵の弾クラス(弾クラスを継承)
└当たり判定クラス(staticな関数のみ)
※キャラと弾は全て基本オブジェクトクラスを継承
作りすぎかも。陣営クラスはいらないかなぁ
56:名前は開発中のものです。
08/03/09 02:12:36 OuSoXFED
なお、ふたつの陣営クラスは
弾クラスと弾処理メソッドをメンバに持つ陣営クラスを継承している
可読性が酷いな
57:名前は開発中のものです。
08/03/09 22:38:54 ftNyIWMi
is-aとhas-aは区別したほうがいいって
Rubyのお兄ちゃんも言ってたよ
58:名前は開発中のものです。
08/03/09 23:36:37 Uu2b4Hsz
An apple is a fruit.
→appleはfruitの性質と独自の性質を持つ
→appleクラスはfruitクラスを継承する
A car has an engine.
→carはengineを持つ
→carクラスはメンバengineを持つ
って感じか
59:名前は開発中のものです。
08/03/10 17:56:28 /cPILZp3
>>55
ウチはこうかな
シューティング管理クラス
|
├Unitリストのリスト
│ ├0リスト (プレイヤーリスト)
│ ├1リスト (自機弾リスト)
│ ├2リスト (エネミーリスト)
│ ├3リスト (敵弾リスト)
│ ├4リスト (エフェクトリスト)
│ ├5リスト (ボム効果リスト)
│ └7リスト (その他特殊用リスト)
└敵出現データ管理クラス
Unitは基本クラスのことね。
プレイヤー陣営とか敵陣営どころかプレイヤークラスや敵クラスの雛形が無い。
弾のクラスはあるけど、シューティング管理クラスから見た場合はUnitを継承していればいいので関係ない。
後々Unitリストの種類を増やすことを想定して、Unitリストをリストで実装してる。
60:名前は開発中のものです。
08/03/10 21:45:22 cJuRtDMu
ホーミング弾ってどうやって作ってる?
プレイヤーオブジェクトからホーミング弾発射
→弾に目標のエネミーオブジェクトのポインタを渡す
→エネミーオブジェクトの座標めがけて飛ぶ
こんな感じかな?
でもこの場合、プレイヤーオブジェクトは
エネミーオブジェクトのリスト(のポインタ)を持っている必要があるな
なんかもう全部オブジェクト外(STG管理クラス)で処理するのが楽に思えてきた
61:名前は開発中のものです。
08/03/11 00:45:00 xY1/GxLx
STG管理クラスをシングルトンにして直接参照する
オブジェクト指向っぽくないけど、一番楽な方法じゃないかな
62:名前は開発中のものです。
08/03/11 01:14:13 bHXyTii9
弾つながりでちょっと質問です
アルゴリズムマニアクスパラ見したんだけど
反射レーザーの反射部分グラフィックってどう処理してるの?
\/ ‥レーザー
━━‥壁
↑
ココ
本だと\の先端と/の後端を壁にめり込ませている
でもそれだとめり込んだ分、全体の長さが縮むと思うんだ
考えたけどわからない・・
反射部分だけ別グラフィック?
63:59です
08/03/11 01:23:43 bfRz6y+k
>>60
STG管理クラスのインスタンスと、Unitを継承したインスタンスを相互参照になるように作る。
STG管理クラスに指定したUnitリストを取得できるようにしておく。
(自分の座標と、指定したいUnitリストのindexを引数にし、最も近いUnitを戻り値に返すメンバ関数でも可。
というか使う機会も多いので推奨。)
自弾→敵機の場合、管理クラスのメンバ関数に敵のUnitリストを指定して、最も近いUnitを返してもらえばいいし、
敵弾→自機の場合、同様にして自機のインスタンスを返してもらえばいいよ。
こうすれば目標の座標は取得できるから、後は適当に誘導するような処理を記述すればおk。
64:名前は開発中のものです。
08/03/11 14:55:11 tPQccVPP
>>59=63
そういうクラス構造してると、
たとえばエネミーはメンバ変数HPを要るけど、エフェクトや弾は要らないから、
UnitクラスにHPがあると、エフェクトや弾に無駄なメンバ変数が生産されない?
65:名前は開発中のものです。
08/03/11 15:15:48 5rHfGsEC
エフェクトたんやバレットたんだって命ある生き物です><
66:名前は開発中のものです。
08/03/11 18:01:29 pc0n0f/t
正確なレーザーを表示したくてグラディウス外伝が作れるか
67:名前は開発中のものです。
08/03/11 18:08:48 RgITvACC
??
68:名前は開発中のものです。
08/03/11 20:18:19 bfRz6y+k
>>64
ウチの場合Unitは完全な抽象クラス。実装が一つも無い。つまり抽象メンバ関数しかないのさ。
で、メンバはこんな感じ。・・・と思ったが、こっちはC#だからint配列とか戻り値に指定するのは直感的だけど、
C++だとちょっとめんどいな。やり方わからんから適当に察してくれ。
Stg管理クラス GetOwner()
float GetAttackPower()
int GetBelongKind()
VECTOR3 Get/SetPosition()
int[] GetTargetKinds() // C++の場合はどうすりゃいいんだっけ?覚えてないや。
VECTOR2 GetTouchRange()
void Act()
bool CanExist()
void Fire()
bool CanStand(Unit toucher)
void Indicate()
この5つは上から順番に、
動作管理、
デストラクタ対象判定、
動作管理で射撃判定boolを作っておいてそれを利用した処理を、
描画処理
69:名前は開発中のものです。
08/03/11 21:09:11 bfRz6y+k
4つ目の補足書きわすれたww
CanStand は当たり判定をStg管理クラスのインスタンスが行い、あたった時Stg管理が呼ぶ関数。
たたった相手のインスタンスを引数として渡してくる。
70:名前は開発中のものです。
08/03/12 00:33:20 v0/NzbC7
座標とかの管理はどこで?
71:名前は開発中のものです。
08/03/12 05:56:34 /xH4cY3u
>>70
Stg管理クラスがRectangle(x、y、width、heightで矩形を表す構造体)を何種類か保持してる。
そして各UnitオブジェクトのPositionが、CanExistで矩形の中にいるかを判定してるだけ。
72:名前は開発中のものです。
08/03/14 01:20:40 Qya/6v1U
弾同士の相殺判定つけたら処理落ちしてワロス
いい加減当たり判定の方法を最適化して、
オブジェクトの配列をvectorからlistに変えるべきだな
73:名前は開発中のものです。
08/03/14 02:07:01 eNzI/Vyy
総当りでやってるから重たいってだけの話でねの?
コンテナがvectorだろうがlistだろうが総当りは回避できるべ
と寝る前にエスパーレス
74:名前は開発中のものです。
08/03/14 03:36:05 8tJfVTvY
>>73
とりあえず次のことを行ってないかチェックすべし。
Vector変数 - Vector変数 などの構造体同士の直接演算。ちゃんとメンバをそれぞれ計算するべし。
int4つ分相当超過の構造体/クラスの値返し/値コピー等。 参照渡しのほうが高速。
75:名前は開発中のものです。
08/03/14 03:38:41 8tJfVTvY
レスミス。>>73じゃなくて>>72
76:名前は開発中のものです。
08/03/14 09:42:10 wQ66BM6P
exceptionが弾(破片)同士の衝突判定やってたな
あれは単純なマス目状の空間分割とマルチスレッド化で高速化してるぽい
77:名前は開発中のものです。
08/03/14 10:45:56 Qya/6v1U
しょうもない愚痴にレスくれて㌧クス
>>73
一応、自機、敵機、自分の弾、敵の弾、アイテム(、エフェクト)で配列を分けてる
>>76のいうように、空間分割した方がいいかもしんない
>>74
大丈夫なはず
78:名前は開発中のものです。
08/03/15 00:13:20 FwUg+nN/
空間分割はともかくマルチスレッドはどうなんだろうか・・・
クアッドコアなら効果ありそうだけど。
79:名前は開発中のものです。
08/03/15 01:22:59 lDsY0+o2
ウチの環境だと、CoreSoloってこともあってかほとんどマルチスレッドは効果が出なかったな。
処理内容によって早かったり、かえって遅くなったりまちまち。
CoreDuoとかだと普通に恩恵が得られそうだけど、そんなPCならGPUもよさそうだしなぁ
80:名前は開発中のものです。
08/03/15 02:34:54 Lrw9CI3F
マルチスレッド興味あるんだが、マルチスレッドを前提にした設計の仕方が思いつかん。
ゲームオブジェクトを非同期に更新する上手い方法なんかないかな。
81:名前は開発中のものです。
08/03/15 10:26:44 Q/W+AhbK
FPSとかは知らないけど、2DSTGでマルチスレッドが有効利用できる
場面って少なく無いか?
総当り系の判定をスレッドに割り振るのも大変そうだし。
ローディング画面でディスクアクセスしながらアニメーション流す位しか
思いつかないんだが、他になんかある?
82:名前は開発中のものです。
08/03/15 14:21:34 Lrw9CI3F
ジオメトリウォーズのエフェクトや背景はマルチスレッドで処理してるとどっかに書いてあったような。
エフェクト類は他のオブジェクトに干渉しないのも多いから、
そういうのはまとめておいて別スレッドで処理すればいいかもしれん。
83:名前は開発中のものです。
08/03/17 17:45:56 PCJP7SA4
>>80
DDR2メモリ4GBが数千円で買える今なら大声で言える
ゲームオブジェクト全てをダブルバッファリングだな
フレーム(t)バッファはリードオンリー
フレーム(t+⊿t)バッファはライトオンリー
オラ(t+⊿t) = オラ(t) + (世界(t)がオラに元気を分けた。差分)(⊿t) + (オラのパワー。差分)(⊿t)
差分スキームは好きなの使え。ここでは単に一次オイラー
同一フレーム内オブジェクト同士の相互参照は一切ないから
更新順序も排他アクセスも一切不要
メモリが2倍要るという欠点は先述のPC環境なら無視でいいだろ
動作環境
メインメモリ1GBで動かない時は2GB積んでみてください
メインメモリ2GBで動かない時は4GB積んでみてください
…etc…
84:名前は開発中のものです。
08/03/17 19:25:31 +53rIC4V
あなた起動時に全ての画像読み込んでそうですね
俺はちまちまやってます
85:名前は開発中のものです。
08/03/17 23:57:27 PCJP7SA4
富豪厨の俺でも流石にそれはないが
ステージ単位でドカっと読み込んでる
boost::progress_displayのゲージがジリジリと動く様を
ティーカップ片手に優雅に待てば良いのだ
それすら我慢できない低属性プレイヤーはrejectだ
86:名前は開発中のものです。
08/03/17 23:58:50 zSjwTnFq
はいはい、boostスレに帰ろうなw
87:名前は開発中のものです。
08/03/18 13:52:14 zi8sXJbl
敵弾をCPUごとに振り分ければよくね。どんな鬼畜弾幕になるのか知らんが。
88:名前は開発中のものです。
08/03/18 14:26:14 kWeEHiH7
弾同士が干渉しないならそれが良さそうだが、
2DSTGで複数コア使う必要があるような処理って弾同士の干渉くらいな気がする。
>>83は汎用性あって良いかもしれん。
89:名前は開発中のものです。
08/03/18 14:34:56 h/08ARO0
>敵弾をCPUごとに振り分ければよくね
よく分からんが
2DSTGでゲームオブジェクトを並列化しようって話をしてるなら
エフェクトや弾が真っ先に候補に上がるのはごく自然なことだよ
エフェクトや弾同士は相互作用が基本的に無いから実装も単純
90:名前は開発中のものです。
08/03/18 14:35:40 h/08ARO0
レスがかぶっちった
91:名前は開発中のものです。
08/03/18 18:20:56 PQFbQVbE
2Dシューティングを作りたいなと思ってここにたどり着いたのですが、
フリーソフトで何を使えば一番簡単に始められますか?
92:名前は開発中のものです。
08/03/18 18:25:47 +UFwrO/v
HSP
93:名前は開発中のものです。
08/03/18 18:31:16 kJphN6cj
STGビルダー
94:名前は開発中のものです。
08/03/18 19:18:33 UdPg6oix
両方捨てがたいな
95:名前は開発中のものです。
08/03/18 20:05:42 PQFbQVbE
>>92-94
ありがとうございます。
両方調べて出直してきます。
96:名前は開発中のものです。
08/03/20 18:13:51 zMjnThxP
ゲーム中のオブジェクトの基本となるクラスがあるとして、
そのクラスの配列を作り、メンバ変数でオブジェクトの種類を区別するか、
そのクラスへのポインタの配列をつくり、放り込む派生クラスの種類で区別するか
どっちのやりかたで作ってる?
前者の方が複雑なポインタを考えない分、簡単かもしれないけど、
後者の方がオブジェクト指向的に綺麗かなぁ
97:名前は開発中のものです。
08/03/21 00:45:59 Y2tGkS1P
判定アリ背景(接触しても死なない)の処理がとてもめんどうなんですが
こういった処理をしている方、どんな風にやってますか?
98:名前は開発中のものです。
08/03/21 07:09:36 zfnOUqWA
どういう処理にしたいのかもうちょっと詳しく
99:名前は開発中のものです。
08/03/21 11:47:21 Hgv+vM2A
すみません
・接触しても死なない/めり込まない
・縦の壁に対して斜め入力をし続けると、空いてる方向に移動する
・スクロール等で壁が移動する場合、キャラは押される
・画面端に挟まれると死ぬ
こんな感じです
2番目3番目がさっぱりです
100:名前は開発中のものです。
08/03/21 13:08:41 kWp5gXWi
2は横移動先が壁にめり込んでたらめり込んだ分横に押し戻し
3はスクロールしてめり込んだらめり込んだ分スクロール方向に押し戻し
とか
101:名前は開発中のものです。
08/03/21 13:44:46 XmgrQpyE
2は普通に作ればたいてい空いてる方向に移動すると思うぞ
要するに、キー入力方向に壁があったら、その方向の移動量をゼロにする
あと、地形を重視するなら大きなマップの中で視点がスクロールすると考えるといい
一度アクションゲームを作ってみるといいよ
4点とも簡単に解決できる
102:名前は開発中のものです。
08/03/21 23:10:22 Y2tGkS1P
ありあとうございます。
>>100
今やっているのだとそんな感じなのですが、斜めの壁のとき
おかしくなる気がします。X方向とY方向を別々に判定してるんで
順番によっても変になってる気がします。
>>101
その場合先に壁と隣接しているかどうか判定するのでしょうか
今考えてるやり方だとめり込んでから戻すって感じなのですが。
103:名前は開発中のものです。
08/03/22 00:30:26 YjjlX8do
>>102
縦壁だけじゃなく斜め壁もあるのか
そしたら斜めの当たり判定のとり方から説明が必要?
それとも壁の角に斜めにぶつかった場合ってことだろうか
>>100はx方向を先に判定すれば壁の角から横に進むしy方向なら縦だし
どっちにも進みたくないなら別の処理が必要だし
どっちにしてもどういう挙動がおかしい挙動なのか仕様がわからいとなぁ
104:名前は開発中のものです。
08/03/22 00:43:49 8Y+Va9zt
めり込んだら押し戻すで全部解決するはずだがなあ・・・
接触判定がおかしいんじゃないのか?
105:名前は開発中のものです。
08/03/22 05:42:47 44zgMaPM
>>102
「壁ずり」で検索
106:名前は開発中のものです。
08/03/23 13:04:48 VlbCWj/H
当たり判定ってどんな形にしてる?
円形または矩形で統一するのが楽だけど、
円形だと細長い弾やレーザーが、矩形だと斜めの弾の表現が難しい
複数の矩形とか?
107:名前は開発中のものです。
08/03/23 13:25:23 d2zOUJKL
俺は基本的には矩形以外使わないな
ところで斜めの弾ってなんだ?
108:名前は開発中のものです。
08/03/23 13:40:58 XpxtelVy
俺は楕円にしてる
109:名前は開発中のものです。
08/03/23 13:43:51 9Ostvv4d
矩形だけだな
斜めは回転で対応
110:名前は開発中のものです。
08/03/23 13:46:52 VlbCWj/H
斜めの弾=斜め方向に飛ぶ弾、斜め方向に長い弾
矩形だと見た目とずれるし、矩形を回転させるのは手間。楕円も同じ
円形だと、斜め向きでも縦向きでも
尖がった部分に当たり判定が無いのは共通だからまあマシかな、と
111:名前は開発中のものです。
08/03/23 14:02:08 DkU5E/rv
円形で細い弾は作らない。
112:名前は開発中のものです。
08/03/23 14:14:31 d2zOUJKL
>>110
針弾のこと?
矩形回転くらいやんなさいよw
それが面倒なら針弾なんか使わなければいい。
丸い弾だけなら正方形判定だけで出来る。
113:名前は開発中のものです。
08/03/23 15:33:05 SMEFBCL/
俺は斜めだろうと楕円だろうと何だろうと正方形で済ませてるど素人です。
自分でプレイしてて全然気にならないんですが、
やっぱ弾幕シューとかだと重要なんでしょうかね。
自分は緻密な弾避け行為にこだわってないから解んないけど
そういうのが好きな人は違うのだろうか。
114:名前は開発中のものです。
08/03/23 15:40:46 ZbRSLUlC
まぁ、好きな人はそういう仕様まで利用していくから良いと思うよw
115:名前は開発中のものです。
08/03/23 15:58:42 4ckcNna2
弾幕目の敵にしすぎワロタ
弾幕ゲーじゃなくても、見た目と違うあたり判定はどうも嫌いだな
某同人弾幕ゲーは見た目と当たり判定の乖離がひどいが
俺は矩形の当たり判定を複数持たせて近似している
地面とかは円形だとうまく表現できないし
本当はビットマップを走査して判定したいけど、さすがに重過ぎる
116:名前は開発中のものです。
08/03/23 16:14:15 XpxtelVy
線分交差判定か何かでいいんじゃないか
117:名前は開発中のものです。
08/03/23 18:40:14 d2zOUJKL
見た目と違うというが、昔からゲームやってる人間なら
むしろ見た目どおりの判定のほうがおかしく感じるハズだw
118:名前は開発中のものです。
08/03/23 20:14:18 2cPCy0BJ
何回もやってりゃなれるしな
119:名前は開発中のものです。
08/03/23 21:27:48 cK7bOzt5
自機の当たり判定が点なのに
弾の判定が見た目と違うと文句をつけるのもおかしな話だ
120:名前は開発中のものです。
08/03/23 22:14:24 /kBQhQQw
んだな
針弾の当たり判定オブジェクトが矩形(正方形のAABBの数珠繋ぎ)でも
判定が甘め(針弾イメージからAABBが飛び出ない)なら俺は気にならん
だが矩形回転(OBB)が面倒とかいうのも
ちと情けないというか。高校レベルの算数だろ
121:名前は開発中のものです。
08/03/23 22:17:16 /kBQhQQw
あと針弾をAABB数珠繋ぎでやるくらいなら
円の数珠繋ぎのほうがマシな気がしないでもない
122:名前は開発中のものです。
08/03/24 00:08:41 +0T08afk
>>120
×算数 ○数学
回転矩形同士の当たり判定は結構面倒だと思うが
難しいんじゃなくて面倒
123:名前は開発中のものです。
08/03/24 00:29:47 Yr94LLRU
STGスレだから
OBB vs 点 の判定という前提で
簡単と書いたったのゆーしてくらはい
124:名前は開発中のものです。
08/03/24 10:01:29 IupNpfeC
俺は先端に矩形を一個だけww
手抜きサーセンwwwww
125:名前は開発中のものです。
08/03/24 11:24:17 mEuEcy6w
それで良いんじゃね
126:名前は開発中のものです。
08/03/24 12:08:38 fwLvQ6Ft
難しいとか面倒とかでもあるけど
比較的どうでもいい事に処理を食わせたくないという旧い人間な俺。
127:名前は開発中のものです。
08/03/24 12:35:06 mEuEcy6w
たとえば中型のプロペラ機の機体後部とか尾翼とかに判定なんか要らんのですよ
主翼部分だけで良いんです
128:名前は開発中のものです。
08/03/24 13:17:05 sI3+U67E
>>115
どうでもいいけど、確かひとつのオブジェクトに複数の当たり判定を持たせる、
という方法はセガが特許をとっていたはず
129:名前は開発中のものです。
08/03/24 13:27:41 mEuEcy6w
知らんがなそんなもんw
130:名前は開発中のものです。
08/03/24 14:00:30 3DNtnzJR
>>128
3Dオブジェクトの周りに球形の当たり判定を複数つけるというのがセガの特許だから
2Dなら大丈夫なんじゃないか?
131:名前は開発中のものです。
08/03/24 14:31:02 fwLvQ6Ft
そんなんで特許取れるのか……。
132:名前は開発中のものです。
08/03/24 14:34:58 GL5PdgnZ
>特許3603898
>特開2003-299877
>交差判定方法及びこれを用いたゲーム装置
この辺かなぁ
これ普通に既知・公知の基本技術だよねぇ
趣味野郎にとっては完全無視しても事実上無問題の話だけど
ゲームで飯食ってるその手の業界の競合他社の法務部門は
こういうナメた特許を取られて異議申し立てもせずに
完全スルーしてて大丈夫なのか?タダ飯食って寝てるだけだろ
133:名前は開発中のものです。
08/03/24 16:20:11 mEuEcy6w
アメリカで「入力装置による操作で画面の絵が動く」とかいうサブマリン特許で
ゲームメーカー各社が訴訟起こされたりしたからな。そこら辺は防衛手段だと思われ。
134:名前は開発中のものです。
08/03/24 20:09:54 RTOqTDW3
もういっそ
「誰でも考え付くくだらない技術で特許を取る方法」という特許を取ればいいのに
135:名前は開発中のものです。
08/03/24 22:03:31 nPahSoi8
普通に矩形判定の回転とかやり方が思いつかない理系の俺はどうしたらいい?
136:名前は開発中のものです。
08/03/24 22:22:10 sI3+U67E
回転した矩形の衝突判定なら、多角形の衝突判定でいいと思う
137:名前は開発中のものです。
08/03/24 22:23:12 k9aWkyJr
>>135
中学生?
138:名前は開発中のものです。
08/03/24 22:31:04 YAOqhvfe
敵キャラの基本と思ってスライムを作った
あー、STGの空飛ぶ世界でスライムって使いどころが……
139:名前は開発中のものです。
08/03/24 22:33:21 V5wQxKJV
横シューでグラVのバスクリン見たいに落ちてくるとか
140:名前は開発中のものです。
08/03/24 23:21:17 nPahSoi8
>>137
えぇ。適当にベクトルの式の立てて解くっぽいことしか想像できないw
しかもやり方わからんし
数Cもっとまじめにやるんだったかな・・・ちょっくら高校の教科書とにらめっこしてくる。
141:名前は開発中のものです。
08/03/24 23:44:00 YAOqhvfe
一方がもう一方に入り込む可能性を無視するなら、各辺が交わっているか判定する
入り込む場合は、一方の頂点がもう一方の領域に入っていることを判定する
頂点が領域に入っている判定は、
矩形に限定するなら、座標変換した後、普通に矩形と頂点の判定をするとか
凸多角形なら、辺と頂点の位置関係(常に頂点が辺の左側にあるか)を判定すればOK
こんな感じ?
>>139
背景の当たり判定考えてないんだよねぇ
何か土台でも作ろうかな
142:名前は開発中のものです。
08/03/25 00:22:40 +WqpoOyM
ライフゲージをスライムの大きさで表示
そしてアイテムは全部スライム
143:名前は開発中のものです。
08/03/25 00:32:40 9+3bwAjS
普通に地上キャラでスライムだせばいいのでは・・・
144:名前は開発中のものです。
08/03/25 00:39:21 BjCc4re0
接触したら、コマンド入力方式戦闘シーンに突入すればいいのでは……。
145:名前は開発中のものです。
08/03/25 01:38:38 uFzRVnSV
ゲーム中の物体は全てオブジェクトで、
登場するたびにnewでメモリ確保してlistに突っ込んでるんだが、
newは自重したほうが速度的に有利なのかな
いまどきのPCなら問題ないよ・・・な?
146:名前は開発中のものです。
08/03/25 11:55:46 mSvRfoAk
そのぐらいの最適化、ちょっと手を加えれば済むんだからやっとけよ
プールして再利用、あとは事前にまとめて確保しておけ
147:97=99
08/03/25 12:04:14 pBCIUDY5
遅くなりましたがいろいろありがとうございました
今試行錯誤中です
148:名前は開発中のものです。
08/03/25 19:28:38 njfgxTgM
>>141
まさにその形で組んだ所だったよ。
内包する場合も141と同じ方式。
前にどこかで拾った式コピペしときま。外積使って頂点が左にあるか。を求めてるのかと。
828 2008/01/25(金) 18:20:24 ID:wCWKO3oH
名前は開発中のものです。(sage)
四角形ABCDと点Pの当たり判定
(Px-Ax)*(Py-By)-(Py-Ay)*(Px-Bx) > 0 and
(Px-Bx)*(Py-Cy)-(Py-By)*(Px-Cx) > 0 and
(Px-Cx)*(Py-Dy)-(Py-Cy)*(Px-Dx) > 0 and
(Px-Dx)*(Py-Ay)-(Py-Dy)*(Px-Ax) > 0
の時は当たり
149:名前は開発中のものです。
08/03/25 20:47:36 ZVswnUkG
>>146
ぶっちゃけSTGに可変長配列は要らないな
オブジェクトの配列を最初にまとめて確保して、存在フラグをメンバ変数に持たせる
派生クラスも作らないで、オブジェクトの種類はメンバ変数で管理
ぜんぜん美しくないけどな
150:名前は開発中のものです。
08/03/26 17:47:55 H5DuUJqf
オブジェクトのプールってどのように実装しているんでしょうか?
まとめて確保したオブジェクトのポインタをstackに積んでおいて
取り出したり使い終わったら戻したりみたいなやり方と
プールのlistと使用中のlistでやりとりするみたいなやり方
を思いついたんですけど・・・
もっとかっこいいやり方あるんでしょうか?
151:名前は開発中のものです。
08/03/26 18:31:19 kiBU8E/6
STLは使って無いんだけど、後者と同様の事をしてる。
任意サイズメモリを確保してそれをローカルヒープとして管理し、
そこからAlloc/Freeってのをやってたこともあったけど、可変サイズに対応可能だけど
メモリ管理ブロック分がもったいないとか、微々たるものだが処理コストが気になる、とか一長一短。
PCなら気にしなくてもいいかな?
152:名前は開発中のものです。
08/03/26 19:28:28 GuggIAK/
PCなら気にする必要は全く無しというのが俺の実験結果
ボス、弾、破片(パーティクル)に至るまで一個一個new(LocalAlloc)してdeleteして
24時間デモシーンをぶん回しても異常なしだったんだぜ
153:名前は開発中のものです。
08/03/26 20:34:31 59FgdjS6
物理演算とか相当煩雑な処理させない限り、
現在のPCの処理速度では最適化の意味がない、ってのは常々言われてるな
処理速度より、生産性とかソースの可読性とかを優先していいと思われ
154:150
08/03/26 22:29:36 BPyz/7I/
自分も今はそのままnewを使っているんですが
同じ動作をするなら少しでも軽いほうが精神衛生的に良いかなと。
処理もそんなに難しそうじゃないし。
まあ、一人でしこしこ作ってるので自分が納得できるようにやります。
155:名前は開発中のものです。
08/03/26 23:10:59 u3R/2Gep
それが一番だな。>自分が納得
156:名前は開発中のものです。
08/03/26 23:18:09 pNomGL32
俺は配列で確保してる
157:名前は開発中のものです。
08/03/26 23:37:23 59FgdjS6
クラスのサイズがバラバラだから、使いまわし出来ないなぁ
最大サイズで確保するのはなんか癪だ
158:名前は開発中のものです。
08/03/27 00:08:07 sUf83WPb
しかし最大サイズで確保するのが最も現実的な罠
断片化を抑えるために色々小細工してるから遅い、という原因には効く
159:名前は開発中のものです。
08/03/27 01:08:19 V2zSEp+V
>>157
>癪だ
富豪厨の俺に言わせれば
boost::simple_segregated_storageでガバッと確保して固定サイズでジャブジャブ融資
原資(メモリ)が足りない?そんなしみったれた貧弱PCユーザーは今すぐrejectだ!
160:名前は開発中のものです。
08/03/27 01:33:36 PgdiK5wh
アジャイル、UML,オブジェクト思考、階層化・・・
色々悩ませてくれたが・・・俺は最大の手段を使うことにした
そ れ は ・ ・ ・
goto文
161:名前は開発中のものです。
08/03/27 05:29:56 /WF5Ry8k
>>157
使いまわせるように作るんだよぅ
162:名前は開発中のものです。
08/03/27 09:52:59 4/N0HnfM
単純な直進弾や自機狙い弾と、
ホーミング弾や複雑なAIを持った敵機で、
必要なメンバ変数の数が違うんだよねぇ
163:名前は開発中のものです。
08/03/27 13:42:30 QODpit3Q
で?みたいな(笑)
164:名前は開発中のものです。
08/03/27 16:42:19 V2zSEp+V
>>162
3DSTGの敵機に編隊飛行、指令送受信、策敵、射撃、回避、離脱、体当たり
こんだけ積み込んでおおよそ64[Bytes/Instance]
ブースターだの脱出ポッドだのバリoートだのフライ○グアーマーだのといった
子インスタンスを加えても合計128[Bytes/Instance]を上回ることはなかった
誘導弾は64[Bytes/Instance]以下
直進弾は32[Bytes/Instance]以下
敵機200機の飽和攻撃により誘導弾800発と直進弾2000発
合計3000個のインスタンスが画面内を乱舞するとする
割り当て方法は全部同じプールでも別々のプールでも
インスタンス毎にnew(HeapAlloc)でも好きにしたまえだが
毎回HeapAllocだと管理領域分も考慮しなければいけないので
ここでは話を単純化するためプールとする
165:続き
08/03/27 16:42:55 V2zSEp+V
富豪厨は太っ腹なので全て128[Bytes/Instance]の固定サイズで
湯水のごとくアロケート
種類 サイズ(使用メモリ) 個数 サイズ合計 使用メモリ合計 無駄使い
----------------------------------------------------------
敵. 128(128) 200 25600 . 25600 . 0
誘導弾 64(128) 800 51200 102400 . 51200
直進弾 32(128). 2000 64000 256000 192000
----------------------------------------------------------
合計 224(384) 3000 . 140800 384000 243200
敵、誘導弾、直進弾、別々のプールから割り当てる場合と比較すると
3倍弱のメモリを使用して約243KBを無駄にすることが分かる
これを「に、243KBも!(#@Д@)」とするか
「たったの243KBで騒ぐ貧乏人はrejectだな」とするかは
各人のエンゲル係数や可処分所得に左右される大変デリケートな問題
ここではあえて言及しないことにする
以上
166:名前は開発中のものです。
08/03/27 17:01:14 V2zSEp+V
× 約243KBを無駄にする
○ 約237KBを無駄にする
167:名前は開発中のものです。
08/03/27 20:03:42 p+6nv0BF
>敵機200機の飽和攻撃により誘導弾800発と直進弾2000発
>合計3000個のインスタンスが画面内を乱舞
これは酷いな。生きのこれる気がしないぜ
168:名前は開発中のものです。
08/03/27 20:38:33 /7zHrXV5
一昨日PC2 6400 2GBx2を8000円で買ったんだが
243200バイトの損失なら
8000 * 243200 / (1024^3 * 4) = 4.53E-01
たった45銭3厘の損失かぁ
MSXの32KB拡張RAMカートリッジ、高かったなぁ(遠い目
169:名前は開発中のものです。
08/03/27 21:35:50 PgdiK5wh
もまいらいったいいくつから作ってるんだ?
170:名前は開発中のものです。
08/03/27 21:58:45 d3jrFqn7
パピコンでBASICゲーム作ってたのは中学んときだけど、
まがりなりにもシューティングらしきのを作ったのは高校ん時だったかなぁ。
やはりパピコンのBASICコンパイラ+表示部分だけマシン語(ハンドアセンブル)で。
あの頃からほとんど成長してないのは正直どうかと……w
171:名前は開発中のものです。
08/03/27 22:04:51 V2zSEp+V
>>169
もまいの故郷
goto文を恐れなく使う兵達のスレ
URLリンク(pc.2ch.net)
172:名前は開発中のものです。
08/03/27 22:07:22 DaOlp9/i
真の富豪厨は毎回new/deleteだろ。
173:名前は開発中のものです。
08/03/27 22:11:27 V2zSEp+V
やった(>>152=俺)が、余りにもアッサリとうまく動きやがったので
面白くないからrejectしてやった
174:名前は開発中のものです。
08/03/27 22:58:05 WDUR6Kc3
3Dで敵機64バイトって小さすぎない?
姿勢情報とかでどうしても容量デカくなりそうだけど
175:名前は開発中のものです。
08/03/27 23:44:06 XP2qgfZL
変位(座標)と回転の情報を4x4行列にぶち込んでればそりゃブクブク膨れ上がるだろうけど
回転にクォータニオンとか使ってれば2要素増えるだけだぜ?(圧縮すれば1要素増加で済む)
変位のほうは単純にz成分(1要素)が加わるだけ
結局、姿勢情報はfloat値6個(24バイト)もあれば十分表現できる
後は速度情報を加えて計48バイトとか
まぁ普通はそんな感じじゃね?
176:174
08/03/28 00:28:27 PZRPRNjR
>変位(座標)と回転の情報を4x4行列にぶち込んでればそりゃブクブク膨れ上がるだろうけど
うっ、それまさに自分だ。。。
クォータニオンか。。。D3DXで提供されてるから素直に使ってみるか
レス㌧
177:名前は開発中のものです。
08/03/28 00:57:37 p3ibL9sX
そうかなぁ
4x4行列をジャブジャブ使ったほうがある意味で爽快かもよ
178:名前は開発中のものです。
08/03/28 01:12:03 0fJyqmGF
>>172
なんという俺
179:名前は開発中のものです。
08/03/28 01:12:06 PZRPRNjR
そ、そういう発想の転換もアリだよね、ね
PCならこの程度何の実害ないし
クォータニオンはまたその内検討してみまつ。。。
180:名前は開発中のものです。
08/03/28 01:13:36 PZRPRNjR
すまんこアンカー忘れ。>>177だた
181:名前は開発中のものです。
08/03/28 01:18:13 Pgm9Hf0W
>>177
おまいもうboostスレに帰れよw
182:名前は開発中のものです。
08/03/28 01:26:20 p3ibL9sX
どうもお邪魔しました!
_______ boostスレの STGスレの
|←boostスレ| 中の人 中の人
. ̄.|| ̄ ̄ ̄ ┗(^o^ )┳(^o^ )┳(^o^ )┛≡=-
|| ┏┗ ┗┗ ┏┗ ≡=-
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
183:名前は開発中のものです。
08/03/28 02:01:16 ZjS17OFO
絆スキップ
184:名前は開発中のものです。
08/03/28 14:37:29 SjpgUEnZ
>>175
>ブクブク膨れ上がる
常日頃からメタボメタボ言われまくってる俺の
センシティブなハートをお前は深く傷つけたよ
185:名前は開発中のものです。
08/03/28 20:50:33 qlc6IPHd
メタボ臭とかいう新ジャンルのSTGを開拓すればいんじゃね
186:名前は開発中のものです。
08/03/28 21:15:38 /8lohFxt
それ何てミクロの決死圏
血管の中で中性脂肪の弾幕でもかわすのか?すげぇ既視感あるネタだけど
泡状のとかブニョブニョしたものを描くの面倒臭そうだな
昔のメガデモでよくみかけたMETABALLみたいな手法を使えばいけそうだな
オヤジギャグじゃないからな
187:名前は開発中のものです。
08/03/28 22:00:27 wFA3mk0n
メガデモ(笑)
メタボール(笑)
オッサンばっか(笑)
188:名前は開発中のものです。
08/03/28 23:11:26 ikErMOXa
メガデモのメタボールの仕組みよく知らないんだが、あれって
濃度を格納したボリュームデータを用意して
ある濃度をしきい値にして面を張る
みたいな、ベタなやり方だったのかな
10年近く前にクラシックペンティアム積んだPCでぐりぐり動いてた
ような記憶があるんで、上記の手続きだと(特にボリュームデータの
更新、というかアニメーション?あたりが)かなり重たいものになりそうだし
やっぱ何らかのトリック(フェイク)が使われたのかな
あ、ソース公開されてる作品あるからそれ覗けばいいだろってのは分かってる
話題がないのでなんとなくネタ振りということで・・・
グニャグニャ(連続体?)オブジェクトが出現するSTGとか作ってみたいし
189:名前は開発中のものです。
08/03/29 01:52:02 oF0Q5YC2
ム板のメガデモスレ池
マジレス
190:名前は開発中のものです。
08/03/29 02:49:58 4C1bZfLa
>>188
ソフトレンダもので初代Pentiumでぐりぐり(60FPS以上で)動いてたなら
スクリーン解像度は400*300とか320*240程度だったはず
濃度値を収める三次元格子もかなり荒かったんじゃないかなぁ
濃度値の精度は8ビットで格子数は16*16*16=4096バイトとかで十分
この程度なら当時でも余裕で処理できたはず
つか、今時のビデオカードで2DSTGでメタボールっぽいキャラ出すなら
パーピクセルで描ける
法線マップとアルファ付きカラーマップにぼやけた円を重ね描きしていって
アルファテストで閾値設定して描けば立体感(光沢付き)ぷよぷよだよ!
DirectXのSDKにもそんな感じのサンプルが入ってたはず
191:名前は開発中のものです。
08/03/29 10:50:00 p4/t7kS/
背景が黒いなら加算合成で出来ちゃうんだけどな。
192:名前は開発中のものです。
08/03/29 10:52:47 PdR5kqA3
メタボはメタボールの略だったのか。
193:名前は開発中のものです。
08/04/01 15:39:40 3rITgYf3
メタルボーク発進
194:名前は開発中のものです。
08/04/04 00:38:42 JN0z56Et
質問
CGってグラフィックボードで描いてるんだよね?
ハード的な理由で描画はマルチスレッドみたいになるの?
てことは、処理落ちの原因はほとんど当たり判定とかのせいになるの?
ということは、当たり判定をマルチスレッド分担すればいろいろ完璧?
195:名前は開発中のものです。
08/04/04 01:02:14 1TsuscT3
今時、当たり判定程度で処理落ちするCPUはない
プログラムにむちゃくちゃ無駄が多かったりしない限り
3Dならポリゴン数が多いと、GPUの性能次第で処理落ちするし、
物理演算があるとCPU性能次第で処理落ちするかな
196:名前は開発中のものです。
08/04/04 03:26:09 kdoRe4RJ
>>194
「てことは」の前後の文脈がどういう理屈で繋がるのか知らんが、2DSTGの話をしてるなら
今時どんなヘボノートPC環境であろうとも「当たり判定」で処理落ちさせるなんて至難の業だな
5年近く前のモバノート(1GHz前後のペンM…当然シングルコア)でシングルスレッドの総当りで
敵50匹と弾1500発の処理やらせて普通に60fps出るんだから、この時点で既に「いろいろ完璧」
197:名前は開発中のものです。
08/04/04 03:59:52 VspohKvQ
そのスペックで1500の総当りってどう考えてもきつい気がするんだけども・・・
198:名前は開発中のものです。
08/04/04 07:15:31 69exqbeK
ウチのご隠居チンコパッドX31が初代セントリーノの1.2GHzで
だいたい同世代みたいだけど、1500個くらいならイケてる
ビデオチップがMobileRadeonとやや貧弱だから、計算よりも
描画周りに気を使う
使うっつってもテクスチャをケチりまくるとか
頂点バッファとDrawPrimitiveの使い方を適切に、とか
その程度の話だけどね
199:名前は開発中のものです。
08/04/04 10:16:35 AI/AEUDG
総当り以外の当たり判定処理ってのが思いつきません。
ずっと昔に仮想マップみたいなのを用意しておいて
そこにキャラや弾の情報を書き込み、判定の際に使うってのを
何かで見た記憶があるけど、こういうのの事でしょうか。
200:名前は開発中のものです。
08/04/04 10:46:32 hPpN0s4/
空間分割ってのがありまして。
完全2Dなら当たり判定のある空間を縦横20くらいに分割して、
それぞれの空間に属するもの同士で判定を取ることで、
当たる見込みの無いものとの判定を事前に回避する。
201:名前は開発中のものです。
08/04/04 12:27:23 euXxyvh6
>>199
スレリンク(gamedev板:762-765番)n
↑の質問したのお前?
仮に別人だとしてもこの過疎板でこのタイミングで同じ質問が二度出るのは変だな
どっかのゲー専の宿題か何かか?正直に吐いたら褒美をくれてやるぞw
202:名前は開発中のものです。
08/04/04 13:27:02 AI/AEUDG
違います。
ゲー専の宿題でもないです。
今、自分で2Dゲーム作ってて、
キャラと弾、全部あわせると最高1600強を動かしてて、総当りでやってて問題なく遊べてる。
(もちろんあくまで「最高1600」であって、常にそれだけ動いてるわけではない)
「自機と敵弾」だけの判定じゃなくて、「敵と敵弾」とかの判定もやってるのに
ちゃんと遊べるから、最近のPCの処理速度はすげーなーとか思いつつも
やっぱもっと効率のいい判定方法ないかな、と考えてただけです。
203:名前は開発中のものです。
08/04/04 14:08:55 98Hdy+Q5
1600*1600の総当りは3年位前のスペックだときつくないかな?
204:名前は開発中のものです。
08/04/04 14:20:04 kACwEiIs
三年前、2005年のスペックというと
athlon64が全盛でathlon64x2が登場、Core2Duoがまだ、という辺り
有り得ないくらい余裕だな
205:名前は開発中のものです。
08/04/04 14:36:20 8r+omDm7
1600*1600だと最新マシンでも空間分割しないときついんじゃないか。
>>196は弾*キャラなんじゃない?
206:名前は開発中のものです。
08/04/04 16:24:58 XVBdGsRf
典型的な2DSTGで1600のオブジェクトを表示するったって大半が弾なんだけど
1600*1600という数字(組み合わせ)に一体何の意味があるのか>>203は説明できないだろ
207:名前は開発中のものです。
08/04/04 16:25:30 KKsDXKAb
URLリンク(ja.pastebin.ca)
やっつけだがpen3 1GHzのマシンで平均32ミリ秒
30fpsで間に合わないってところか
208:名前は開発中のものです。
08/04/04 17:04:15 KKsDXKAb
URLリンク(ja.pastebin.ca)
今度は32*32の敵64体と16*16の弾1600発のテストで、弾はヒットしたら壊れるという想定
同マシンで2~3ミリ秒
余裕すぎるな
ただのジコマンなのに連投してすまん
209:名前は開発中のものです。
08/04/04 17:25:12 0OItj9LK
総当りっていったら、普通は敵だの弾だの関係なく
{1600}C{2} = 1600*1599/2 の組み合わせになるんじゃないのか?
64*1600の組み合わせじゃあ桁が違う
210:名前は開発中のものです。
08/04/04 17:32:55 KKsDXKAb
>>209
それは>>207
>>208は単なるジコマンぽ
211:名前は開発中のものです。
08/04/04 19:04:55 g/x8ThIF
>>203は
”総当りの意味をちゃんと使ってくれ”
と、暗に言ってるだけだと思うんだが
212:名前は開発中のものです。
08/04/04 20:34:11 GfOfbOVS
オブジェクトを敵機・弾など種類ごとにリストにしておき、
あるリストの要素と別のリストの要素の当たり判定を行うことで、
無駄な判定はなくせると思うが
213:名前は開発中のものです。
08/04/04 20:42:54 9+TzVPLQ
俺もそれだ。
214:名前は開発中のものです。
08/04/04 21:04:37 qbhzPNp0
>>212
例えば自機が画面の左下にあるのに
右上に固まってる敵弾と判定と判定を行うのは無駄な判定だとは思わないか?
215:名前は開発中のものです。
08/04/04 21:06:02 qbhzPNp0
なんか変な文章に・・・
216:199=202
08/04/04 21:43:26 WdCHFh7R
なんか俺の書いた事について色々あったみたいで、申し訳ないです。
俺が問題としてた話題はあくまで「総当り以外の判定方法」であって、
それ以外(俺がどんな事やってるか)は、この際関係ないから
>>201さんに納得してもらえる程度の情報出せばいいと思って
おおざっぱな説明しただけで、実際に1600*1600の判定やってるわけじゃないです。
常に全キャラ使ってるわけじゃないし、キャラ同士、弾同士の衝突判定は
ある場合より無い場合の方が多いし、そもそも味方同士の判定はやってないし、
というようにかなり減らしてはいます。
という事で>>201さんに納得していただいて、その褒美を貰おうと心待ちにしている次第です。
217:名前は開発中のものです。
08/04/04 22:03:57 GfOfbOVS
>>214
当たり判定範囲が矩形なら無駄な判定は生じない
むしろ、空間分割の方が無駄
5~10個の矩形の複合体とか円形とか多角形なら、空間分割にも利があるけど、
矩形のバウンディングボックスで一度判定すれば十分だろ
218:名前は開発中のものです。
08/04/04 23:32:07 qbhzPNp0
俺の日本語がダメなばっかりに変な誤解をさせてしまってるかもしれない・・・
それとも俺が誤解してるのかも?
>>212の方法って敵弾が1000個あったとしたら
1000回自機と判定しなきゃならないってことだよね?
悪い例えだけど(実際はツリーだったり)
敵弾を分割した空間ごとにリストにしておき、
自機のある空間とその空間のリストの当たり判定を行うことで、
無駄な判定はなくせると思うが
219:名前は開発中のものです。
08/04/04 23:32:34 KKsDXKAb
組み合わせが多いときは、分割は有効だけどね
220:名前は開発中のものです。
08/04/04 23:37:39 KKsDXKAb
グリッドハッシュ
URLリンク(lucille.atso-net.jp)
シューティングにここまで必要か?と問われたら
個人的には要らないと答えるが
知っておいて損は無いと思う
221:名前は開発中のものです。
08/04/04 23:50:38 98Hdy+Q5
昔は、IF文使うときに&&を使わず
入れ子にして速度を稼いだりしたなぁ
222:名前は開発中のものです。
08/04/04 23:53:49 qbhzPNp0
確かに1対多だったら労力のわりにたいした恩恵受けるもんでもないんだけども・・・
223:名前は開発中のものです。
08/04/05 00:13:39 ElJWYWg0
とりあえず、オマエラ「空間分割 衝突」で1回ググれば幸せになれるんじゃね?
224:名前は開発中のものです。
08/04/05 00:23:10 xg5znUOR
>>221
わざわざ入れ子にしなくても
if( A() && B() )
これA()がfalseならB()は実行されないから
左のほうをfalseになりやすいものにすればいいと思うんだけど
昔のコンパイラは違うのかね
225:名前は開発中のものです。
08/04/05 00:27:12 ndMxol9I
>>209
敵弾とか敵機はお互い衝突しない
つまり敵属性同士は衝突しない
自機と自弾についても同じこと
敵(Enemy)と自(プレイヤー、味方、Friendly)。たった「2種」の敵味方属性
そしてオブジェクトに割り当てられる敵味方属性情報は静的。定数。const
プリプロセッサ、コンパイラにかける前から明らか。火を見るより
ゲームデザインの時点で既に決まってること
それなのに、判定…意味も無く…1600*1600回…あり得ない…愚行…常軌を逸する…愚鈍
226:名前は開発中のものです。
08/04/05 00:28:02 ndMxol9I
BULLET enemybulletarray[1500];
ENEMY enemyarray[100];
PLAYER player;
for(int n0=0; n0<1500; n0++){
for(int n1=0; n1<1500; n1++)
CollisionDetection( enemybulletarray[n0] , enemybulletarray[n1] );
for(int n1=0; n1<100; n1++)
CollisionDetection( enemybulletarray[n0] , enemyarray[n1] );
}
for(int n0=0; n0<100; n0++){
for(int n1=0; n1<1500; n1++)
CollisionDetection( enemybulletarray[n0] , enemybulletarray[n1] );
for(int n1=0; n1<100; n1++)
CollisionDetection( enemybulletarray[n0] , enemyarray[n1] );
}
//↑ここまでで1600*1600回
227:名前は開発中のものです。
08/04/05 00:38:24 ndMxol9I
BULLET playerbullet[100];
//2DSTGで総当りで当たり判定するっつったら普通コレ
for( int n0=0; n0<1500; n0++)
CollisionDetection(player , enemybulletarray[n0]);
for( int n0=0; n0<100; n0++)
CollisionDetection(player , enemyarray[n0]);
for( int n0=0; n0<100; n0++)
for(int n1=0; n1<100; n1++)
CollisionDetection( enemyarray[n0], playerbullet[n1] );
228:名前は開発中のものです。
08/04/05 00:43:36 ndMxol9I
BULLET enemybulletarray[1500];
>>226訂正
ENEMY enemyarray[100];
PLAYER player;
for(int n0=0; n0<1500; n0++){
for(int n1=0; n1<1500; n1++)
CollisionDetection( enemybulletarray[n0] , enemybulletarray[n1] );
for(int n1=0; n1<100; n1++)
CollisionDetection( enemybulletarray[n0] , enemyarray[n1] );
}
for(int n0=0; n0<100; n0++){
for(int n1=0; n1<1500; n1++)
CollisionDetection( enemyarray[n0] , enemybulletarray[n1] );
for(int n1=0; n1<100; n1++)
CollisionDetection( enemyarray[n0] , enemyarray[n1] );
}
//↑ここまでで1600*1600回
229:名前は開発中のものです。
08/04/05 00:47:03 KzcCKEO1
>>225-228
言いたい事は概ね同意だが下手なカイジネタは寒いからヤメレ
230:名前は開発中のものです。
08/04/05 00:51:05 ouV9zovg
自機と敵弾・敵機と自弾以外に衝突判定する必要無いだろ
1600×1600になるのは自機1600機と敵弾1600個みたいな時
231:名前は開発中のものです。
08/04/05 00:57:53 fK+4rNgg
弾同士が打ち消しあうときもな
232:名前は開発中のものです。
08/04/05 01:02:18 xg5znUOR
弾同士の当たり判定が無いなんて勝手に決め付けるなよ。
そういうSTG作りたいと思ってる人がいるかもしれないじゃないか。
というより5年前に俺が作った。
ビリヤード風弾幕wwwとかいいながら。
ひどい処理落ちで泣いた。
233:名前は開発中のものです。
08/04/05 01:03:00 KzcCKEO1
計算機アルゴリズムで使われる「総当たり」とか「総当たり法」ってのは
理論的にありうるor考え得る全ての組み合わせ全てを○○する、ことであって
この理論的にありうる、考え得るってのがキモ
理論的にありえない、100%かんがえられない組み合わせを端から除外しても
やはり総当たりだ
敵同士、味方同士は「当たらない」というルールになってるなら端から除外しても
やはり総当たりだ
234:名前は開発中のものです。
08/04/05 01:04:20 ouV9zovg
弾同士が打ち消し合うときは(1599 + 1) / 2×1599じゃないか?
235:名前は開発中のものです。
08/04/05 01:37:44 ndMxol9I
>>229
ウッセー自分で書いて後で赤面してんだからそれ以上言うな
236:名前は開発中のものです。
08/04/05 15:10:07 yDdR+5eW
33MHzくらいのCPUでSTGを作ったときは空間分割にしないと重くて大変だった。
そういうプアなハードじゃないなら好きに作った方がいいかもね。
237:名前は開発中のものです。
08/04/05 15:19:58 q5ZpKtyT
自機の弾が1600発とか弾で画面が見えなくなりそうだなw
238:名前は開発中のものです。
08/04/05 18:40:45 9fddUrpP
>>224
私の記憶が確かならば、A()でとっとと打ち切られるのはCの仕様で保証されているはずだ。
239:名前は開発中のものです。
08/04/05 19:27:04 hxbbxTAw
O(n^2)の壁は厚すぎる
240:名前は開発中のものです。
08/04/06 01:22:08 +j0OgDSv
>>218
矩形同士の判定程度だと、
ツリー管理コスト>>>衝突判定のコスト
だと思うのだが。これが3Dでコリジョンも複雑になってくると、
衝突判定コスト>>>ツリー管理コスト
になるけど
241:名前は開発中のものです。
08/04/06 01:42:33 5ljxdwAA
>240 の頭の中にはどんな木が生えているのだろう?
木ってぐらいなんだから再帰なんだんろうけど、
それよりも、ずっと簡単なs個の空間分割でこんな感じだよ。
比較回数(衝突判定回数)は総当たりが一定でO(N^2)としたら、
s個の空間に分割した時は、
最小 O(N^2/s +N) ~ 最大 O(N^2 +N)
+Nってあるのは、中心より上とか下とか、左右とか、分割条件との比較。
最大は、全ての判定対象が一つの空間に有るとき。
最小は、全ての判定対象が均一にそれぞれの空間に別れたとき。
最大なんて状態ばかりのゲームはそう滅多に作れない。
必要とあらば中心を移動する事もできちゃうしね。
242:名前は開発中のものです。
08/04/06 02:25:27 KzCv2Ahg
あれだ
弾幕ゲーが嫌いで、オブジェクト数がさほど多くない俺には不要>空間分割
243:名前は開発中のものです。
08/04/06 08:33:57 lZPN8UOZ
空間分割して、空間内にあるかどうかの判定って矩形判定みたいな
もんだよね。差し引きして恩恵あるのかね?あと、空間の境界にいる
場合は隣接した空間も含めなきゃいけないし、その判定のコストも
加わるから、あんまり恩恵がない気がするんだけど。
244:名前は開発中のものです。
08/04/06 09:49:50 LNMxVQdl
現空間x-1 <= 判定対象空間x && 判定対象空間x <= 現空間x+1
245:名前は開発中のものです。
08/04/06 10:21:25 UvIpq6SI
すみません。
空間分割による判定、のメリットというものがどうもイメージできないのですが、
例えば、縦シューで自機と敵弾(256発)の当たり判定で、
for(int i=0; i<256; i++){
if((自機Y座標-敵弾Y座標)の絶対値<当たりの深さ){
if((自機X座標-敵弾X座標)の絶対値<当たりの深さ){
(当たっている処理)
}
}
}
という単純な座標比較による総当たりを行っている場合、
空間分割にする場合どのように変更して、またそれによりどのくらいの恩恵が
得られるのでしょうか?
246:名前は開発中のものです。
08/04/06 10:32:56 wmWZV0ag
>>243
>空間分割して、空間内にあるかどうかの判定って矩形判定みたいなもんだよね。
それじゃ逆に判定回数増えるだろ。
例えば4分割だとしたらオブジェクトのポインタのリストを4つ準備して
オブジェクトを動かした後にでも空間別にリストに登録する。
判定したいオブジェクトの空間のリストのみ判定する。
空間の境界をまたぐ場合があるから実際はリストよりツリーを使うみたいだけど。
自機対敵弾みたいな1対多のような場合は>>240の可能性もあるが
しっかり最適化すれば恩恵はあると思う。
247:名前は開発中のものです。
08/04/06 10:51:59 ZtZMep9I
弾幕ゲーで弾同士の相殺でもない限り、
空間分割の恩恵は誤差範囲だと思うな
80-20の法則的にもっと別の部分の最適化に労力を使えばいい
248:名前は開発中のものです。
08/04/06 11:12:26 lDJhBuwb
空間分割なんて16ビット機でやってもいろんなオーバーヘッドで効果は微妙だった。
いくらか弾数が増えてるとはいえ、今のPCでみみっちいことしないでよろしい。富豪的に池
つーかまず衝突判定にそんなに時間かかってるのかプロファイリング取れ。
249:名前は開発中のものです。
08/04/06 14:07:39 IUsiyVu+
空間分割自体は当たり判定以外でも使える場合もあるかもしれないから
そういう方法があるとだけ覚えておけばいいんじゃない?
250:名前は開発中のものです。
08/04/06 19:03:41 lZPN8UOZ
>>246
難しくて分かりません。
他のレスを見て、合わせて、
必要ないということで納得しました。
251:名前は開発中のものです。
08/04/06 19:14:32 Cm7rU9iY
シューティングって、三角関数のテーブルは360度で足りる?
252:名前は開発中のものです。
08/04/06 19:38:45 ZtZMep9I
それくらい自分で判断しろ
253:名前は開発中のものです。
08/04/06 20:07:47 S2eA97Dz
どんなもん作りたいかによる
要するに自分で判断しろ
254:名前は開発中のものです。
08/04/06 20:51:46 HV30LXTn
普通に標準ライブラリ関数使いまくりでおk
255:名前は開発中のものです。
08/04/06 21:21:13 09KIF8si
むしろ度数法を久し振りに見た……。
256:名前は開発中のものです。
08/04/06 22:24:48 lDJhBuwb
だからテーブルとか考える前に普通に三角関数使ってみなよ。富豪的に。
たかがシューティングごときを作るのに、
あれこれレガシーな技をどこで覚えてくるんだいったいw
弾幕シューが技術的にすごかったのはX68000までよねーキャハハ
257:名前は開発中のものです。
08/04/06 22:37:18 +JZYHxk+
微妙に誉め言葉w
258:名前は開発中のものです。
08/04/06 22:45:56 mi699AnH
俺もそうだったが、
初心者ってどうでもいい部分の最適化にこだわるよなw
259:名前は開発中のものです。
08/04/06 22:54:25 wmWZV0ag
アセンブラ勉強し始めたりとかなw
260:名前は開発中のものです。
08/04/06 22:55:52 tOJ8RPAp
>>256
たぶん超連射のことを言いたいんだと思うがあれは弾幕シューじゃない。
そもそも68全盛期に弾幕シューなんてジャンルは存在しない。
知ったか乙。
261:名前は開発中のものです。
08/04/06 23:00:07 S2eA97Dz
マジレスとな
262:名前は開発中のものです。
08/04/06 23:13:28 3n+Chkyh
爆裂矩形弾が泣いてます
263:名前は開発中のものです。
08/04/06 23:19:08 S2eA97Dz
敵弾の多さならメルトダウンも負けない
テキストだけどw
264:名前は開発中のものです。
08/04/06 23:29:06 ZtZMep9I
>>260
265:名前は開発中のものです。
08/04/06 23:33:09 +JZYHxk+
爆裂矩形弾懐かしいw
あれで弾幕シューは俺には不向きだと悟ったなぁ。
266:名前は開発中のものです。
08/04/07 00:09:38 RkL7uReo
針弾弾幕は、その場で計算して回転で大丈夫?
267:名前は開発中のものです。
08/04/07 00:29:10 SYSPe7mm
大丈夫も何も、針弾は角度とか回転情報を持ってなくね
針弾=曳航弾。尾=残像=向きは速度(ベクトル)に平行
所有する変数は座標、速度、尾の長さ。せいぜいこんなもん
表示に際しても、太った線分=OBBを一個作るだけであり
角度とか回転計算が出る幕はない
268:名前は開発中のものです。
08/04/07 00:40:04 UhDksLO+
その場で回転を計算の意図が今ひとつ掴めないが
俺は弾の情報として角度は持たせてる
前の座標や速度からその都度計算してると完全に停止する場合に困るからね
あとは途中で方向が変化しない弾なら発射時に角度を計算して放り込んで弾が消えるまで使いまわし
変化する場合は毎回計算
まぁ好みでやればいいと思うよ
269:名前は開発中のものです。
08/04/07 01:18:56 SZ+jR7s6
融通が効くと思う方法にしとけ。
速度で困ることは無いと思うし。
270:名前は開発中のものです。
08/04/07 06:57:49 +8OjOCNS
前に、三角関数使いまくったら流石に重かったなあ。
271:名前は開発中のものです。
08/04/07 07:39:55 Rur2+VQh
改めて自分のソース見てみたら360度のテーブル使ってた。
不都合無いのでこのままいくがw
272:名前は開発中のものです。
08/04/07 09:06:33 +8OjOCNS
>271
俺も見てみたら、unsigned charのオリジナル角度表記を使ってた。
意味あんのかな、これw
273:名前は開発中のものです。
08/04/07 18:27:25 jWrDXnrl
自分は1周=256分割にしてますね。
360度だと、nWay弾とかの処理するとき、弾と弾の間の角度に端数がでませんか?
274:名前は開発中のものです。
08/04/07 18:35:56 Ln6527jm
2Dでもちょっとした誤差くらい気にならんよ
それに角度を度でやるなら360も約数多いから端数出にくいんじゃねえの
275:名前は開発中のものです。
08/04/07 19:08:11 jWrDXnrl
確かに誤差の範囲ですね。組み方次第でどうにでもなる問題かも。
自分の場合、多Way弾の弾と弾の幅を考えるときに、360度法でいうところの
90度からスタートして、半分、半分、半分、って幅を狭めていく考え方を
することが多かったから、1周が2のn乗のほうがやりやすかった、というだけの話。
276:名前は開発中のものです。
08/04/07 19:20:21 /whlgGmL
いまだに三角関数のテーブル使ってる人が俺以外にもいたなんて
俺は1024分割
当然座標も整数だよな
277:名前は開発中のものです。
08/04/07 22:10:13 nzfTFxMf
そうか! 座標を整数以外にするという手もあったのか!!
278:名前は開発中のものです。
08/04/08 00:03:17 UTGYbURq
整数つかうときって、何倍かして入れるんだろうけど
当たり判定とか表示のときは毎回戻すの?
279:名前は開発中のものです。
08/04/08 00:54:41 sOsom0Zc
何回ってどういう意味なんかよく判らんw
280:名前は開発中のものです。
08/04/08 00:57:21 NDn3kKP8
>>279
281:名前は開発中のものです。
08/04/08 01:08:48 RXIPGVdD
>>278
戻すって、整数部だけが欲しい場合か?
そんなん普通にビット演算子とかシフト演算使えば済むでしょ
おそらく初心者だと思うが、固定小数演算に興味示すのは結構だが
FPU内蔵&SIMD系の命令でもfloat値が使えて当たり前の今時のPCで
わざわざ固定小数を使うメリットはほぼ無しってことも合わせて理解しとけよ
それでも年寄りの悪趣味懐古趣味に付き合いたいなら別に止めはしない
282:名前は開発中のものです。
08/04/08 13:13:10 Wd7FQUJf
次に作るSTGにリプレイ機能を搭載しようと思っているのですが、
小数を使う場合、CPUによって小数点以下に誤差がある?という話を聞いたのですが、
例えば敵弾の座標に小数を使っていたら、リプレイを再生する環境によって
微妙に挙動がずれたりする可能性はないのでしょうか?
組み方次第で回避できるとは思うのですが。
283:名前は開発中のものです。
08/04/08 18:46:46 RXIPGVdD
>小数を使う場合、CPUによって小数点以下に誤差がある?という話を聞いたのですが
とりあえず
固定小数点数演算で生じる誤差の話なら、それは整数演算で生じるものと全く同じ
浮動小数点数演算で生じる誤差の話なら、それは「小数点以下」とか関係ないから
浮動小数点数演算の結果はCPUによって異なる、というのは事実だが
それは全く異なるアーキテクチャ上のFPU同士を比較した場合の話であって
x86系のPCに限定すれば_fpcontrol()等できちんとFPUの設定をすることで
インテルだろうがAMDだろうが加減乗除算平方根三角関数の結果は同じになる
FPUに不具合があって回収された10年以上前のペンティアムとかは例外
あとSSE関連はよく知らね
284:名前は開発中のものです。
08/04/08 19:22:22 RXIPGVdD
あと、数値計算法の基本をふまえて相応のコードを組んでいれば
異なるFPU間で生じる演算結果の極めて微少な差は問題にならないはず
FPUの演算結果にはたいてい不要な桁数の仮数が入ってるのだから
そういうゴミ情報入りの数値は適切なタイミングで有効桁に丸めること
不要な桁も何もかも後生大事に丸々保存して使いまわすのは
無意味な貧乏根性
285:名前は開発中のものです。
08/04/08 21:05:39 NDn3kKP8
D3DXが内部でSSEやら3DNow!を使ってそいつらで誤差が出ると2chで聞いたことがある。
試してないから知らんけど、リプレイで記録するデータはCPUで普通に計算すればOKじゃね。
286:名前は開発中のものです。
08/04/08 21:14:53 5+HU4lQf
>>285
URLリンク(www.01step.net)
これだな。
一応対策はできるらしいが。
287:名前は開発中のものです。
08/04/08 23:49:54 uw9YU9FV
NyaRuRu氏は同人ゲームのプログラマもやっていたのか・・・。
288:名前は開発中のものです。
08/04/09 03:34:01 B1YmjfJu
何やってる人なんだろうと思っていたが
不思議キッチンの人だったのか
289:名前は開発中のものです。
08/04/12 15:27:37 usi/yLYp
似たようなオブジェクトを同じクラスにするかどうか迷うなぁ
違う見た目(=テクスチャの領域)で同じAI(=updateメソッド)とか
AIのうち一部分だけ違う場合はifで分岐させるか、別クラスにするか
290:名前は開発中のものです。
08/04/12 16:01:22 ywj6p1Ij
好きにすりゃいいんじゃねーの。
そんな細かいことに定石も流行りもないだろうし。
291:名前は開発中のものです。
08/04/12 20:25:36 KRx1/teW
AI部分にStrategyパターンを適用して
付け替えできるようにするのもありだ。
292:名前は開発中のものです。
08/04/12 22:37:11 ObDRadP0
残機制にしたいんだけど、キャラの都合上死んだあとにもう一機出てくるのはおかしい
メカシューだから魔法みたいに復活するのも変
どうしよう…なんかいい例ある?
293:名前は開発中のものです。
08/04/12 22:51:37 Efa9OHIu
ばらばらに飛び散った破片が元通りに戻ってみたりするとか?
294:名前は開発中のものです。
08/04/12 22:56:53 Yh3eYIme
ゲーム内の設定によるだろうけど、例えば
「瞬間的にバリア張って高速自己修復出来るけど、
めちゃくちゃエネルギー消費するから回数制限がある」みたいな感じとか。
295:名前は開発中のものです。
08/04/12 22:58:31 /z0agk9x
夢オチ。
296:名前は開発中のものです。
08/04/12 23:00:31 GyPJI/ms
クロノトリガー式に未来からやってきた仲間がダミーと差し替え
297:名前は開発中のものです。
08/04/12 23:01:59 Efa9OHIu
思ったんだが普通に被弾したら、例えば片羽が落ちるとか
パーツがこぼれていく描写入れて暫く無敵時間を入れて
残機減らしてもそれはそれで良いんじゃないかな
298:名前は開発中のものです。
08/04/12 23:16:03 ZyjFSU8/
ナイトストライカーのようにシールド張ってる設定にすれば
被弾エフェクトはシールドの色が変わるとかSEとかで知らせる
299:名前は開発中のものです。
08/04/12 23:30:26 Yh3eYIme
夢オチワロスw
300:名前は開発中のものです。
08/04/13 00:07:42 VNOh5k7z
>292
爆発したら首だけすっとんで、新しいからだが飛んできて合体する逆アンパンマン方式。
301:名前は開発中のものです。
08/04/13 00:14:37 gNZFNySx
博士が来て修理するファミコンのアトム方式とか
302:名前は開発中のものです。
08/04/13 00:39:19 Z1kaHYoi
ツインビーwww
303:名前は開発中のものです。
08/04/13 01:39:10 NkPkjT6X
バリア張ってる設定にしたら?
残機=バリアの残りエネルギー
被弾するためにバリアのエネルギーを消費する
304:名前は開発中のものです。
08/04/13 01:40:02 NkPkjT6X
×被弾するために
○被弾するたびに
305:名前は開発中のものです。
08/04/13 01:57:39 QE/zNyJp
「メカシュー」で「残機制」にしたいという前提を忘れたようなレスが多いですね。
306:名前は開発中のものです。
08/04/13 02:07:08 NkPkjT6X
どう考えても無理だから、別の解決策を練ってるんだろうが
307:名前は開発中のものです。
08/04/13 02:07:37 P+NpYnxy
復活時にボムが回復するようなSTGだったらどうしようもないだろうな
308:名前は開発中のものです。
08/04/13 02:17:23 P+NpYnxy
よく考えたらストーリーあっても別の位置から復活するSTGいっぱい
309:名前は開発中のものです。
08/04/13 02:20:15 /0ITSDkw
>292
キャラを搭乗者と読めば、
被弾時は脱出装置で後方に下がって、
後方で自動操縦で追尾している残機に乗り換える
とか、何とでも自分で想像出来ない?
>308
夢オチ
310:名前は開発中のものです。
08/04/13 02:23:13 QE/zNyJp
同じ残機制でも、その場で次が出てくるタイプか、
シーンを戻されてやりなおしのタイプか、でやりようが変ってくるねぇ。
311:名前は開発中のものです。
08/04/13 03:41:09 CwJ+OgoR
戻り復活ならそんなに違和感ないな
312:名前は開発中のものです。
08/04/13 04:15:14 SI+TAocC
そうね
無かった事になるんだと思えば
313:名前は開発中のものです。
08/04/13 08:07:11 eUm94UGP
そもそもプレイヤーは次の機体がどんな出方してこようがあまり気にしていないような。
「人類に残された最後の希望」とか言って設定上試作機1機しかないはずの自機が
バンバン復活して出てくるSTGも結構あるし
314:名前は開発中のものです。
08/04/13 09:40:22 FMZP86Ek
アレだな。
漫画でもゲームでも良くある「そこは突っ込むな」って奴で良いんじゃね?
ドラクエだってストーリー上死んだキャラにザオリク使ってあげないし。
オルテガも話してる間にベホマしてやれば助かったと思うぜ。
315:名前は開発中のものです。
08/04/13 14:44:26 qC4BAKNL
>>313みたいに固定搭乗者・固定機ありなら夢落ち戻り。
といいたいところだけど、夢落ちだとステージ最初まで戻さないと
パワーアップとかあったときにつじつまが合わなくなるからなぁ。
夢落ちでわざと死ぬ前の状態から再スタートってのもそれはそれで面白い試み
かもしれないけど。
以下みたいな感じならつじつま合わせも可能かな。
パワーアップ > 装備増加 > 被弾 > 装備減少 > パワーダウン > 装備0 > シボンヌ
> 夢落ち戻り > 死亡直前の装備なし状態で復活
つじつままで気にする奴は早々いないとは思うけどw
軍vs敵みたいな、固定搭乗者なしなら別機出動演出。
(カラーとかロゴとかでバリエーション持たせたりして同型別機演出とか)
昔ロスト時に空中母艦かなんかが出てきて、新たに別機が出てくる
演出をしていたゲームがあったと思うけど。
> オルテガも話してる間にベホマしてやれば助かったと思うぜ。
あれはオルテガの男を見て「男の戦いに手を出しちゃいけない」と壮大な勘違いということでw
316:名前は開発中のものです。
08/04/13 14:49:45 Z/LVsXuc
勇者たちがザオリクで生き返るのは、神の認めた勇者とその仲間たちだからだ!
とかそんなこじつけ。
317:名前は開発中のものです。
08/04/13 15:03:23 NkPkjT6X
ダイの大冒険的には、死にかけにホイミ系は無意味
ザオリクは知らね
318:名前は開発中のものです。
08/04/13 15:27:05 bXOpRP77
撃墜されたの戦闘機に乗っていたのは実は影武者だった!
319:名前は開発中のものです。
08/04/13 15:27:47 k4a7kuL/
と言うことは、一機も撃墜されなかった場合影武者が世界を救うわけだな
320:名前は開発中のものです。
08/04/13 15:29:16 bXOpRP77
いや、その場合はそいつが実は本物だったというわけで。
321:名前は開発中のものです。
08/04/13 15:50:35 hy1v+Ap0
というか機体が複数存在するんじゃないって時点で残機じゃないよな
バリアみたいなものが減っていく普通のライフ制にするしかないと思うんだが
322:名前は開発中のものです。
08/04/13 17:10:08 Z1kaHYoi
夢オチなら残機じゃなくて残夢だから
鼻ぶく提灯の顔マークを並べとけばいいな
323:名前は開発中のものです。
08/04/13 17:49:58 vlZyAbxe
どうでもいいじゃん・・・
324:名前は開発中のものです。
08/04/13 22:42:35 qFLKD2CL
シューティング作りたいなーとか思い始めたんだけど、
具体的にどう作ればいいんだろ?
C言語ポインタくらいしか学んでないんだができるかね
325:名前は開発中のものです。
08/04/13 22:55:43 NkPkjT6X
まず、画面に画像を出力する方法を覚えないといけない
Windowsで動かすならDirectXか、標準APIの扱い方を覚えないと
てか、まずC++を覚えた方がいいな
326:名前は開発中のものです。
08/04/13 23:42:03 Z1kaHYoi
HSPが軽視されてると聞いて飛んできました
327:名前は開発中のものです。
08/04/13 23:47:33 TnA5dMk3
帰れw
328:名前は開発中のものです。
08/04/13 23:52:31 E6Dzw5oc
ちゃんとしたものを作ろうとしたときやっぱりオブジェクト指向覚えた方がいいのかな?
329:名前は開発中のものです。
08/04/14 00:01:38 tqnrBejp
ポリモーフィズム(C++なら純粋仮想関数 + virtualメンバ関数くらい)を覚えておいて、
あとは、構造体とstatic関数で良いよw
構造体自体の種類を示すメンバとか作り始めたときに、
virtualを考えればいい。
330:名前は開発中のものです。
08/04/14 00:18:20 yMQIDqXj
>>325
なるほど~
C++を覚える作業にもどるよ。
331:名前は開発中のものです。
08/04/14 00:19:11 xWdI6ksr
オブジェクト指向なんて全然必要ない
むしろ理解してない人が作りながら覚えようとすると
十中八九途中で投げ出すことになる
332:名前は開発中のものです。
08/04/14 00:20:15 Mgsx+yf7
まあ、そんなの無くても作れるもんな
333:名前は開発中のものです。
08/04/14 00:30:41 a9wj1kmQ
>>331-332
ありがとう。
講座サイト見てるとオブジェクト指向で書いてある所が多かったからてっきりそうとばかり思ってたよ。
334:名前は開発中のものです。
08/04/14 18:03:16 qbweF5RS
というか、オブジェクト指向でやってる人ってどれぐらい居るん?
335:名前は開発中のものです。
08/04/14 20:46:07 Pl9LhtfJ
8bit時代からあるゲームにC++やオブジェクト指向が必須かと言われればNOだ。
プログラムの勉強を兼ねるならやっておいた方がいいだろうね。
336:名前は開発中のものです。
08/04/14 23:38:27 tqnrBejp
オブジェクト指向を仰仰しく考えることないよ。
文字通り方向性みたいなもので、設計方針の1パターン。
構造化・オブジェクト指向・関数型・総称・イベント駆動型あたりを
広く浅く知っておけば良いんじゃないかな。
異なるパラダイムの異なる要素が結構似ていたりする。
URLリンク(ja.wikipedia.org)プログラミングパラダイム
337:名前は開発中のものです。
08/04/15 10:27:10 iHmKOkzF
オブジェクト指向が本当に必要なら作ってるうちに覚えるから
最初から覚える必要はない
ぐちゃぐちゃでいいからとりあえず動くものを作るとこまでが重要
338:名前は開発中のものです。
08/04/15 13:02:14 9d1UNIoN
シューティングを作るアルゴリズムというか、パターンというか・・・
そういうのがわからん・・・
339:名前は開発中のものです。
08/04/15 13:11:07 X896jXV9
1.プレイヤーの入力を受け取る
2.受け取った入力より自機の座標を動かす
3.その他(弾,敵等)の座標を動かす
4.各衝突判定をする
5.ぶつかってたら消すなり体力を減らすなり
6.消えてない物の絵を画面に表示する
1~6を繰り返す
簡単に言うとこれ位があればシューティングっぽいものが出来るのでは?
340:名前は開発中のものです。
08/04/20 04:12:04 HlE9w/ua
ここで聞くのも間違いかも知れないが、今C++とSquirrelでSTGを作っているんだ。
Sqruirrelスクリプト側からC++の関数を呼ぶためには、
SQInteger func(HSQUIRRELVM v)
という形のグローバル関数でなくてはいけないんだけど、スクリプト側から特定のオブジェクトを操作したいんだ。
しかし、上の形だと動的メソッドでもないし、引数にオブジェクトへのポインタが含まれていないため、どうやって呼び出そうか困ってるんだ。
HSQUIRRELVMはスタックになっているので、スクリプト側に操作したいオブジェクトのポインタをあらかじめ渡しておいて
必要なときにスタックにぶち込んで引数として利用しようと考え、
/*Squirrelスクリプト*/
function ExeScript(p) /*引数はポインタ*/
{
SetVelocity(p, 0, 5, 0); /*引数は操作するオブジェクトのポインタ、x方向の速度、y方向の速度、z方向の速度*/
return 0;
}
/* HSQUIRRELVMのスタックには 1(top):roottable, 2:p, 3:0 4:5 5:0)となっているはず*/
というようなスクリプト側の関数を作り、ExeScriptをC++側から呼び出す時に
引数に呼び出し側のポインタをぶち込んであげようと思ったんだが上手くいかない。
ちなみにpはスクリプト側ではint型で扱っていて、ExeScriptが呼ばれたときにintにキャストし、
SetVelocityが呼び出されたときにポインタにキャストするようになっている。
何かいい方法はないだろうか…?
341:名前は開発中のものです。
08/04/20 09:38:16 onwyvG0N
>>340
作ろうとしているのがSTGってだけなので、
ム板の組み込み言語スレで聞くほうが良いと思うよ。
342:名前は開発中のものです。
08/04/20 18:34:41 M+BR0SuC
解った、行ってみる
ありがとう
343:名前は開発中のものです。
08/04/23 00:26:04 gg06xRT5
2Dの弾幕シューを製作してるんですが、画像表示の優先度(Zの値)はどうしたらいいでしょうか?
取り合えず
・スコア、ライフなどの表示系
・敵弾
・自機
・自機弾
・敵
・背景
大体こんな感じにしてみましたが、地上物の弾が空中の敵の上を通るとか不自然じゃありませんかね?
特に重なっている時に地上物が撃った場合上にいる敵から出てるように見えてしまって・・・。
爆風も同じで地上物の爆風が空中の敵にかぶるとか変ですよね?
皆さんはZ方向の値はどういう処理をしてますでしょうか?
344:名前は開発中のものです。
08/04/23 00:48:49 byKYi0oI
既存のゲームをもっとよく観察しようぜ
345:名前は開発中のものです。
08/04/23 00:57:39 T8mB/bRA
ちょwww Web上で動くってレベルじゃねー
しかも3D
URLリンク(58.13.216.134)
60フレ死守?
346:名前は開発中のものです。
08/04/23 01:44:08 xD2eXe6t
暇だから誰か制作中STGのスクショうp!
347:名前は開発中のものです。
08/04/23 01:45:45 aQST5hrX
言い出しっぺの法則。
348:名前は開発中のものです。
08/04/23 01:46:06 3S6lMLRf
言いだしっぺのh・・・ってもう言われてるしw
349:名前は開発中のものです。
08/04/23 02:32:06 EoY8EhMN
>>343
そんなんで2Dシュー作ってるのか・・・
350:名前は開発中のものです。
08/04/23 02:37:44 hQw6UUJp
>343
空中キャラのサイズが128*128程度なら気付かないんじゃないかな
違和感が出るのは大型の空中キャラがいるときだから
敵配置を工夫して誤魔化すのがいいかも
351:名前は開発中のものです。
08/04/23 02:56:41 BLt2L8mz
地上物からの弾だとしても、空中の敵で見えなくなったらそれだけでクソゲ扱いだなw
352:名前は開発中のものです。
08/04/23 04:17:15 gg06xRT5
やっぱり敵配置がポイントですか・・・。
一応他のゲーム(CAVE辺り)は動画でよく見てたんですがイマイチ分からなかったんで・・・すいません。
敵と敵の配置を研究してみます。
アドバイス助かりました。
さっきカスりを取り入れてみたんですが、ライフ回復のためにカスるという危険行為推奨になってしまいました。
やっぱカスりはスコアボーナスとかエネルギー(特殊技用)回復のモノにしたほうがいいですよね。
変に凝ってしまって全て見失うような気がして怖いです。
353:名前は開発中のものです。
08/04/23 05:54:44 mDm6BHht
>>345
いいねぇ!これ作ったの外人さんなのか?
そういやFlashもAction Script3が使えるようになった辺りから
描画速度がだいぶ改善されてるみたいね
一昔前のShockwave(+Lingo)並のことができるのは嬉しいな
あの頃はDirectorが高すぎて手が出せなかったよ
354:名前は開発中のものです。
08/04/23 08:14:48 sHRBpt6x
>>343
重なってるときに弾を撃たなければいいのでは
355:名前は開発中のものです。
08/04/23 12:16:58 NLa3WqAS
敵弾が低い位置にある場合は当たり判定も無いようにするとか……分かりづらいか。
356:名前は開発中のものです。
08/04/23 13:39:11 MMF0qG0v
>>352
深く考えないでカスリとか入れてるっぽいが、
ちゃんとゲームとして必要かどうか考えたほうが良いんでは?
まあ個人的にカスリが嫌いなだけだけどw
357:名前は開発中のものです。
08/04/23 23:07:22 lhBmTT+W
カスリとかゲーム的過ぎて嫌いだな
まぁSTGは全般的にゲーム的過ぎることが多いが
358:名前は開発中のものです。
08/04/24 00:00:02 lksTfSLx
ゲームなんだから良いじゃん
359:名前は開発中のものです。
08/04/24 00:16:43 kyvrq5VT
自分からわざわざギリギリで避けるなんて
両方滝沢キックを喰らってしまいそうだ。
360:名前は開発中のものです。
08/04/24 00:38:13 ARzrsuEN
ゲーム的だからってのはどうでもいいが俺もカスリは好かんな
361:名前は開発中のものです。
08/04/24 00:43:02 Nfyc4+1a
>>358
「ゲーム的」っていうのは、
ゲームとしては面白いが現実離れしている、みたいな意味だ
362:名前は開発中のものです。
08/04/24 03:46:10 ARzrsuEN
カスリなんかよりおかしいとこいくらでもあるだろw
363:名前は開発中のものです。
08/04/24 20:31:58 V07ASawT
俺たちが遊んでいるのはゲームだ。
面白いゲームならそれでいい。
364:名前は開発中のものです。
08/04/24 20:57:32 bgp800Ur
まあ、言いたいことは分かるけどな。
365:名前は開発中のものです。
08/04/24 21:03:09 FxJA2aMq
58.13.216.134
366:名前は開発中のものです。
08/04/24 21:21:35 aaSouiJW
>いいねぇ!これ作ったの外人さんなのか?
>そういやFlashもAction Script3が使えるようになった辺りから
>描画速度がだいぶ改善されてるみたいね
>一昔前のShockwave(+Lingo)並のことができるのは嬉しいな
>あの頃はDirectorが高すぎて手が出せなかったよ
HumanBench作ったのはアドビの中の人だよ
367:名前は開発中のものです。
08/04/24 22:53:38 xLIo9y/a
中の人は80年代のアーケードの疑似3Dゲーとかが好きに違いないな!
PC-9801時代のKUNI SOFTとかABAゲイの同人ゲーをふと思い出した
368:名前は開発中のものです。
08/04/25 00:00:21 8TKkCAiM
>>365
/yukissalbum2/jam.cgi
369:名前は開発中のものです。
08/04/25 08:17:44 lM3nYk6R
作成したシューティング
誰かにプレイさせてみたいのですが、プレイさせる相手が見つからない
こういう時って、どうしたら良いんでしょう?
370:名前は開発中のものです。
08/04/25 11:57:54 atI/FxXl
それ用のスレがどこかにあったと思う。
371:名前は開発中のものです。
08/04/25 12:00:04 K2ZrdRog
というか、完成してるのならフリーソフトとして公開すればいいだけでは?
372:名前は開発中のものです。
08/04/25 13:40:11 jIsqw0Mx
いえ、まだ体験版の段階なのですが
プレイできる段階にまでは仕上がったので、書かせてもらいました。
公開するにしても、みんなにやってもらうためにはどうしたらいいんでしょうか?
ただホムペを立てるだけでは人は来ませんし
公開スレ(適切なのが見つかりませんが)でうpが良いのでしょうか?
もしくはベクターに登録とか?
373:名前は開発中のものです。
08/04/25 20:13:38 YebkKA52
ここでうp!
374:名前は開発中のものです。
08/04/25 20:28:38 IiumCil8
自作ゲーム評価スレ
スレリンク(gamedev板)
375:名前は開発中のものです。
08/04/25 20:48:37 YebkKA52
ここでうpしたほうが意見もらえるんじゃないか?
テンプレにも晒しておkって書いてあるし
376:名前は開発中のものです。
08/04/26 00:02:16 2TZn1YBj
>HumanBench作ったのはアドビの中の人だよ
コリン・ムック氏は実はアドビ人ではないかと。
377:名前は開発中のものです。
08/04/26 14:20:42 8GFiI3TW
自作ゲーム評価スレは、STG以外のものも出ていることもありますし、
ひとまずは、こちらでうpさせてもらいます。
シューティングビルダーを用い製作したSTGで、SB本スレでも一度うpはしたものです。
4面まで作ったものの、ちゃんと出来ているか不安でたまりません。
どなたか意見いただけると超嬉しいです。
URLリンク(www.erc-j.com)
の左上にあるSB-UPLから入れるアップローダーのsb0173.lzhにうpしました。
378:名前は開発中のものです。
08/04/26 20:08:40 k73vvmo8
>377
ちょっとやってみた
敵の種類とか攻撃パターンも結構豊富だしよくできてると思うよ
全体的にキャラが小さいのが個人的にはあまり好きじゃないけど、まあ好みの問題なので気にしないでくれ
あと単発弾はもうちょっと弾速早くてもいいんじゃないだろうか
379:名前は開発中のものです。
08/04/26 21:31:57 glwfkb3K
つまらなくはないがノーコンで頑張る気にはなれなかった
敵が体当たり狙ってくるのは嫌いだ
好みは別として、とりあえず硬めの敵の爆発は本体の二倍以上の大きさにすべき
380:名前は開発中のものです。
08/04/26 21:39:32 glwfkb3K
よく出来てるけど演出がもったいないな
381:377
08/04/26 23:39:02 8GFiI3TW
ヌクモリティに全俺が泣いた
感想ありがとうございます!
>>378
キャラが小さいのはドット絵が素材頼りなこともあって限界があったりします。
弾速に関しては、前半部分だけ少し早めにしてみます。
後半に進むたびに弾速が早くなる感じになっており、後半面では製作者がいっぱいいっぱいなのでw
>>379
体当たりに関しては弾幕部分を削減したかったこともあり導入したのですが、すみませんでした。
理不尽に感じた体当たりキャラを教えていただけるとありがたいです。
爆発に関しては改良させてもらいます!
>>380
演出がもったいないとは、全体的に演出が甘いということでしょうか?
それとも、あちゃーな演出があったということでしょうか?
382:名前は開発中のものです。
08/04/26 23:57:19 AX/nbobn
俺も3面途中までやってみたので、多少なりとも思った事を。
一面の序盤から、敵が殺る気まんまんで笑った。
当たったら死ぬボールみたいなの(機雷?)はしょっぱなから難しすぎじゃないかな。
ゲームバランス的にどうかは考えないで言うと、もう少しパワーアップをガンガンやりたかったかな。
たまーーーーにしかパワーアップアイテムが出ないので、存在を忘れてしまう。
演出も面白かったけど、それぞれが単発で「お?」と思う程度だったのがちょっと残念かな。
383:名前は開発中のものです。
08/04/27 03:31:32 QG+Suesf
個人的に前半部も弾の色を分けた方がいいと思った
敵もなんだかところどころ見づらい
384:名前は開発中のものです。
08/04/27 05:01:50 T1Qa567i
難易度タカスwww
1面の機雷分りにくい。アイテムだと思っちゃうよ。
あと、ウィンドウモードだとFPSが安定しないし、全画面よりもFPSが早くなった。
385:名前は開発中のものです。
08/04/27 15:52:51 zZ5MQxMP
>>377
d3dx9_30.dllが無いって言われる。
URLリンク(d.hatena.ne.jp)
URLリンク(alwei.sakura.ne.jp)
最新版とか入れるのはかまわないけど、
出来れば同梱とか依存性切るとかした方がいいかも。(一般ユーザーのために)
386:377
08/04/28 01:02:21 nDsvW52B
レス多くて本当に助かる、ありがとう!
>>382
パワーアップは一面に一つしか出さないようにしてるので、確かに存在を忘れがちかも。
しかしバランスのこともありますが、東方のように初めで攻撃力最強になってしまうのも防ぎたい私としては悩みどころです。
難易度に関しては、調整もう少しするかイージーモードを作ることにします。
>>383-384
弾の色を分けるというのは、どういうことでしょうか?
同系統の弾は変に色分けしない方が良いのでは?
敵が見づらいとか分かり辛いのは、ドット絵が素材頼りなので可能な変更に限界がありますが
とりあえず色などの変更は試してみます。
ウィンドウモードに関しては、少しビルダー製作者に聞いてみます。
>>385
d3dx9_30.dllの同梱って著作権的に問題があったはずなので、readmeにリンク貼ることにします。
387:名前は開発中のものです。
08/04/28 13:02:47 NAk73a6s
ヌルポ
388:名前は開発中のものです。
08/04/28 13:46:49 sRoeZ3fk
>387
……。(あえて何も言わない)
389:名前は開発中のものです。
08/04/29 00:22:52 sss69txd
URLリンク(www.j-tokkyo.com)
誰か翻訳して
390:名前は開発中のものです。
08/04/29 06:29:07 4C4kmVz/
デモプレイで、自機が死なずに居続ける位置取りを算出する特許
・・・普通は人間によるキー操作を事前記録して再生するだろうから関係ないな
391:名前は開発中のものです。
08/04/29 06:32:51 WC5+m6yA
さらっと内容に目を通してみたけど
ゲームの魅力を伝えるには、事前記録された物を再生して
決まったデモしか出てこないのは多様性が無く十分ではない
また、ランダムに動くようにしてもすぐ死ぬのでこれまた
魅力を伝えるのには十分な時間見せられない
という上でそんなことしてるみたいだけどな
意味があるのか無いのかは知らん
392:名前は開発中のものです。
08/04/29 10:45:10 Y2ssqC4h
これを発展させれば自動的にゲームをクリアすることも出来るだろうから、
技術としては面白そうだよな。
393:名前は開発中のものです。
08/04/29 14:29:06 NjIg+POR
格闘ゲームで実現してね?
394:名前は開発中のものです。
08/04/29 15:37:03 +xWM+Yeb
>>392
これが特許になってるってことは
発展させるにも許諾とか金払わなくちゃいけないんだよ
395:名前は開発中のものです。
08/04/29 15:53:43 WnahT3LQ
どの程度の完成度になったらこのスレにうpして意見貰えるかな?
と、まだ1面ボス作ってる段階の俺が言ってみる
396:名前は開発中のものです。
08/04/29 16:22:28 ZiVZNUAo
>>394
特許は結果じゃなくて方法に対して与えられるから、
別の理屈で位置から作ればいいじゃん
ぱっと見、あんまりたいしたこt(ry
397:名前は開発中のものです。
08/04/29 16:52:05 5UtdTdRR
>>395
プレイできる段階にまで仕上がっているなら、
たとえボスだけでも、道中だけでも俺は意見するよ。
398:名前は開発中のものです。
08/04/29 18:02:25 WnahT3LQ
>>397
まじか
じゃあ早いところBGMと効果音を搭載してどこかにうpできるように頑張ってみるよ
399:名前は開発中のものです。
08/04/29 18:04:13 wXou4Eov
期待してます。
でもそれで満足しちゃって開発飽きちゃわないでね。
経験ある、ってーか常にそうなんだけど、
ある程度形になって、他人にテストプレイしてもらったら
しばらく何もする気なくなったりするから。
400:名前は開発中のものです。
08/04/30 02:50:42 bBj/BlcG
スクリーンショットをうpしたらアドバイス貰えるかな?
完成まで程遠いんだけど、客観的な意見をもらって軌道修正したい気がするんだが
401:名前は開発中のものです。
08/04/30 03:34:49 lg9js0tm
>>400
動くものじゃないと軌道修正するほどの意見は難しいんじゃね
俺的には音もタイトル画面もどうでもいいからうp!
402:名前は開発中のものです。
08/04/30 08:53:36 bBj/BlcG
>>401
じゃあ俺はGW中に動くものをうpするよん
395と同じく1面ボスまで
今バグだらけでうpできる状況じゃないから何日か待ってね
403:名前は開発中のものです。
08/05/01 19:05:26 6Awdsy0R
敵、敵弾、自機弾をそのつどNewするのって良くないの?
404:名前は開発中のものです。
08/05/01 19:42:37 9iKbAacM
【キーワード抽出】
対象スレ: シューティングゲーム製作技術総合 15機目
キーワード: New
抽出レス数:6
405:名前は開発中のものです。
08/05/01 22:23:57 1m4VYE2q
富豪厨の出番と聞いて飛んできました
406:名前は開発中のものです。
08/05/02 00:53:49 l9K+obAj
(; ^o^)
407:名前は開発中のものです。
08/05/02 01:24:42 7/IjqgCE
富豪陣営に加勢するぜ。
408:名前は開発中のものです。
08/05/02 01:38:52 l9K+obAj
「迷える子羊よ。真の富豪厨はHSPに帰依します。」
私はその言葉に心を強く打たれ、boost原理主義から足を洗いました。
今は玉葱狂信者です。
409:名前は開発中のものです。
08/05/02 09:26:40 Hviw5uVq
libneet使ってるのは俺だけのようだな
410:名前は開発中のものです。
08/05/04 15:04:30 v9QwRQKh
>>381
敵の動きとか拘ってるのは伝わってくるんだけど、
オブジェクトが小さいせいか安っぽさを感じる。もっと演出を派手にすべき
URLリンク(hp.vector.co.jp)
ここのRagud Mezegisを使って研究するといいよ
411:名前は開発中のものです。
08/05/04 19:35:23 AA2CfXS5
3D弾幕で画面を埋め尽くすHumanBench見てて思った。
フラッシュでも普通に2D弾幕シューが作れそうな予感。
IEで普通に遊べれば、2D弾幕の布教活動がしやすくなるのでは。
412:名前は開発中のものです。
08/05/05 01:23:05 1Z2xNdvS
HumanBenchやってみたが、3.xxxxHzあたりで重くなった。
グラボ無いとCPUだけあってもこんなもんか
413:名前は開発中のものです。
08/05/05 01:51:57 +bBWRhTo
Flashでも2D弾幕ゲームはすでにいくつかあるよ
414:名前は開発中のものです。
08/05/05 15:45:46 CU4E4nxb
パワーアップすると敵の固さも弾数も激しくなって難しくなるゲームで
難易度を上げないためにパワーアップしない、という遊び方が必須なほど
難易度の上昇が激しいのは、バランス的にやっぱりおかしいと思うんだが、どうだろうか?
415:名前は開発中のものです。
08/05/05 16:08:28 gwVylmnp
個人的にはおかしいと思う。
なぎ倒す為にパワーアップしたいのに、敵まで強くなったら意味ないじゃんと。
416:名前は開発中のものです。
08/05/05 17:26:53 A8W0VUZG
特定のアイテムを取ると、パワーアップする代わりに敵も少し強くなるというくらいならアリかなとは思うけど。
417:名前は開発中のものです。
08/05/05 20:22:49 6C83N/Fe
アイテムを取ると敵が強くなるから、アイテムを回避しまくる戦闘機
なんか変だよな、どう考えても
418:名前は開発中のものです。
08/05/05 20:24:30 yg2wVjr5
バッドエフェクトアイテムみたいにして
パワーアップとは別物として用意するとか
419:名前は開発中のものです。
08/05/05 20:32:30 gwVylmnp
パワーアップアイテムが出た時、それを敵がとったら敵がパワーアップするとか。
420:名前は開発中のものです。
08/05/05 21:21:16 +Os5WI2N
敵を撃破したときの点数(レート)が上昇するアイテムを取ると、
雑魚敵が増えるとかは面白いかも。
421:名前は開発中のものです。
08/05/05 21:34:55 QpmiyD87
高難易度と引き換えに高得点てのはバランス取りやすいね。
初心者は手を出さなければ低難易度で楽しむことができるし。
422:名前は開発中のものです。
08/05/05 23:48:59 unxMgLFR
「アイテムを避ける」という行為自体が生理的になんか嫌、
という人も少なくないと思うがどうだろう。
423:名前は開発中のものです。
08/05/05 23:58:03 jEGOiG/t
まあ場合によるとしか
結局は作者の好みだな
424:名前は開発中のものです。
08/05/06 00:03:05 31Sx/Nsf
考えてみた。
パワーアップ方式の問題点は
上手い人はパワーアップの効率が良いので、上手い人ほど楽になるという矛盾。
これを回避するために、パワーアップしたら敵も強くなるってのがあるんだよな。
回避パターンは
パワーアップが継続しない。時間制。1面リセットなど。
パワーアップしないと利益がある。しないと高得点。得点倍率アップなど。
パワーアップすると不利益になる。攻撃力を上げすぎると制限時間やHPが減る。
パワーアップしない。
いっそ難易度を危険度という名前で大っぴらに表示して
危険なほど高得点が稼げるようにしたほうがいいかもな。
凄く固いエマージェンシーキャラを倒すと一気に危険度が上がったりとか。
425:名前は開発中のものです。
08/05/06 02:39:25 SU0KsQ1H
過去のゲームのバリエーションでしか無い気が。
パワーアップについて考えるなら、そもそもパワーアップが必要かどうか
から考えてみては。
426:名前は開発中のものです。
08/05/06 21:27:09 M7YCryHv
パワーアップすると難しくなるから第二段階くらいでずっと進んだりね
フルパワーを誰も使わなくなってしまう
427:名前は開発中のものです。
08/05/06 21:57:58 r6ZSijaz
パワーアップは爽快感をパワーアップさせるもの
428:名前は開発中のものです。
08/05/10 19:31:10 yVArJY5T
動画サイトで弾幕シュー見て参考にしてたんですけど敵に当たってもアウトだったんですね。
スーパープレイっぽいのしか無くて今まで気が付かなかったです。
でも別に敵とは当たり判定無くてもいいような気がするんですがどうでしょう?
ちなみに縦弾幕シューです。
429:名前は開発中のものです。
08/05/10 19:42:06 8c4/vHrh
良いんじゃないかな
マニュアルに当たり判定ないって書いておけば
430:名前は開発中のものです。
08/05/11 00:37:33 uhzbnGk6
東方並みの弾幕シューには不要だと思うよ
非弾幕には必要だと思う
431:名前は開発中のものです。
08/05/11 03:37:11 p4xje47Y
敵に当たってミスにならないのは少数派ではある
432:名前は開発中のものです。
08/05/11 05:14:16 OpH8uKFH
「敵の突撃体当たり攻撃」パターンが減るけどいいのかな?
433:名前は開発中のものです。
08/05/11 06:35:59 e/9QHFjn
体当たりが必要になったら、弾を纏った敵を作ればいい。
434:名前は開発中のものです。
08/05/11 07:35:53 FOG8VURA
むしろ敵のような弾でいいんじゃね
435:名前は開発中のものです。
08/05/11 10:20:39 BF4VK2LY
>>433
今まで「敵は当たりませんよ」と思い込ませておいて
いきなり「当たりますよ」はずるいだろ、という意味で。
436:名前は開発中のものです。
08/05/11 13:16:35 IpYJTSVB
そもそも弾幕シューだと体当たりしてくる敵なんていない気がするが
437:名前は開発中のものです。
08/05/11 13:41:29 Q0Rcp3vN
え、敵に当たったらパワーダウンだろ?
438:名前は開発中のものです。
08/05/11 14:41:22 Y826splk
敵との当たり判定が必要か不要かではなく、ゲームに生かせるか
どうか考えればよくね?
例えば、判定の有無をプレイ中に切り替え可能にして、連続切り替えには制限を付ける。
で、当たり判定有りなら、神風アタックを使えて高得点を取得できるけど
普段の当たり判定が広く弾に当たりやすい。(プラスアルファ要素)
当たり判定無しなら、神風アタックはできないけど、普段の当たり判定が
小さいく弾に当たりにくい。(従来品)
とかやれば、いつ切り替えるかで戦略性が増すと思う。
(リアル性を一切無視しているが)
439:名前は開発中のものです。
08/05/11 18:54:55 NhQ5BwE+
次のうpマダー?
440:名前は開発中のものです。
08/05/11 18:56:18 aWcZpe7b
リアルから離れるとゲーム性が高まる
離れすぎるとルールの理解に苦しむ
441:名前は開発中のものです。
08/05/11 19:12:20 SxHjX14O
そうだな、そういう視覚的に一見分からないルールだと直感的なプレイからは遠くなる。
特別なルールを設けるんだったら、プレイヤーが「やらされてる感」を感じないように
うまくデザインする必要があるな。
442:名前は開発中のものです。
08/05/11 19:22:24 KxoJtL0t
敵にも当たり判定つけてザコラッシュやってみたんですが難易度かなり増しますね・・・。
寸前に警告だしてもいいんですが、戦艦みたいなデカブツを横切らせたりしたいんで当たり判定あると厳しいかなーと・・・。
ボムの代わりに時間を止める技があるゲームなので敵とか気にせず弾幕をすり抜けられた方が良さそうな気も。
443:名前は開発中のものです。
08/05/11 21:16:46 p4xje47Y
昔から体当たりで殺しに来るゲームはムカツク
444:名前は開発中のものです。
08/05/12 00:55:00 lxKREmgj
そう考えると>433は秀逸かもしれない
445:名前は開発中のものです。
08/05/12 01:27:26 lEc53eQo
>>442
奥行きはあるんだろ?戦艦なら胴体部分は奥にあるとか・・・
敵によって、重なってもダメージにならない状況があるのは全然変じゃないぞ
446:名前は開発中のものです。
08/05/12 02:50:34 zuXYDnzG
>438
当たり小:飛行形態
当たり大:ロボ形態
を切り換えるとか?
447:名前は開発中のものです。
08/05/12 19:17:31 N6z6aNxM
>446
いいね
それぞれの形態のメリット、デメリットを直感的に分かりやすいようにできれば
システムとして活きてくるような気がする。
448:名前は開発中のものです。
08/05/14 01:27:09 lqOtnNPH
う~ん・・・なかなか難しいですね。
色々試したんですが、なんかピンとこないんです。
>446
形態は・・・既にフォース(ボムみたいなモノ)消費で変形するんですよ。
普段は戦闘機、フォース消費で時間を止めて中間形態。
フォース消費ボタンを二度押しでさらに消費してロボ形態に。
ロボ形態時は時間は止まらず操縦不能だけど、無敵状態で手当たり次第に敵に突っ込んでいく感じ。
オメガブースト(知ってる人いるか分からないけど)の必殺技と大体同じ。
まだ今のところ「二つも消費してまで使う必要があるのか」とか「スコアボーナス」とかそういうので仮決定状態なんですけどね。
シューターって、よく追い詰められると(ボムが底をつく等)覚醒したように弾幕を見切れたりするじゃないですか。
それをサポートするためにフォースがゼロになったら当たり判定をさらに小さくして「俺TUEE」状態にさせてあげたいんですがどう思いますか?
「シューターズハイ」って言葉を聞いて「これはいいな」とか思ったんですが・・・。
抱えボムで死ぬのも防ぎたいですし。
長々とすいません。
449:名前は開発中のものです。
08/05/14 12:21:42 01CnOr+t
ボム中に操作不能は個人的には嫌い。ストレス溜まるw
中間形態って何かメリットあるの?そもそも二段階ボムになってる理由がわからないよ。
あと俺tueeやりたいなら実感しづらい回避性能より火力を上げたほうがいい気がする。
450:名前は開発中のものです。
08/05/14 14:44:49 sE+cy/S5
>火力
雷電のクラスターとかVIPER Phase2のナパームが個人的に爽快だた
火力というよりも演出か
451:名前は開発中のものです。
08/05/14 14:57:11 5CxtNDd2
>>448
> 既にフォース(ボムみたいなモノ)消費で変形するんですよ
変形できるからロボット化を行わなければいけない決まりはないでしょ。
ブースター展開とかいくらでも追加方法はある。(ゲッター123w)
> フォースがゼロになったら当たり判定をさらに小さくして「俺TUEE」状態にさせてあげたいんですがどう思いますか?
俺なら、ボムゼロ時限定で時間停止の弱効果でスローを一発使えるようにする。(もちペナルティ付き)
で、2段ボムの1段階目をスローにして2段階目をストップにして、ストップの時は敵の弾も撃ち落とせるようにする。
さらに弾の破壊にスコアボーナス付ければ「二つ使ってでも」と言う理由付けができると思う。
ボムゼロスローはペナルティもあることだし、弾破壊可能にすればこれも戦略に組み込めるようになるな。
(時よ止まれ、そしてマトリックスがドーピングw)
が、こんなすぐに浮かぶアイディアだし既に存在してそうw
(それ以前に大幅システム変更になりそうだから提出時に即却下だなw)
>>449
> ボム中に操作不能は個人的には嫌い。ストレス溜まるw
次の位置取りとかあるしね。
452:名前は開発中のものです。
08/05/14 15:10:24 01CnOr+t
>次の位置取りとかあるしね。
そうそう、そもそも即発動型のボムはダメージ与えられるのが嬉しいんじゃなくて
無敵状態で接近して撃ち込めるのが気持ちが良いのさw
453:名前は開発中のものです。
08/05/14 19:24:38 ZdilNO3k
「ボム=自機無敵」ってルールはいつできたのかなぁ。
454:名前は開発中のものです。
08/05/14 19:50:51 h9Urf45v
結局気持ちが良いとか面白いとかって
過去の作品の手法を踏襲しろってことなんだよなぁ
455:名前は開発中のものです。
08/05/14 19:51:06 01CnOr+t
別にルールじゃない
456:名前は開発中のものです。
08/05/14 22:18:41 b3GXaHWY
>449
> 中間形態って何かメリットあるの?
今のところは・・・無いです。前は火力も同時強化でしたけど、今現在はタイムストップ使用形態みたいになってます・・・。
ホントは「時間とまってるのに戦闘機が後退するのおかしくね?」って事で中間形態は全方位移動型って設定だったんですが、
敵なんか平気で後退したりしてるんでそこまで拘らずに良かったですよね・・・。
> あと俺tueeやりたいなら実感しづらい回避性能より火力を上げたほうがいい気がする。
火力アップも考えたんですが、一応弾避けも楽しみたいということで・・・あえて回避性能にしてみたんです。
「俺ニュータイプ化してるぜー」的な・・・ちょっと無理なこじつけかも知れませんけど。
>451
> 変形できるからロボット化を行わなければいけない決まりはないでしょ。
そうですよね・・・。「今回はロボに変形する戦闘機でいこう!」ってノリだったんで固執しすぎました。
> 俺なら、ボムゼロ時限定で時間停止の弱効果でスローを一発使えるようにする。(もちペナルティ付き)
スローをさっき無理やり実装してみましたが・・・ちょっと挙動不審でした。
しっかり実装させるとなると最初から組みなおさないといけないモノが大量に出てくるのでちょっと今回は見送りさせてください・・・。
とりあえずタイムストップ終了時に敵弾が一気に動き出すので、いくら弾道が読めていても被弾しやすい点があったので
発動時と終了時に短時間ですがシールドを張って切り抜けられるようにしました。
あと、敵弾画像も丸弾を無くしてタイムストップ中でも敵弾の弾道が読めるようにしました。あとなるべく直線弾がメインの方がいいですよね。