講演案 : ゲーム プログラミングに要求されるテクノロジ
― ゲーム フレームワークからプログラマブル シェーダまで ―
ゲーム プログラミングにはさまざまな構成要素があり、それぞれに最先端のテクノロジを要求する。それらはゲームだけにしか通用しない特殊なテクノロジではなく、コンピュータ
サイエンス、ソフトウェア工学の応用分野である。本講演では、現在の最先端の問題を例に、ゲーム プログラミングに要求されるテクノロジを具体的に紹介する。 |
ゲーム プログラミングには、3D グラフィックス・AI・ネットワークなどのいくつかの主要な構成要素がある。そして、ソフトウェア設計においては、アプリケーション
フレームワーク、デザイン パターンや UML のようなソフトウェア工学的な知識が、グラフィックスにおいては数学的・光学的あるいはハードウェア制御のための知識が、AI
においては古典的なアルゴリズムの現代的な応用テクニックが要求される。本講演では、デモを交えながら、ゲーム プログラミングにおけるそれぞれの分野の課題と、それを解決するテクノロジを解説する。
● |
3D グラフィックスについては、グラフィックス ハードウェアを制御する新しい言語であるプログラマブル シェーダ言語(頂点シェーダ、ピクセル
シェーダ)のアーキテクチャとその実装例を紹介する。 |
● |
AI については、古典的なパス探索アルゴリズム A* とその最適化手法などの、先進的な応用技術について紹介する。 |
● |
ゲーム フレームワークについては、ゲームの開発おけるその役割と課題、そしてデザインパターンや UML を使った設計手法について紹介する。 |
● |
ネットワークについては、スケーラブルなネットワーク ゲーム構築に必要なテクニック、セキュリティ、遅延の最小化方法などについて紹介する。 |
|
Game Programming Gems シリーズ,
ボーンデジタル, 2001-2002
Game AI Programming Wisdom, Charles River Media Inc., 2002.
Software Engineering and Computer Games, Addison Wesley, 2003.
Real-Time Shader Programming, ボーンデジタル, 2003 |
A* アルゴリズムとその最適化手法 |
● |
A* アルゴリズム |
● |
ヒューリスティック
▲ |
幾何的距離 |
▲ |
重み付け |
▲ |
直線性 |
▲ |
リスク |
|
● |
最適化手法
▲ |
探索空間の最適化 |
▲ |
処理の最適化 |
▲ |
感覚的最適化 |
▲ |
戦術的最適化 |
|
グラフィックス |
● |
GPU |
● |
グラフィックス パイプライン
▲ |
固定機能パイプライン |
▲ |
プログラマブル パイプライン |
|
● |
プログラマブル シェーダ
|
● |
ベース テクニック |
● |
さまざまなライティング モデルとエフェクト |
|
|
|
|