ぶろ開発 -33ページ目

3倍速くなったとよ

ハワイカイ4


合成対象のアニメーションを2つから4つにし、一度に全てを合成する関数に与えたところ、処理時間が倍かかるようになってしまった。汎用にコーディングしてあった部分を入力4つ専用にするなどして、チューニングしてみた。3倍速くなった。主にアンローリングをしただけなのだが、キャッシュメモリが無いのにこれだけ速くなるとは。ローカルメモリがパイプライン型なのと、命令バッファが少しあるのが、予想以上に効いているようだ。メーカーが大きく宣伝している他の並列部分は全く効果が無いことは、アセンブラで組んでみて確認済み。他のチームも全く動作しないことを確認した。メーカーの責任者に直接問い合わせても返事無し。メーカーがほとんど言及していない部分が、本当は並列化にとって重要だとは、皮肉な話だ。表面的なきれい事よりも、こういうことのほうが製品を作るには必要なのだが、あのメーカーは、未だ、アカデミックに見えるけれども本当はアカデミックでも何でも無い事に投資を続けている。きっと責任者不在なんだろう。

プロトタイプを使ってテストした

ハワイ猫3


早速、ソースコードをクリーンアップしつつ、ベンチマークを取ってみる。指全部と顔の表情付きの最も重いキャラクターだと1000人60FPSはちょっと苦しい。公式には500人60FPSということで、1000人は内部での目標にした。指と表情を取ると、3000人60FPSは軽くクリア。ということは、6個全部使えば、2万人を60FPSで動かせるという計算になる。実際には、帯域幅の問題とあっち側のことでそこまでいくことは無い。これだけの人数になるとAI木は固定でパラメータ制御でないとあっという間にサイクル数を消費する。とても動的には、生成している暇は無い。





雛形が動く

カウアイ1


やっと雛形が動き始める。どのゲームでもよく使われているAIコントローラの基本形を実現した。アニメーション用演算の大事なものはカバーしているので、組み合わせを変えれば、色々なゲームに対処できる。柔軟性を上げるとか何とか周りには言いながら、翻訳形式にしたが、実際はこういう間接的な方法を使わないと色々とあれやらこれやらが危なくて使えないからだ。こういうハードウェアアーキテクチャはAI木には向いてないという話が業界では出ているようだが、実現したぞ。開き直って構造を変えれば解決できるという典型例だ。でも上の上のボスからは、これに交換するメリットに関する文書を書けという強いご要望がやって来た。メモでは駄目だと。確かに現バージョンのお客さんがたくさんいますからね。データは取る。派手な結果が出るようにチューニングもしよう。美味しいところ私がやるから、デビットに後は任せた。

New Chinese Cusine

ハワイカイ2


ここの"New Chinese Cusine"という名前の中華レストランの料理が美味しかった。他の中華レストランは、どこもどの料理にも香辛料の八角が入っている印象で、すぐ飽きてしまうが、ここは味が濃過ぎず、それでいてメリハリがあって良かった。なぜどこのレストランも八角を必ず使うのか不思議だ。ただこれが本当の中華料理なのかもしれない。日本の中華料理で使われている量が少ないのは、日本人でこれを好まない人が少なくないせいかも。ちょうどコリアンダーみたいに。

Civ4

ハワイ猫4


Civ4今一盛り上がらず。時々、Civ3に戻ったりしてるのはどうなんだろう。家で今電源が入っているPC中、最強のを使っているのだが、重い、とにかく重い。ここ10日間ほど、会社の仕事の続きを家でやっていたということもあるのだが。今の仕事、2月まで一息付けそうにない。正月は、タイガー戦車を完成させる予定だし、Civ4にはまる日はいつになるか。