[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/09 09:02 / Filesize : 199 KB / Number-of Response : 762
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名前は開発中のものです。 [2008/02/18(月) 12:02:20 ID:JNgyhRqZ]
ゲームプログラマなら誰もが通る、もしくは、通った道。青春の香り?
それは「シューティングゲーム製作」・・・。

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

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

過去スレ,関連スレは >>2-3で。

2 名前:名前は開発中のものです。 [2008/02/18(月) 12:02:51 ID:JNgyhRqZ]
■過去スレ
14機目 pc11.2ch.net/test/read.cgi/gamedev/1184110374/
13機目 pc11.2ch.net/test/read.cgi/gamedev/1173188370/
12機目 pc11.2ch.net/test/read.cgi/gamedev/1154792197/
11機目 pc8.2ch.net/test/read.cgi/gamedev/1149422610/
10機目 pc8.2ch.net/test/read.cgi/gamedev/1143038992/
9機目 pc8.2ch.net/test/read.cgi/gamedev/1134236719/
8機目 pc8.2ch.net/test/read.cgi/gamedev/1120669295/
7機目 pc8.2ch.net/test/read.cgi/gamedev/1110815882/
6機目 pc5.2ch.net/test/read.cgi/gamedev/1105176011/
5機目 pc5.2ch.net/test/read.cgi/gamedev/1098034919/
4機目 pc5.2ch.net/test/read.cgi/gamedev/1092048824/
3機目 pc5.2ch.net/test/read.cgi/gamedev/1087339516/
2機目 pc5.2ch.net/test/read.cgi/gamedev/1073736474/

初代スレ bbs.gamdev.org/test/read.cgi/gamedev/1056635103/

シューティングゲーム製作技術総合 その弐(避難所)
bbs.gamdev.org/test/read.cgi/gamedev/1073782910/

3 名前:名前は開発中のものです。 mailto:sage [2008/02/18(月) 12:03:26 ID:JNgyhRqZ]
■関連スレ
シューティングツクールXPを待ち続けるスレ Part5
pc11.2ch.net/test/read.cgi/gamedev/1192682311/
PCで出来る2Dシューティング(STG)総合スレ46
game13.2ch.net/test/read.cgi/gamestg/1203080227/

■他
WIKI(シューティングゲーム製作技術総合)
gamdev.org/w/?%5B%5B%A5%B7%A5%E5%A1%BC%A5%C6%A5%A3%A5%F3%A5%B0%A5%B2%A1%BC%A5%E0%C0%BD%BA%EE%B5%BB%BD%D1%C1%ED%B9%E7%5D%5D
シューティングゲーム製作技術総合スレまとめページ
pcstg.s59.xrea.com/tech.html
ゲムデヴあぷろだ
gamdev.org/up/upload.php?page=1

4 名前:名前は開発中のものです。 [2008/02/18(月) 23:16:44 ID:zWEXYg7q]
OTU

5 名前:名前は開発中のものです。 mailto:sage [2008/02/19(火) 20:36:58 ID:Ny9EkvWK]
>>1
□■□ ...,,/
■□■ ̄",  こ、これは乙だからね!
□□□乙/
     /

6 名前:名前は開発中のものです。 mailto:sage [2008/02/19(火) 21:49:21 ID:HRvwIV17]
なにこれw

7 名前:名前は開発中のものです。 mailto:sage [2008/02/20(水) 06:27:21 ID:MoMRMkKk]
ボスBGMが同じSTGが多いのって何で?

8 名前:名前は開発中のものです。 mailto:sage [2008/02/20(水) 11:59:28 ID:YGACkjxp]
何でそんなバカなこと聞くの

9 名前:名前は開発中のものです。 mailto:sage [2008/02/20(水) 19:07:17 ID:sOFi2y5g]
作るのがめんどくさいからにきまってるだろ

10 名前:名前は開発中のものです。 mailto:sage [2008/02/21(木) 00:41:44 ID:Kr7qaAeH]
ボスBGMが無いSTGだってたくさんあるのに
そもそもボスがいないSTGもたくさんある



11 名前:名前は開発中のものです。 [2008/02/21(木) 01:34:24 ID:+oFRGJcA]
ステージは長い。つまりステージBGMは長く聞く。
ボス戦は比較的短い。つまりボスBGMを聞く時間は短い。

どっちを重視するか、の問題。


俺的参考例
ステージBGMが多く、ボスBGMがひとつのSTG……グラディウス
ステージBGMがひとつで、ボスBGMが多いSTG ……スペースハリアー
ステージBGMも、ボスBGMも多いSTG    ……ダライアス

12 名前:名前は開発中のものです。 mailto:sage [2008/02/21(木) 17:37:52 ID:qRMbOmAJ]
STGにしては最近で、ボスも演出こだわってそうなゲームも
ボスBGMが同じだったりするし
なんか心理学的な理由があるんじゃね?

13 名前:名前は開発中のものです。 mailto:sage [2008/02/21(木) 23:31:35 ID:wKknMhB+]
RPGの雑魚戦の曲とかね
違和感のある曲だと辛い辛いw

14 名前:名前は開発中のものです。 mailto:sage [2008/02/23(土) 17:29:00 ID:xkbF394I]
BGMは場面に関連付けるものだから
ボスとか道中とか関係ない

15 名前:名前は開発中のものです。 mailto:sage [2008/02/23(土) 18:15:46 ID:gNTursnn]
ボスの個体のテーマ曲があってもいいじゃないかと思ったこともある。
道中は面の曲でライバルならライバルの曲、再登場するたびにアレンジが変わったりさ。

16 名前:名前は開発中のものです。 mailto:sage [2008/02/23(土) 18:43:21 ID:50ibBEMg]
特攻空母ベルーガ

17 名前:名前は開発中のものです。 mailto:sage [2008/02/23(土) 21:17:44 ID:50ibBEMg]
www.nicovideo.jp/watch/sm1859220

18 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 00:02:57 ID:E3UBAVWs]
>>14
日本語でおk

19 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 05:21:56 ID:cYgwQ17A]
めんどうくさい。

20 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 16:35:26 ID:bNMmtgLE]
>>18
BGMはどう使ってもいいのではないか
道中もボスも共通のBGMにしてしまうのもアリ
道中にもボスにもいくつものBGMを使うのもアリ



21 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 16:57:23 ID:WAJduLb6]
>>20
そういう意味か 把握した

22 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 17:32:07 ID:1n7OxH2P]
釣りじゃないなら言葉遣い自重

23 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 22:08:07 ID:muaGgCrL]
>>22
日本語で(ry

24 名前:名前は開発中のものです。 mailto:sage [2008/02/28(木) 08:07:55 ID:R9ZA919j]
前スレ落ちてたのか…。

25 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 15:22:02 ID:G8Sp5cnc]
好き嫌いによると思うけど・・・
ファミコンのギャラクシャンみたいなゲームを作るとしたら
オブジェクトは
自機。敵。自ショット。敵ショット。ってあるけど
classはどういう風に定義します?
今まで
自機クラス、敵クラス、自ショットクラス、敵ショットクラスってやってたけど流石に細かすぎかと思って
どうすれば、いいのかなと思って質問させていただきます
ていうか、ゲームの規模によっても分け方違ったりするんでしょうか

26 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 15:39:14 ID:3F0w0otU]
普通に全部分けるだろう上皇
煩雑に見えるかもしれないけど、大規模になるにしたがって恩恵が出てくるよ。

27 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 15:54:30 ID:G8Sp5cnc]
そうなんですか。。。。ありがとうございます。
聞かなかったらステージクラス作って全部突っ込んでたかもw

28 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 21:30:47 ID:MvitneFw]
ライブラリのIrrlichtかLuna使ってる人いる?
これからC++と合わせて作っていこうと思うんだけど
気をつけたほうがいいことってある?

29 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 22:27:16 ID:8F9iAQrc]
どっちもイイものだから是非使うといい。俺はDXライブラリ派だけどなw
イアリヒトは3Dゲーには素晴らしいが簡易な2DSTGにはややオーバーキルな
気がしないでもないかもだが。まぁ一度要領覚えちゃえば関係ねーだろ頑張れ

30 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 03:08:07 ID:83HLj8hd]
>>29
まとめ見たらなんか良さげなんだけどチュートリアルがさっぱり分からん
DXライブラリは3D対応になったみたいだね



31 名前:名前は開発中のものです。 [2008/03/07(金) 09:37:47 ID:0A/QoggI]
どっちでもいいといえば どっちでもいいのですが、
現在ゲームを作ってまして、敵の動きを実装するのですが、
C言語で関数のポインタを保持し、タイミングが来たら 保持していた関数を呼び出すのと
C++で、基本のクラスを用意し、それから派生してポリモーフィズムで呼び出すのと どちらが良いでしょうか

開発規模は個人なのでそれほど多くならないです、ですがまだ、仕様が決まってないのでなんともいえないのです。

なにが不満かというと
Cだと 関数だらけになってしまう
C++だと 開発に時間がかかったら保守が大変そうなことです

32 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 11:17:43 ID:Z9EEIYSH]
498デフォルトの名無しさん2008/03/07(金) 08:49:37

どっちでもいいといえば どっちでもいいのですが、
現在ゲームを作ってまして、敵の動きを実装するのですが、
C言語で関数のポインタを保持し、タイミングが来たら 保持していた関数を呼び出すのと
C++で、基本のクラスを用意し、それから派生してポリモーフィズムで呼び出すのと どちらが良いでしょうか

開発規模は個人なのでそれほど多くならないです、ですがまだ、仕様が決まってないのでなんともいえないのです。

なにが不満かというと
Cだと 関数だらけになってしまう
C++だと 開発に時間がかかったら保守が大変そうなことです

33 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 11:30:59 ID:YTaoJ1tk]
どっちでもいいといえば どっちでもいいのですが、
現在ゲームを作ってまして、敵の動きを実装するのですが、
C言語で関数のポインタを保持し、タイミングが来たら 保持していた関数を呼び出すのと
C++で、基本のクラスを用意し、それから派生してポリモーフィズムで呼び出すのと どちらが良いでしょうか

開発規模は個人なのでそれほど多くならないです、ですがまだ、仕様が決まってないのでなんともいえないのです。

なにが不満かというと
Cだと 関数だらけになってしまう
C++だと 開発に時間がかかったら保守が大変そうなことです


34 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 11:47:43 ID:aLFEaNMu]
どっちでもいいといえば どっちでもいいのですが、
現在ゲームを作ってまして、敵の動きを実装するのですが、
C言語で関数のポインタを保持し、タイミングが来たら 保持していた関数を呼び出すのと
C++で、基本のクラスを用意し、それから派生してポリモーフィズムで呼び出すのと どちらが良いでしょうか

開発規模は個人なのでそれほど多くならないです、ですがまだ、仕様が決まってないのでなんともいえないのです。

なにが不満かというと
Cだと 関数だらけになってしまう
C++だと 開発に時間がかかったら保守が大変そうなことです

35 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 12:50:59 ID:0A/QoggI]
そんなに暇ならこれでも見ていやがれ
www.nicovideo.jp/watch/sm2258805

36 名前:名前は開発中のものです。 [2008/03/07(金) 15:17:26 ID:0A/QoggI]
IDがogg
歌っちゃおうかな〜
UGA
UGAUGAUGA
カラオケ
UGA

37 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 20:57:12 ID:0A/QoggI]
けっ素人童貞の群れか ここは

38 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 21:10:50 ID:wFu1vrhW]
誰か相手してやれよ

39 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 21:43:35 ID:0A/QoggI]
つかえねぇゴミ蟲

40 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 21:53:33 ID:ONCQtaX8]
そう言うな・・・・・。
個人製作なんしょ
自分で管理しやすいほうにすればいいんだよ
ゲーム作ってくうちにそういう局面はいくつもある
何通りも何十通りものやり方から一々2chでレスきいてたんじゃ全然進まないぜ
まぁ最近このスレは過疎っているから変なの沸いてるのは許して欲しい



41 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 22:14:44 ID:2OqKUBaL]
どっちでもいいんだったら
好きなようにしろとしか言えんしなぁ

42 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 00:45:37 ID:LX7lEYpp]
>>37
悪口って、
自分が言われて痛いことをつい言っちゃうんだってさ

43 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 01:11:59 ID:YtYPc4bI]
このイケメンどもめ・・・っ!!

44 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 03:16:49 ID:l4R4lp4I]
みんなに言われる

45 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 10:41:45 ID:N6wkyruI]
弾が消失したときの処理ってどうしてます?
Class Ammo{   //弾のクラス
〜〜        //弾のデータ
static int Num //弾の数
}Ammo[N]

として、弾Ammo[i]について判定して、敵にあたるなどして消失したとき、
Ammo[Ammo::Num]をAmmo[i]に代入し、Ammo::Num--する
で、もう一度(代入後の)Ammo[i]について判定する
としているんですが、リストとか使った方がきれいでしょうか?

46 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 12:35:05 ID:KCgRA2Oh]
弾に限らず敵でもなんでも当てはまるな
俺ならリスト使うけど

それよりもAmmoクラスに弾の数を入れるのはちょっとおかしくないか
Ammoを委譲するクラスを作って、その中で弾数を管理した方が・・・

class AmmoContainer {
 std::vector<Ammo*> ammos;
public:
 int get_ammo_num() { return ammos.size(); } // 弾の数を返す
};
とかさ

47 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 15:03:14 ID:N6wkyruI]
なるほど、確かにその方が綺麗ですね
自機の弾と敵機の弾でクラスを分けていたのですが、弾のクラスをひとつにして、
MyAmmoContainerとEnemyAmmoContainerのメンバクラスにすることで、区別してみようと思います

ただ、自機や敵機との衝突判定があるので、
>std::vector<Ammo*> ammos;
はprivateじゃなくpublicの方がいいように思うのですが
(privateだと自機クラス、敵機クラスから見えませんよね)

48 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 17:05:42 ID:KCgRA2Oh]
わざと見えないようにしてるんだ
提案のための単純な例として書いたから端折ったけど
publicなメソッドとしてアクセサなどを用意するのさ
そこは俺の趣味なので、自分の思うように作るのがいいと思うよ

49 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 17:15:28 ID:N6wkyruI]
>>48なるほど
極力メンバ外からメンバ内部を直接参照しない方が、
オブジェクト指向っぽいですし、管理もしやすそうですね
その方向で作り変えてみたいと思います

BASIC人なんで、現状staticな変数使いまくり、
構造体もクラスも最小限なアレなプログラム組んでるもので


50 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 23:08:03 ID:KVGlCgOg]
そしてゲッターセッターだらけのウンコクラスを作って
ゲロ吐いて人間は成長する



51 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 00:55:27 ID:mx6cSeWU]
友達が作ったクラスにゲットセットが12個以上あって見る気失せた事があるな

52 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 01:30:17 ID:jBNp8q5y]
クラスに含むものは最小限にして、
単なる変数の分類代わりにしているのは俺だけか

53 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 01:45:53 ID:o3a80veI]
俺なんてC++をBASICみたいな使い方しかしてないぜ。
クラス? なにそれ?

54 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 01:51:21 ID:ieFCERy3]
まぁstructでもメンバ関数作れるしな

55 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 02:09:14 ID:OuSoXFED]
クラスの中でクラスをインスタンス化できるから、下記のような構造に

ゲーム世界クラス
 ├プレイヤー陣営クラス
 │ ├プレイヤーキャラクラス
 │ └プレイヤーの弾クラス(弾クラスを継承)
 ├敵陣営クラス
 │ ├敵キャラクラス
 │ └敵の弾クラス(弾クラスを継承)
 └当たり判定クラス(staticな関数のみ)
※キャラと弾は全て基本オブジェクトクラスを継承

作りすぎかも。陣営クラスはいらないかなぁ

56 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 02:12:36 ID:OuSoXFED]
なお、ふたつの陣営クラスは
弾クラスと弾処理メソッドをメンバに持つ陣営クラスを継承している

可読性が酷いな

57 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 22:38:54 ID:ftNyIWMi]
is-aとhas-aは区別したほうがいいって
Rubyのお兄ちゃんも言ってたよ

58 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 23:36:37 ID:Uu2b4Hsz]
An apple is a fruit.
→appleはfruitの性質と独自の性質を持つ
→appleクラスはfruitクラスを継承する

A car has an engine.
→carはengineを持つ
→carクラスはメンバengineを持つ

って感じか

59 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 17:56:28 ID:/cPILZp3]
>>55
ウチはこうかな

シューティング管理クラス

├Unitリストのリスト
│ ├0リスト (プレイヤーリスト)
│ ├1リスト (自機弾リスト)
│ ├2リスト (エネミーリスト)
│ ├3リスト (敵弾リスト)
│ ├4リスト (エフェクトリスト)
│ ├5リスト (ボム効果リスト)
│ └7リスト (その他特殊用リスト)
└敵出現データ管理クラス

Unitは基本クラスのことね。
プレイヤー陣営とか敵陣営どころかプレイヤークラスや敵クラスの雛形が無い。
弾のクラスはあるけど、シューティング管理クラスから見た場合はUnitを継承していればいいので関係ない。
後々Unitリストの種類を増やすことを想定して、Unitリストをリストで実装してる。



60 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 21:45:22 ID:cJuRtDMu]
ホーミング弾ってどうやって作ってる?

プレイヤーオブジェクトからホーミング弾発射
→弾に目標のエネミーオブジェクトのポインタを渡す
→エネミーオブジェクトの座標めがけて飛ぶ
こんな感じかな?

でもこの場合、プレイヤーオブジェクトは
エネミーオブジェクトのリスト(のポインタ)を持っている必要があるな
なんかもう全部オブジェクト外(STG管理クラス)で処理するのが楽に思えてきた



61 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 00:45:00 ID:xY1/GxLx]
STG管理クラスをシングルトンにして直接参照する
オブジェクト指向っぽくないけど、一番楽な方法じゃないかな

62 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 01:14:13 ID:bHXyTii9]
弾つながりでちょっと質問です

アルゴリズムマニアクスパラ見したんだけど
反射レーザーの反射部分グラフィックってどう処理してるの?

 \/  ‥レーザー
━━━━‥壁
  ↑
  ココ

本だと\の先端と/の後端を壁にめり込ませている
でもそれだとめり込んだ分、全体の長さが縮むと思うんだ

考えたけどわからない・・
反射部分だけ別グラフィック?

63 名前:59です mailto:sage [2008/03/11(火) 01:23:43 ID:bfRz6y+k]
>>60
STG管理クラスのインスタンスと、Unitを継承したインスタンスを相互参照になるように作る。
STG管理クラスに指定したUnitリストを取得できるようにしておく。
(自分の座標と、指定したいUnitリストのindexを引数にし、最も近いUnitを戻り値に返すメンバ関数でも可。
というか使う機会も多いので推奨。)


自弾→敵機の場合、管理クラスのメンバ関数に敵のUnitリストを指定して、最も近いUnitを返してもらえばいいし、
敵弾→自機の場合、同様にして自機のインスタンスを返してもらえばいいよ。

こうすれば目標の座標は取得できるから、後は適当に誘導するような処理を記述すればおk。






64 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 14:55:11 ID:tPQccVPP]
>>59=63
そういうクラス構造してると、
たとえばエネミーはメンバ変数HPを要るけど、エフェクトや弾は要らないから、
UnitクラスにHPがあると、エフェクトや弾に無駄なメンバ変数が生産されない?


65 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 15:15:48 ID:5rHfGsEC]
エフェクトたんやバレットたんだって命ある生き物です><
 

66 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 18:01:29 ID:pc0n0f/t]
正確なレーザーを表示したくてグラディウス外伝が作れるか

67 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 18:08:48 ID:RgITvACC]
??

68 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 20:18:19 ID: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 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 21:09:11 ID:bfRz6y+k]
4つ目の補足書きわすれたww
CanStand は当たり判定をStg管理クラスのインスタンスが行い、あたった時Stg管理が呼ぶ関数。
たたった相手のインスタンスを引数として渡してくる。

70 名前:名前は開発中のものです。 mailto:sage [2008/03/12(水) 00:33:20 ID:v0/NzbC7]
座標とかの管理はどこで?



71 名前:名前は開発中のものです。 mailto:sage [2008/03/12(水) 05:56:34 ID:/xH4cY3u]
>>70
Stg管理クラスがRectangle(x、y、width、heightで矩形を表す構造体)を何種類か保持してる。
そして各UnitオブジェクトのPositionが、CanExistで矩形の中にいるかを判定してるだけ。

72 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 01:20:40 ID:Qya/6v1U]
弾同士の相殺判定つけたら処理落ちしてワロス
いい加減当たり判定の方法を最適化して、
オブジェクトの配列をvectorからlistに変えるべきだな

73 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 02:07:01 ID:eNzI/Vyy]
総当りでやってるから重たいってだけの話でねの?
コンテナがvectorだろうがlistだろうが総当りは回避できるべ

と寝る前にエスパーレス

74 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 03:36:05 ID:8tJfVTvY]
>>73
とりあえず次のことを行ってないかチェックすべし。
Vector変数 − Vector変数 などの構造体同士の直接演算。ちゃんとメンバをそれぞれ計算するべし。
int4つ分相当超過の構造体/クラスの値返し/値コピー等。 参照渡しのほうが高速。




75 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 03:38:41 ID:8tJfVTvY]
レスミス。>>73じゃなくて>>72

76 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 09:42:10 ID:wQ66BM6P]
exceptionが弾(破片)同士の衝突判定やってたな
あれは単純なマス目状の空間分割とマルチスレッド化で高速化してるぽい

77 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 10:45:56 ID:Qya/6v1U]
しょうもない愚痴にレスくれてdクス

>>73
一応、自機、敵機、自分の弾、敵の弾、アイテム(、エフェクト)で配列を分けてる
>>76のいうように、空間分割した方がいいかもしんない

>>74
大丈夫なはず

78 名前:名前は開発中のものです。 mailto:sage [2008/03/15(土) 00:13:20 ID:FwUg+nN/]
空間分割はともかくマルチスレッドはどうなんだろうか・・・
クアッドコアなら効果ありそうだけど。

79 名前:名前は開発中のものです。 mailto:sage [2008/03/15(土) 01:22:59 ID:lDsY0+o2]
ウチの環境だと、CoreSoloってこともあってかほとんどマルチスレッドは効果が出なかったな。
処理内容によって早かったり、かえって遅くなったりまちまち。
CoreDuoとかだと普通に恩恵が得られそうだけど、そんなPCならGPUもよさそうだしなぁ

80 名前:名前は開発中のものです。 mailto:sage [2008/03/15(土) 02:34:54 ID:Lrw9CI3F]
マルチスレッド興味あるんだが、マルチスレッドを前提にした設計の仕方が思いつかん。
ゲームオブジェクトを非同期に更新する上手い方法なんかないかな。



81 名前:名前は開発中のものです。 mailto:sage [2008/03/15(土) 10:26:44 ID:Q/W+AhbK]
FPSとかは知らないけど、2DSTGでマルチスレッドが有効利用できる
場面って少なく無いか?
総当り系の判定をスレッドに割り振るのも大変そうだし。

ローディング画面でディスクアクセスしながらアニメーション流す位しか
思いつかないんだが、他になんかある?

82 名前:名前は開発中のものです。 mailto:sage [2008/03/15(土) 14:21:34 ID:Lrw9CI3F]
ジオメトリウォーズのエフェクトや背景はマルチスレッドで処理してるとどっかに書いてあったような。

エフェクト類は他のオブジェクトに干渉しないのも多いから、
そういうのはまとめておいて別スレッドで処理すればいいかもしれん。

83 名前:名前は開発中のものです。 mailto:sage [2008/03/17(月) 17:45:56 ID:PCJP7SA4]
>>80
DDR2メモリ4GBが数千円で買える今なら大声で言える

ゲームオブジェクト全てをダブルバッファリングだな
フレーム(t)バッファはリードオンリー
フレーム(t+冲)バッファはライトオンリー
オラ(t+冲) = オラ(t) + (世界(t)がオラに元気を分けた。差分)(冲) + (オラのパワー。差分)(冲)
差分スキームは好きなの使え。ここでは単に一次オイラー

同一フレーム内オブジェクト同士の相互参照は一切ないから
更新順序も排他アクセスも一切不要
メモリが2倍要るという欠点は先述のPC環境なら無視でいいだろ

動作環境
 メインメモリ1GBで動かない時は2GB積んでみてください
 メインメモリ2GBで動かない時は4GB積んでみてください
 …etc…

84 名前:名前は開発中のものです。 mailto:sage [2008/03/17(月) 19:25:31 ID:+53rIC4V]
あなた起動時に全ての画像読み込んでそうですね
俺はちまちまやってます

85 名前:名前は開発中のものです。 mailto:sage [2008/03/17(月) 23:57:27 ID:PCJP7SA4]
富豪厨の俺でも流石にそれはないが
ステージ単位でドカっと読み込んでる
boost::progress_displayのゲージがジリジリと動く様を
ティーカップ片手に優雅に待てば良いのだ

それすら我慢できない低属性プレイヤーはrejectだ

86 名前:名前は開発中のものです。 mailto:sage [2008/03/17(月) 23:58:50 ID:zSjwTnFq]
はいはい、boostスレに帰ろうなw

87 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 13:52:14 ID:zi8sXJbl]
敵弾をCPUごとに振り分ければよくね。どんな鬼畜弾幕になるのか知らんが。

88 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 14:26:14 ID:kWeEHiH7]
弾同士が干渉しないならそれが良さそうだが、
2DSTGで複数コア使う必要があるような処理って弾同士の干渉くらいな気がする。
>>83は汎用性あって良いかもしれん。

89 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 14:34:56 ID:h/08ARO0]
>敵弾をCPUごとに振り分ければよくね

よく分からんが
2DSTGでゲームオブジェクトを並列化しようって話をしてるなら
エフェクトや弾が真っ先に候補に上がるのはごく自然なことだよ
エフェクトや弾同士は相互作用が基本的に無いから実装も単純

90 名前:名前は開発中のものです。 mailto:sae [2008/03/18(火) 14:35:40 ID:h/08ARO0]
レスがかぶっちった



91 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 18:20:56 ID:PQFbQVbE]
2Dシューティングを作りたいなと思ってここにたどり着いたのですが、
フリーソフトで何を使えば一番簡単に始められますか?

92 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 18:25:47 ID:+UFwrO/v]
HSP

93 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 18:31:16 ID:kJphN6cj]
STGビルダー

94 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 19:18:33 ID:UdPg6oix]
両方捨てがたいな

95 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 20:05:42 ID:PQFbQVbE]
>>92-94
ありがとうございます。
両方調べて出直してきます。

96 名前:名前は開発中のものです。 mailto:sage [2008/03/20(木) 18:13:51 ID:zMjnThxP]
ゲーム中のオブジェクトの基本となるクラスがあるとして、
そのクラスの配列を作り、メンバ変数でオブジェクトの種類を区別するか、
そのクラスへのポインタの配列をつくり、放り込む派生クラスの種類で区別するか
どっちのやりかたで作ってる?

前者の方が複雑なポインタを考えない分、簡単かもしれないけど、
後者の方がオブジェクト指向的に綺麗かなぁ

97 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 00:45:59 ID:Y2tGkS1P]
判定アリ背景(接触しても死なない)の処理がとてもめんどうなんですが
こういった処理をしている方、どんな風にやってますか?

98 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 07:09:36 ID:zfnOUqWA]
どういう処理にしたいのかもうちょっと詳しく

99 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 11:47:21 ID:Hgv+vM2A]
すみません
・接触しても死なない/めり込まない
・縦の壁に対して斜め入力をし続けると、空いてる方向に移動する
・スクロール等で壁が移動する場合、キャラは押される
・画面端に挟まれると死ぬ
こんな感じです
2番目3番目がさっぱりです

100 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 13:08:41 ID:kWp5gXWi]
2は横移動先が壁にめり込んでたらめり込んだ分横に押し戻し
3はスクロールしてめり込んだらめり込んだ分スクロール方向に押し戻し
とか



101 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 13:44:46 ID:XmgrQpyE]
2は普通に作ればたいてい空いてる方向に移動すると思うぞ
要するに、キー入力方向に壁があったら、その方向の移動量をゼロにする
あと、地形を重視するなら大きなマップの中で視点がスクロールすると考えるといい
一度アクションゲームを作ってみるといいよ
4点とも簡単に解決できる







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<199KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef