[過去ログ] シューティングゲーム製作技術総合 17機目 (1001レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(1): 2008/11/27(木)10:18 ID:bBI1A+d5(1/3) AAS
ゲームプログラマなら誰もが通る、もしくは、通った道。青春の香り?
それは「シューティングゲーム製作」・・・。

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

ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
省2
921: 2009/03/28(土)14:15 ID:Ffh5P52X(1) AAS
でも俺はオブジェクト指向>ロリータ指向
922: 2009/03/28(土)15:05 ID:lxZcFexf(3/7) AAS
俺は906が何なのか推測できて、間違ってなければよいだけよ

やっぱLuaだな
yaccもテンプレートも使わないので組み込みやすくて良い
923
(1): 2009/03/28(土)18:55 ID:BvaX6KYT(1/9) AAS
Strategyパターンでタイトル、機体選択、ゲーム中の3つのシーンを作りたいんだけど
クラス名にこまった
タイトル→ StrategyTitle
機体選択 → StrategySelect
ゲーム中 → Strategy???

どんなクラス名がいいと思う?
924: 2009/03/28(土)18:58 ID:V/k8J2vR(1) AAS
そろそろXXパターンで組んだってわかるようにクラス名に反映するのはよそうぜ。
925: 2009/03/28(土)19:52 ID:BvaX6KYT(2/9) AAS
敵は楽だな
基本 → EnemyPrototype
敵1 → Enemy01
敵2 → Enemy02
敵3 → Enemy03
敵4 → Enemy04
敵5 → Enemy05
省1
926: 2009/03/28(土)20:37 ID:BvaX6KYT(3/9) AAS
機体ごとにパラメータを変化させるにはDecoratorパターンが有効だね
基本 → DecoratorPlayer
機体1 → Player01
機体2 → Player02
機体3 → Player03
機体4 → Player04
機体5 → Player05
省2
927
(1): 2009/03/28(土)20:49 ID:lxZcFexf(4/7) AAS
そうだな
お前は春休みぐらい友達と何処かに遊びに行けよ
928: 2009/03/28(土)21:19 ID:BvaX6KYT(4/9) AAS
>>927
>折角C++使っても全部switchしか手が無い
929
(1): 2009/03/28(土)21:25 ID:lxZcFexf(5/7) AAS
ID:BvaX6KYTは 「906はショボイ」の一言を伝えるのに
こんなにレスを消費しないイケナイという事がわかった

大変だね(´・ω・`)
930: 2009/03/28(土)21:43 ID:BvaX6KYT(5/9) AAS
>>929
こんなにレスを消費しないイケナイという事がわかった
931: 2009/03/28(土)21:47 ID:lxZcFexf(6/7) AAS
こんなにレスを消費しない"と"イケナイという事がわかった
932: 2009/03/28(土)22:32 ID:BvaX6KYT(6/9) AAS
そうだな
お前は春休みぐらい友達と何処かに遊びに行けよ

こんなにレスを消費しない"と"イケナイという事がわかった
933: 2009/03/28(土)23:06 ID:BvaX6KYT(7/9) AAS
老害ジジイをみて思ったのだが、能力がないくせにプライドだけは一人前の使えない
新人の30年後の姿なんだろうね(逆なら、ジジイの30年前の姿が今の新人)
934: 2009/03/28(土)23:18 ID:BvaX6KYT(8/9) AAS
定年過ぎても独身で女には全く縁のなく、
オタク系や変態男が多い。

定年に近い人に変な人が多い気がした。

簡単に言うと動物園

正当化するあたりがね、DQNを通り越して変人だと思う。

学歴がどうこう言ってるやつにまともな人は少ないw
省4
935: 2009/03/28(土)23:21 ID:CP3bamwP(1) AAS
またキチガイが沸いてるよ
936: 2009/03/28(土)23:23 ID:BvaX6KYT(9/9) AAS
すいません
私独自の開発した
対キチガイミサイルなんです
937: 2009/03/28(土)23:27 ID:lxZcFexf(7/7) AAS
2ch歴浅いけど、本物キチガイと遭遇したよ
過去ログの幼稚なパターン厨かと思ったら、それ以下だったな
938: 2009/03/29(日)01:00 ID:Ol+RNP7n(1) AAS
>>656のパターン厨じゃないの。
全然>>906を理解できていないし。
939: 2009/03/29(日)02:15 ID:d/WDwujV(1) AAS
ぉゃっょ
940: 2009/03/29(日)02:32 ID:DbfbvsH9(1) AAS
ヵッォ、ぉゃっゎ ぁっぃ ぉゅょ
941
(1): 2009/03/29(日)02:43 ID:FCDCeteh(1) AAS
老害老害っていつも同じこと言ってるけど
どっかでおっさんにこっぴどく叩かれたんだろうな
942: 2009/03/29(日)03:44 ID:lZ8POZAJ(1) AAS
はいはい勃起勃起
943
(1): 2009/03/29(日)05:28 ID:redkwKER(1) AAS
>>923
「画面」のクラスなんだから、パターンは関係ねー。
ここでの弾クラスがbulletで敵クラスがenemyのように、分かりやすいプレ(リア)フィックスを点けれ。
一般的には2Dゲームだと、表示系がCanvasになるから、
mainCanvas titleCanvas selectCanvas みたいに付けるのが一般的だが、
3DゲームだとSchineとかにするのがいいらしいね。
全般的にはもっと抽象的にViewとかにしてもいいかもしれない。
944: 2009/03/29(日)06:24 ID:6HRCOm5i(1) AAS
某本によれば、メンバ関数だけど
drawGameTitle とか drawGameMain だったりした
945: 2009/03/29(日)08:49 ID:FX3dpUqj(1/2) AAS
>>941
老害のおっさん以外だったらこういう奴とも仲良くできるような事書くなよw
何処でも相手しねーよこんなの

組み込み言語で繰り返しや、sin,cosを直にスクリプトに書けるのもスゲーが、
配列で運搬出来る様な原始的なスクリプトも自動生成出来るのでおいしいです。

富豪的には自動生成した物を
946: 2009/03/29(日)08:53 ID:FX3dpUqj(2/2) AAS
続き

富豪的には自動生成した物を、組み込み言語で読み上げたり、中に
ハードコーディングしたりとかも出来ちゃうんだろうな
947: 2009/03/29(日)09:51 ID:bVDwy6iR(1) AAS
そうや、BulletMLは使っている人いないのか?
948: 2009/03/30(月)09:16 ID:Bov4VD4y(1/3) AAS
29日午後8時55分ごろ、大阪市北区角田町で、大阪府枚方市のネイリストの女性(21)が
、近づいてきた2人組の男に「遊ぼうや」と声をかけられた。女性が無視したところ、男の1人
がいきなり女性の顔面を殴り、ナイフでほほを切りつけた。男らは走って逃げ、女性は顔に
軽傷を負った。女性は友人女性(21)と一緒にいたが、友人は無事だった。曽根崎署は
傷害容疑で捜査している。
949: 2009/03/30(月)11:57 ID:vlV9IOZj(1) AAS
はいはい勃起勃起
950: 2009/03/30(月)13:51 ID:DTzDKGyx(1) AAS
意味判らん
951: 2009/03/30(月)14:56 ID:7NVi2nBu(1) AAS
>>943
Viewは、World*View*Projを何度も使う3Dではややこしくないか?
952
(1): 2009/03/30(月)16:01 ID:kjBKEg9u(1) AAS
//テーブル初期化
:
45[SIN] = 2[SQRT] / 2.0;
:

↑この前こんな感じの見かけたんだけど、今時これはないと思った
953: 2009/03/30(月)17:51 ID:Bov4VD4y(2/3) AAS
szExceptionTitle db "Exception",0

szWindows2000Required db "This application requires NT 5.0 (2000) or later versions of Windows system",0

szErrorSymDefFileNotFound db "The symbolic definition file has not found",0

szErrorSpecSymDefNotFound db "A specific symbolic definition has not found",0

szErrorFileNotReadable db "Could not open or read a specified file",0
省4
954: 2009/03/30(月)17:52 ID:Bov4VD4y(3/3) AAS
push OFFSET PerformRandomSeedExchangeProc
push 1
push SIZEOF PT_EXCHANGE_RANDOM_SEED
call ExchangeData
test ecx,ecx
mov eax,[lpLargeBuffer]
jl ProcessTerminated
省9
955: 2009/03/30(月)20:32 ID:MsfTb8Bc(1) AAS
もはやCコンパイラを自作したほうが楽なレベル
956: 2009/03/31(火)00:11 ID:DQD5khQB(1) AAS
>>952
double sin[360];
double sqrt[1000];

sin[45] = sqrt[2] / 2.0;

ってこと?
957
(2): 2009/03/31(火)01:33 ID:jA3Wyd63(1) AAS
何気なくsinとかatanとか使ってるけど、結局それらの関数って
本来めちゃくちゃコストがかかる計算のはずだよな?
なら、やっぱりゲーム的には精度落としてテーブル実装にするのがモアベターなのかなあ。
958: 2009/03/31(火)01:35 ID:7Dccknp/(1) AAS
>>957
計算式で求めない確定した数値なら、テーブルのほうがベターじゃねーかな。
結局は、作り手の選択な部分なんで、絶対な解法というのはないよ。
959: 2009/03/31(火)01:36 ID:+yfcmkdB(1) AAS
携帯ゲームなら効果あるかも、って認識だ
今時のPCゲームで数学関数がボトルネックになるなんて考えられない
そもそもそこを気にするんならまず描画をやめれ
960: 2009/03/31(火)03:22 ID:TlPvCoUd(1) AAS
プロファイリングすれば分かるが携帯とかでも無い限り>>957案は逆に遅くなる
下手な考え何とやら
961
(1): 2009/03/31(火)04:22 ID:DdunG5bw(1/3) AAS
じゃあ座標も少数型でいいんだね?
962: 2009/03/31(火)05:20 ID:AlfaWHG9(1/6) AAS
>座標も少数型
DirectXなので当然そうなる

というか、>>961の脳内にだけ誤差とかで上手くいかない状況があるんじゃね?
963: 2009/03/31(火)09:46 ID:6nFXdL0R(1/2) AAS
計算処理がテーブル参照一回分よりコスト低いなんて普通に考えたら信じられんのだが。
964: 2009/03/31(火)10:03 ID:lrQoi4db(1) AAS
まあ、バカにはわからんよ。

テープル参照と三角関数のベンチマークを
ランダムな引数で比較してみろよw
965: 2009/03/31(火)10:13 ID:Z60UL3VO(1) AAS
CPUの動作を理解しないと、テーブル参照と三角関数の速度差は理解出来んだろうからな。
つ〜か、キャッシュ絡みの動作は分かりにくい。
966
(1): 2009/03/31(火)10:54 ID:6nFXdL0R(2/2) AAS
少なくとも俺が組んだプログラムでは
テーブル参照の方が10分の1のコストで済んでいた。

どういう組み方すれば三角関数の方が早くなるのか教えて欲しい。
967: 2009/03/31(火)11:20 ID:NJFMHqzD(1) AAS
関数のほうは、#pragmaとかで処理系の最適化を効かせた?
まあそれでもテーブルの方が速いってことは十分ありえるが
968: 2009/03/31(火)17:37 ID:AlfaWHG9(2/6) AAS
繰り返す話題だけど、環境依存があって当然の物の話だろ?
>>966のPCで特殊な結果が出たなら、珍しいねとしか言えない
969: 2009/03/31(火)17:52 ID:oMQsq3DX(1/2) AAS
環境が分からんから話が交錯するのです。
速度とか書き込む前に少なくともOS・CPUスペック・RAM容量・言語・住所・氏名を明示しましょう。
970: 2009/03/31(火)18:03 ID:EoCekJlW(1) AAS
この手の話題、過去に何度も出てくるけど、
ベンチマーク用のサンプルソースが示されないのはなんで?

論ずるよりもそれ実行すれば一発で納得できると思うんだけど
そんなに特殊なプログラムなの?
971: 2009/03/31(火)18:08 ID:wt58uqRX(1) AAS
描画以外の速度なんざ誤差
可読性重視
972: 2009/03/31(火)18:35 ID:YrEQyE+G(1) AAS
sinfじゃなくてsinを使うとコンシューマーでは遅くなるが。
973: 2009/03/31(火)18:55 ID:DdunG5bw(2/3) AAS
ああ俺はDXライブラリを使ってたから…
DirectXなら当然のことなのか
ついでに動的使う負荷も無視できるのかな
あれってvirtual宣言した時点で動的と判断されて負荷かかるのかな
974: 2009/03/31(火)19:30 ID:e23bhJED(1) AAS
コイツってさ、質問が意味を成してないよな
設計する為に継承したり、インターフェース用意したりしてるんじゃねーの?
手元に1行も自分が書いたソースねーだろw

まさに>>888
975
(3): 2009/03/31(火)20:01 ID:eRxRYNY8(1/5) AAS
// sin関数
dblData = 0.0f;
intTime1 = GetTickCount();
for ( i = 0; i < 100000; i++)
{
dblData = sin ( 0.5f);
}
省15
976: 2009/03/31(火)20:04 ID:eRxRYNY8(2/5) AAS
100000→1000000で
intKekka1が188、intKekka2が15
VS C++のsinだとメモリ参照したほうが早い
他のコンパイラは、ここになかったんで不明
977
(1): 2009/03/31(火)20:07 ID:C8QskIEz(1/5) AAS
関数がvirtualであることと擬似sinとライブラリ組み込みsinの速度が違うことに関係は無い……
978
(2): 2009/03/31(火)20:07 ID:AlfaWHG9(3/6) AAS
どう見ても釣りです。 本当にありがとうございました。

キャッシュを一言も挟まない辺り狙ってるなw
979
(2): 978 2009/03/31(火)20:11 ID:AlfaWHG9(4/6) AAS
>>975
>Dual core 1.6GHz メモリの速度は忘れた。
Dualとか関係無いのはさすがに判るよね?

そこに書かなきゃいけないのは、CPUの2次キャッシュの大きさと、dblSin配列の大きさ
980: 2009/03/31(火)20:12 ID:EVrWm6RK(1) AAS
>>978
文句ばっか言ってないでお前の環境での結果を見せればいんじゃね?
981: 2009/03/31(火)20:12 ID:C8QskIEz(2/5) AAS
>>975
いや、sin[i]じゃないだろjk。
public double sinex(double rad)
{
for(int i=1;i<tbl.size();i++)
{
if(rad>tbl[i-1] && rad<tbl[i])return tbl[i];
省4
982: 2009/03/31(火)20:14 ID:C8QskIEz(3/5) AAS
いやごめん忘れて。角度に関して、最初から整数で丸める実装にすればいちいちテーブル範囲参照しないでいいんだな。おkだ。
983
(2): 2009/03/31(火)20:22 ID:ZKYAtsRN(1) AAS
>>975
テーブルを頭から走査したら駄目だろw
それでベンチマークになってると思ってるのかね。

それと、そのコードって最適化かかるとまずいんじゃない?
変数をvolatileで宣言してれば平気かもしれんが。
984: 2009/03/31(火)20:23 ID:C8QskIEz(4/5) AAS
>>979
整数実装にすれば(0が0度、64が180度(1PI),96が270度(1.5PI)みたいな設計にしてるなら配列のサイズ関係ないっぽいぜ。
もちろん、それの前処理としてのiが渡ってくる過程が重要になるけど。

それにしたって*1000くらいしたあとに %128とかで片付ければいいだけなのでそんなにコストがかかってるとは思わないけどな。
985: 2009/03/31(火)20:33 ID:eRxRYNY8(3/5) AAS
>>979
2次キャッシュが1024Kbyte
dblSinの大きさは、8000000byte

>>983
for ( i = 0; i < 1000000; i++)
{
intNo[i] = ((float)rand() / (float)RAND_MAX)* 1000000.0f;
省11
986: 2009/03/31(火)20:38 ID:eRxRYNY8(4/5) AAS
>>983
volatileはつけてる。
987: 2009/03/31(火)20:40 ID:eRxRYNY8(5/5) AAS
>>977
ライブラリ組み込みのsinの求めかたってコンパイラが違っても
計算のやり方同じなん?
gccでもVCでも同じ?
988: 2009/03/31(火)20:47 ID:DdunG5bw(3/3) AAS
別にvirtural とsin との問題に絡めて聞いたわけでなく
速度繋がりでついでに別個の問題として聞いたわけだが
989: 2009/03/31(火)20:49 ID:C8QskIEz(5/5) AAS
ライブラリ組み込み関数って大抵はgccの方が圧倒的に遅いんじゃないかなw
990: 2009/03/31(火)21:14 ID:+ipl15Vv(1) AAS
つーか、全体の処理の中でボトルネックになってるかどうかを確認するべきだと思うんだが。
今時三角関数省いたくらいで喜ぶなよ。
991
(1): 2009/03/31(火)21:35 ID:WEsXEB63(1/2) AAS
シューティングなんぞループと加算と描画と三角関数くらいしか使わないもんだし、その中の一つ が削れただけでも影響は結構大きいかもだ
992: 2009/03/31(火)22:05 ID:yOP/w+uJ(1) AAS
「テーブル参照より三角関数の方が早い」って言う人がいて、
「サンプルプログラム示して実行させれば誰もが納得するだろ」って話になってるのに
「環境で変わるから〜」とか
「三角関数省いたくらいで喜ぶな」とか意味わからん。
993: 2009/03/31(火)22:16 ID:AlfaWHG9(5/6) AAS
現実にはミスキャッシュが起こるわけで、ソレの再現をすればよい
734msのダミーコードを追加した

intKekka1   750  実質 16ms
intKekka2   766  実質 32ms

for ( i = 0; i < 100000; i++)
{
 for ( j = 0; j < 100000; j++)
省20
994
(1): 2009/03/31(火)23:04 ID:0FYQSp1G(1) AAS
現実には割と続けて使われることも多いわけで、
そこまで明らかにミスキャッシュを誘発させるベンチはどうなんだろうね。

あと、dblSin[ intNo[i]]; だとテーブル二段階アクセスになるから
ちょっと不利な計測の仕方でしょ。
995: 2009/03/31(火)23:15 ID:WEsXEB63(2/2) AAS
誰か次スレたのむ
996: 2009/03/31(火)23:35 ID:AlfaWHG9(6/6) AAS
>>994
doubleData[i] = (double)rand() / (double)RAND_MAX;
なる配列を加えて、
dblData = sin ( doubleData[i]);
にした

kekka1 734
kekka2 781
省1
997: 2009/03/31(火)23:57 ID:oMQsq3DX(2/2) AAS
妊娠してしまいますが
998: 2009/04/01(水)00:02 ID:NFPupAwb(1) AAS
埋め
999: 2009/04/01(水)00:10 ID:LuCgRd4k(1) AAS
シューティングで使う角度って10万も分割するのか……。
1000: 2009/04/01(水)00:12 ID:HvCh7B+t(1) AAS
2chスレ:gamedev
1001: 1001 Over 1000 Thread AAS
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.225s*