フライングゲッツしました。
しかし、たしか Halo3 か何かで発売日前のゲーム起動を
察知すると Live! のアカウントがバンされたとか言う話を
どっかで見たことあるので遊ぶのは躊躇してしまう。
それにしても洋ゲーは戦争ものゲームばっかりですな。
あまりにも神経質に「暴力ゲームは諸悪の根源!」とばかり
言うのは思考停止だとは思いますが、ゲームという媒体を
考えるとき、もっと幅があってもいいと思うのです。
いやゲームプレイとしての FPS は大変楽しいのですが。
もっとジャンル判定不能なゲームがじゃんじゃん出ないと
尻すぼみになってしまいそうで恐怖を感じます。
* 判定不能っても「世界を救う RPG」とかじゃないよ
2008年6月26日木曜日
2008年6月7日土曜日
Gamefest 資料のメモ
DirectX SDK の新しいのが出ていたので落としに行ったら
Developer Center に Gamefest のプレゼン資料があったので
気になる部分をメモしておく。
気になるところを抜き出しただけ AND 誤りもあるかも…
なので直接資料を観るのがベター。
[ Sublime C++ For Games ]
-----------------------------------------------
o VC 2005 は可変長引数マクロが使用可 (知らんかった)
o RAIIを使え(例外を利用するかどうかによる)
* RAII = リソース獲得は初期化である [参考リンク]
o 例外の性能ペナルティーは 1-5%
o コンソールでは無効にすることを考える
o デバッグモードだけで利用することを考える
o unordered_set/map は set/map より早い
o 最悪のケースにおいてだけ遅い
o node-based なコンテナ(list,map,set,multi_xx)はやめよう
o unordered_xx の方がマシ
o 関数の引数に、コンテナでなくてイタレータをとる
o インデックスの代わりにイタレータ
o shared_ptr の利用を考える
o ポインタのエイリアシング
o "p" が "dst" を指すかも → ループ毎にリロード → :-(
o 仮想関数は便利だが、コストはかかる(360では特に)
o いかついコード内では使わない
o プラットフォームの区別に利用しない
o アロケーションはコスト高
o 経験則: ゲームループ内でアロケート禁止
o カスタムアロケータ導入を考えてみる
o ベクトルを struct vec { float x,y,z,w; }; ってするのはダメ
o ネイティブな型を使え
o Xbox 360 : __vector4 / XMVECTOR
o Windows : __m128 (D3DVECTOR をコアなコードに使うな)
Developer Center に Gamefest のプレゼン資料があったので
気になる部分をメモしておく。
気になるところを抜き出しただけ AND 誤りもあるかも…
なので直接資料を観るのがベター。
[ Sublime C++ For Games ]
-----------------------------------------------
o VC 2005 は可変長引数マクロが使用可 (知らんかった)
o RAIIを使え(例外を利用するかどうかによる)
* RAII = リソース獲得は初期化である [参考リンク]
o 例外の性能ペナルティーは 1-5%
o コンソールでは無効にすることを考える
o デバッグモードだけで利用することを考える
o unordered_set/map は set/map より早い
o 最悪のケースにおいてだけ遅い
o node-based なコンテナ(list,map,set,multi_xx)はやめよう
o unordered_xx の方がマシ
o 関数の引数に、コンテナでなくてイタレータをとる
o インデックスの代わりにイタレータ
o shared_ptr の利用を考える
o ポインタのエイリアシング
void Add( float* dst, const float* p ) for ( int i=0; i < n; ++i ) dst = *p + 1.0;o 上記のような関数はコンパイラの最適化を阻害する
o "p" が "dst" を指すかも → ループ毎にリロード → :-(
o 仮想関数は便利だが、コストはかかる(360では特に)
o いかついコード内では使わない
o プラットフォームの区別に利用しない
o アロケーションはコスト高
o 経験則: ゲームループ内でアロケート禁止
o カスタムアロケータ導入を考えてみる
o ベクトルを struct vec { float x,y,z,w; }; ってするのはダメ
o ネイティブな型を使え
o Xbox 360 : __vector4 / XMVECTOR
o Windows : __m128 (D3DVECTOR をコアなコードに使うな)
登録:
投稿 (Atom)