スライド 1

Download Report

Transcript スライド 1

最新のコンピュータゲームで
使われている情報技術
甲南大学 知能情報学部
新田 直也
自己紹介
• 甲南大学 知能情報学部 講師
• ソフトウェアの作り方に関する研究を
している.
• 大学卒業後,ソフトウェア会社に6年
間プログラマとして勤める.
講演の内容
• お話すること
–
–
–
–
コンピュータゲームの世界的動向
日本のゲーム開発における課題
ゲーム開発に必要な知識と技能
これからのゲーム
最新ゲームの例:Crysis
(1/2)
• 2007年,ドイツ Crytek社によって開発.
• 一人称視点シューティングゲーム(ファースト
パーソンシューティング,FPS)
• 発売当時,最高スペックのPCでも完全には動作
しなかった.
• 世界最高レベルの3DCG,高度な物理演算,人
間らしく振る舞うAI等の機能を有する.
最新ゲームの例:Crysis
(2/2)
• プレイ動画のデモ
コンピュータゲームの
世界的動向(1/2)
• 世界のゲーム市場の規模は日本の規模
の8倍以上(しかも差が開きつつある)
6000
• 世界はPCゲームが主流:
– ゲーム専用機よりPCの
方が性能が高い.
– ソフトを開発する環境が
整備されている.
– 最初からインターネット
が使える.
日本
海外
44000
単位:億円
コンピュータゲームの
世界的動向(2/2)
• FPSを中心に3DCG,物理演算,人工知能等が
飛躍的に高度化.
• 機能の高度化と並行して,ソフトウェアが大規模
化(開発コストが増大).
– 開発コストは映画の予算を超える.
– ただし,開発コストのほとんどは人件費
(プログラミングとCGデザイン).
→ゲームエンジンを利用することで開発を効率化.
ゲームプログラミング
• ゲームの場合,C++が主流.
• メタルギアソリッドで約100万行のプログラ
ムが書かれたと言われる.(印刷すると,
約4000m!!)
• 1000行当たり100万円,1人で1ヶ月分の
作業.
→開発費用10憶円?
→100人で10ヶ月?
ゲームエンジン(1/3)
• ゲームプログラムの土台
1つのゲーム
エンジンから…
シューティング
ロールプレイング
レーシング
いろんな
ゲームを
作ることが
できる
ゲームエンジン(2/3)
• マルチプラットフォーム性
いろんなハード
向けに作られて
いるので…
PC用
Wii用
PS3用
PC用
Wii用
PS3用
いろんな
ハードに
対応できる
ゲームエンジン(3/3)
• 欧米では多くのゲームがゲームエンジンを使って
開発されている.
• 市販されているゲームエンジンも多い.
• 代表的な商用ゲームエンジン:
– UnrealEngine3.0
(Epic Games社, Gears of Warなど多数で使用)
– CryENGINE2 (Crytek社, CRYSISで使用)
• ゲームエンジンの宣伝用にゲームが開発されて
いる.
日本のゲーム業界の現状
• 全体の売り上げは低下傾向.
• 技術的には欧米に遅れをとっている.
• 市販されているゲームエンジンはない.
– カプコンのMTフレームワークは,ロストプラ
ネット,デビルメイクライ4,バイオハザード5な
どで利用されているが,基本的にカプコン社
内向け.
• 優秀な技術者は欧米ほど多くない.
日本のゲーム研究の現状
• ほとんど研究は行われていない.
• 「ゲーム=遊び」のイメージ?
研究としてあまり評価されない.
• そもそもゲームで遊んでいる研究者が少
ない?
• ゲームの開発現場を知っている研究者が
いない?
ゲームエンジンで
使われている技術
• ゲームエンジンにはゲームで必要とされるさまざ
まな機能が組み込まれている.
– 高度な3Dグラフィックス(影の計算,炎などの演出,
水面の表現,肌の表現など)
– 物理演算(自由落下,衝突判定,力学演算)
– AI機能
– 並列計算処理
– 通信機能
– 言語処理系
v1・v2 = |v1||v2|cosθ
f = ma
3DCGのトレンド
• 描画の高速化から,水面表現やさまざまなエフ
ェクトなど表現力の向上へ.(西川善治「3Dグラフィックスマニ
アックス」http://journal.mycom.co.jp/column/graphics/index.html参照)
– グラフィックカード(GPU)の機能拡張ではなくプログラ
マブルシェーダで対応.
プログラマブルシェーダを
使った水面表現の例
(Half-Life 2)
GPUとCPUの進化
• CPUはクロック数を上げることによる高速化が限
界を迎え,マルチコアなどの並列化へ.
• GPUは高速かつ単純なベクトル演算から高度な
演算か可能なプログラマブルシェーダへ.
→CPUとGPUの統合.
• インテルのLarrabee.
– GPUにCPUを搭載する.
– 各CPUユニットは
pentium
高速な物理演算(1/2)
• リアルタイムでの物理的振る舞いを実現するた
めには,高速な衝突判定処理と力学演算処理
が必要.
– 衝突判定処理は「ゲームプログラミングのためのリア
ルタイム衝突判定」参照.(ただし,2次計画法や凸幾
何などの知識が必要.)
– 力学演算処理,特に剛体力学演算では,拘束力の計
算がポイント.
拘束力
• 運動方程式と拘束条件式から拘束力
を解く(線形計画問題)とO(n3).
重力
高速な物理演算(2/2)
• ペナルティ法.
– 剛体をいったん仮想的にめり込ませて,仮想的なバ
ネとダンパを使ってめり込みを漸近的に解消させる.
– 計算量はO(n) .
– ただし,めり込みを解消するまでに時間を要する.
ビデオゲームAI
• AIは基本的に敵の動きで使う.
• 従来のAI技術との違い.
– リアルタイム性(将棋やチェスとは違う.)
– ゲーム性と整合(賢すぎても駄目?)
• 地勢的推論
– 3Dの空間を認識して,さまざまな条件下で自
分が進むべき方向(道)を探し出す.
さいごに
• ゲームに関連する研究分野は多岐にわた
る.
• 欧米諸国に追いつくには,日本でも学術
的な研究が必要.