シューティングゲーム製作技術総合 17機目
レス数が1000を超えています。これ以上書き込みはできません。
0001名前は開発中のものです。
2008/11/27(木) 10:18:19ID:bBI1A+d5それは「シューティングゲーム製作」・・・。
このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!
ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
過去スレ,関連スレは >>2-3で。
0979978
2009/03/31(火) 20:11:04ID:AlfaWHG9>Dual core 1.6GHz メモリの速度は忘れた。
Dualとか関係無いのはさすがに判るよね?
そこに書かなきゃいけないのは、CPUの2次キャッシュの大きさと、dblSin配列の大きさ
0980名前は開発中のものです。
2009/03/31(火) 20:12:13ID:EVrWm6RK文句ばっか言ってないでお前の環境での結果を見せればいんじゃね?
0981名前は開発中のものです。
2009/03/31(火) 20:12:53ID:C8QskIEzいや、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];
}
return 0;
}
とかこんな感じじゃね?
0982名前は開発中のものです。
2009/03/31(火) 20:14:58ID:C8QskIEz0983名前は開発中のものです。
2009/03/31(火) 20:22:33ID:ZKYAtsRNテーブルを頭から走査したら駄目だろw
それでベンチマークになってると思ってるのかね。
それと、そのコードって最適化かかるとまずいんじゃない?
変数をvolatileで宣言してれば平気かもしれんが。
0984名前は開発中のものです。
2009/03/31(火) 20:23:51ID:C8QskIEz整数実装にすれば(0が0度、64が180度(1PI),96が270度(1.5PI)みたいな設計にしてるなら配列のサイズ関係ないっぽいぜ。
もちろん、それの前処理としてのiが渡ってくる過程が重要になるけど。
)
それにしたって*1000くらいしたあとに %128とかで片付ければいいだけなのでそんなにコストがかかってるとは思わないけどな。
0985名前は開発中のものです。
2009/03/31(火) 20:33:35ID:eRxRYNY82次キャッシュが1024Kbyte
dblSinの大きさは、8000000byte
>>983
for ( i = 0; i < 1000000; i++)
{
intNo[i] = ((float)rand() / (float)RAND_MAX)* 1000000.0f;
}
dblData = 0.0f;
intTime1 = GetTickCount();
for ( i = 0; i < 1000000; i++)
{
dblData = dblSin[ intNo[i]];
}
intTime2 = GetTickCount();
intKekka2 = intTime2 - intTime1;
ランダムいれてみて、intKekka2が31。
今のやり方だとまだテーブルのほうが速い。
0986名前は開発中のものです。
2009/03/31(火) 20:38:11ID:eRxRYNY8volatileはつけてる。
0987名前は開発中のものです。
2009/03/31(火) 20:40:53ID:eRxRYNY8ライブラリ組み込みのsinの求めかたってコンパイラが違っても
計算のやり方同じなん?
gccでもVCでも同じ?
0988名前は開発中のものです。
2009/03/31(火) 20:47:49ID:DdunG5bw速度繋がりでついでに別個の問題として聞いたわけだが
0989名前は開発中のものです。
2009/03/31(火) 20:49:04ID:C8QskIEz0990名前は開発中のものです。
2009/03/31(火) 21:14:20ID:+ipl15Vv今時三角関数省いたくらいで喜ぶなよ。
0991名前は開発中のものです。
2009/03/31(火) 21:35:55ID:WEsXEB630992名前は開発中のものです。
2009/03/31(火) 22:05:59ID:yOP/w+uJ「サンプルプログラム示して実行させれば誰もが納得するだろ」って話になってるのに
「環境で変わるから〜」とか
「三角関数省いたくらいで喜ぶな」とか意味わからん。
0993名前は開発中のものです。
2009/03/31(火) 22:16:26ID:AlfaWHG9734msのダミーコードを追加した
intKekka1 750 実質 16ms
intKekka2 766 実質 32ms
for ( i = 0; i < 100000; i++)
{
for ( j = 0; j < 100000; j++)
tt = otherMemory[j]; //ダミーコード
}
intTime2 = GetTickCount();
dummyOnly = intTime2 - intTime1;
for ( i = 0; i < 100000; i++)
{
dblData = sin ( 0.5f);
for ( j = 0; j < 100000; j++)
tt = otherMemory[j];
}
intTime2 = GetTickCount();
intKekka1 = intTime2 - intTime1;
// グローバルメモリ参照(←ヒープでいいよね?)
dblData = 0.0f;
intTime1 = GetTickCount();
for ( i = 0; i < 100000; i++)
{
dblData = dblSin[ intNo[i]];
for ( j = 0; j < 100000; j++)
tt = otherMemory[j];
0994名前は開発中のものです。
2009/03/31(火) 23:04:17ID:0FYQSp1Gそこまで明らかにミスキャッシュを誘発させるベンチはどうなんだろうね。
あと、dblSin[ intNo[i]]; だとテーブル二段階アクセスになるから
ちょっと不利な計測の仕方でしょ。
0995名前は開発中のものです。
2009/03/31(火) 23:15:34ID:WEsXEB630996名前は開発中のものです。
2009/03/31(火) 23:35:56ID:AlfaWHG9doubleData[i] = (double)rand() / (double)RAND_MAX;
なる配列を加えて、
dblData = sin ( doubleData[i]);
にした
kekka1 734
kekka2 781
確かに、画像の回転ぐらいやらせんと説得力ないな
0997名前は開発中のものです。
2009/03/31(火) 23:57:28ID:oMQsq3DX0998名前は開発中のものです。
2009/04/01(水) 00:02:19ID:NFPupAwb0999名前は開発中のものです。
2009/04/01(水) 00:10:27ID:LuCgRd4k1000名前は開発中のものです。
2009/04/01(水) 00:12:11ID:HvCh7B+t10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。