テクスチャサイズは2の乗数倍を徹底すべし

・いや、基本的なんでわかってるんですが、動いちゃったりすると1280x512とかで、見落としたまま素材上げられちゃったりするので。
DirectXベースだと一部のグラフィックボードでまともに動いても1280→2048に伸長されるのでUVがズレます。リソース管理を徹底させる、のもナンセンスなので不精せずに検査ツールを作るorコンバータにチェック機構持たせるのがベストかも。

負荷と処理落ち

・最近のPCのCPU(マザーボード?)は処理負荷が少ないと出力を自動で絞ってしまう設定が入ってたりするため、処理負荷の落差が激しいゲームなどは、マシンスペックの割りに処理落ちを多く感じてしまう。
・一定の負荷を常にかけ続けるか、設定でCPUの自動クールダウンの機能を切ってもらうかが必要となる。

placement newの配列

・placement newの配列は先頭数byteをデストラクタが必要な個数として強制的に使用されるため、デストラクタが必要なクラスの配列確保には使用すべきではない。
・代換案として必要な総サイズ分をAllocateした後にコンストラクタだけ叩くnewを作って配列数分だけ叩く。

void* operator new( size_t size, void* obj )
{
    return obj;
}

STLの中でもこんな感じでやってるっぽい。デストラクタも一つ一つ叩くように注意すべきかも。

テンプレートのインナークラスをメンバ関数の返り値として利用する時

template 
class A {
  class B {
    T t;
  };
 
  B b;

  B Return0() { return b; }
  B Return1();
};

template 
typename A::B
Return1(){
  return b;
};

・クラス宣言内部に書くか、typenameで明示的にしないとVC++だと通らないっぽい。

仮想メンバ関数とキャッシュミス

・たとえばそのクラスの継承先がなんであるかを判定したい時に

enum{
  CLASS_A = 0,
  CLASS_B,
};

class A {
  virtual int CheckClass() { return CLASS_A; }
};

class B : public A {
  int CheckClass() { return CLASS_B; }
};

というように気軽に仮想メンバ関数で作るとキャッシュミスが酷い事になる。
基底クラスに変数を作ってコンストラクタなどで入れてあげるべき。

リポジトリのレイアウト

・最初にしっかりとレイアウトをしておかないと、ブランチとタグを切るときに面倒。
参考ページ:http://www.chibutsu.org/faf/WebWiki/column/SubversionBestPractices.html