13. 2 第一次AIブーム(1960年代)
もし A ならば B
もし B ならば C
よって、
もし A ならば C
シンボルによる人工知能
(記号主義)
ニューラルネットによる人工知能
(コネクショニズム)
推論ベース ニューラルネット
誕生
14. 3 第二次AIブーム(1980年代)
IF (A) then B
IF (C) then D
IF (E) then F
IF (G) then H
IF ( I ) then J
シンボルによる人工知能
(記号主義)
ニューラルネットによる人工知能
(コネクショニズム)
ルールベース
新しい学習法=
逆伝搬法
20. Deep Q-Learning
Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Alex Graves,
Ioannis Antonoglou, Daan Wierstra, Martin Riedmiller (DeepMind Technologies)
Playing Atari with Deep Reinforcement Learning
http://www.cs.toronto.edu/~vmnih/docs/dqn.pdf
画面を入力
操作はあらかじめ教える
スコアによる強化学習
22. • Pπ ロールアウトポリシー(ロールアウトで討つ手を決める。
Pπ(a|s) sという状態でaを討つ確率)
• Pσ Supervised Learning Network プロの討つ手からその
手を討つ確率を決める。Pσ(a|s)sという状態でaを討つ確
率。
• Pρ 強化学習ネットワーク。Pρ(学習済み)に初期化。
• Vθ(s’) 局面の状態 S’ を見たときに、勝敗の確率を予測
する関数。つまり、勝つか、負けるかを返します。
Mastering the game of Go with deep neural networks and tree search
http://www.nature.com/nature/journal/v529/n7587/full/nature16961.html
https://deepmind.com/research/alphago/
38. ⑤ニューラルネットワークの構造が進化させる
「NEAT」の技術
Mat Buckland, Chapter 11, AI techniques for game programming, Premier Press, 2002
(実行ファイルとソースコードがCD-ROMにあります)
これまでニューラルネットは、最初に構造を定義した後は変化しなかった。
動的にニューラルネットの構造を変化させる技術
Neuron Evoluation of Augmenting Topologies (NEAT)
53. Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks
Alec Radford, Luke Metz, Soumith Chintala
(Submitted on 19 Nov 2015 (v1), last revised 7 Jan 2016 (this version, v2))
https://arxiv.org/abs/1511.06434
54. Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks
Alec Radford, Luke Metz, Soumith Chintala
(Submitted on 19 Nov 2015 (v1), last revised 7 Jan 2016 (this version, v2))
https://arxiv.org/abs/1511.06434
58. GPU-BASED PROCEDURAL PLACEMENT
IN HORIZON ZERO DAWN
• https://www.guerrilla-games.com/read/gpu-based-
procedural-placement-in-horizon-zero-dawn
• データからプロシージャルにマップなど、ゲームに必要なデー
タを生成
62. アーロンのアルゴリズム
• 知識ベースの人工知能
= 閉曲線で描くことを学ぶ。
1981Aaron’s homepage
http://aaronshome.com/aaron/index.html
Harold Cohen, "How to Draw Three People in a Botanical Garden"
http://aaronshome.com/aaron/publications/index.html
63. アーロンのアルゴリズム
• 知識ベースの人工知能
(左) 学んだ知識から描く
(右) 架空のものを学んだものから描く
19851983
Aaron’s homepage
http://aaronshome.com/aaron/index.html
Harold Cohen, "How to Draw Three People in a Botanical Garden"
http://aaronshome.com/aaron/publications/index.html
75. Procedural Generation in WarFrame
• Warframe ではダンジョンが自動生成される。
Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015)
http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
76. Black Combination in WarFrame
• ブロックを組み合わる
• 完全に零からの生成
ではない。
このような生成のことを
Semi-procedural と言う。
Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015)
http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
79. スタートポイント、出口、目的地の
自動生成
Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015)
http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
80. ヒートマップ(影響マップ)を用いて
ゲーム中にプレイヤーの周囲を自動解析
Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015)
http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
ヒートマップ(影響マップ)とは、対象(ここではプレイヤー)を中心に、位置に温度(影響度)を
与える方法です。距離に応じて減衰します。また時間が経つと、周囲に熱が拡散します。
83. アクティブ・エリアセット(Active Are Set)
Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015)
http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
アクティブ・エリアセットは、プレイヤーの周囲の領域で、
リアルタイムにメタAIがゲームを調整する領域
85. メタAI (AI Director,)による
動的ペース調整
Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015)
http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
86. メタAI(自動適応ペーシング)
メタAI (AI Director,)による
動的ペース調整
Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015)
http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
87. メタAIによる出会うモンスターの数の大域調整
Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015)
http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
プレイヤーのスタート地点から出口までの道のりで、
コンスタントにモンスターと出会うようにする。
88. FarCry 4 の事例
Julien Varnier, Far Cry's AI: A Manifesto for Systemic Gameplay
http://archives.nucl.ai/recording/far-crys-ai-a-manifesto-for-systemic-gameplay/
89. FarCry 4 の事例
Julien Varnier, Far Cry's AI: A Manifesto for Systemic Gameplay
http://archives.nucl.ai/recording/far-crys-ai-a-manifesto-for-systemic-gameplay/
90. FarCry 4 の事例
Julien Varnier, Far Cry's AI: A Manifesto for Systemic Gameplay
http://archives.nucl.ai/recording/far-crys-ai-a-manifesto-for-systemic-gameplay/
91. FarCry 4 の事例
Julien Varnier, Far Cry's AI: A Manifesto for Systemic Gameplay
http://archives.nucl.ai/recording/far-crys-ai-a-manifesto-for-systemic-gameplay/
96. RAINWORLD におけるアニメーションの作り方
Animation Bootcamp: 'Rainworld' Animation Process
Speaker(s) Joar Jakobsson, James Therrien
Company Name(s) Video Cult, Bright Primate
http://www.gdcvault.com/play/1023475/Animation-Bootcamp-Rainworld-Animation
100. RAINWORLD パス検索を用いたアニメーション
ボックスも動く。
Animation Bootcamp: 'Rainworld' Animation Process
Speaker(s) Joar Jakobsson, James Therrien
Company Name(s) Video Cult, Bright Primate
http://www.gdcvault.com/play/1023475/Animation-Bootcamp-Rainworld-Animation
101. RAINWORLD パス検索を用いたアニメーション
足を置きたい。
Animation Bootcamp: 'Rainworld' Animation Process
Speaker(s) Joar Jakobsson, James Therrien
Company Name(s) Video Cult, Bright Primate
http://www.gdcvault.com/play/1023475/Animation-Bootcamp-Rainworld-Animation
102. RAINWORLD パス検索を用いたアニメーション
足をどうやって動かすべき?
Animation Bootcamp: 'Rainworld' Animation Process
Speaker(s) Joar Jakobsson, James Therrien
Company Name(s) Video Cult, Bright Primate
http://www.gdcvault.com/play/1023475/Animation-Bootcamp-Rainworld-Animation
103. ボックスの近くに向けてパス検索。
Animation Bootcamp: 'Rainworld' Animation Process
Speaker(s) Joar Jakobsson, James Therrien
Company Name(s) Video Cult, Bright Primate
http://www.gdcvault.com/play/1023475/Animation-Bootcamp-Rainworld-Animation
104. ボックスの近くに向けてパス検索。
Animation Bootcamp: 'Rainworld' Animation Process
Speaker(s) Joar Jakobsson, James Therrien
Company Name(s) Video Cult, Bright Primate
http://www.gdcvault.com/play/1023475/Animation-Bootcamp-Rainworld-Animation
105. ボックスの近くに向けてパス検索。
Animation Bootcamp: 'Rainworld' Animation Process
Speaker(s) Joar Jakobsson, James Therrien
Company Name(s) Video Cult, Bright Primate
http://www.gdcvault.com/play/1023475/Animation-Bootcamp-Rainworld-Animation
106. RAINWORLD パス検索を用いたアニメーション
ボックス、床の近くに向けてパス検索。
Animation Bootcamp: 'Rainworld' Animation Process
Speaker(s) Joar Jakobsson, James Therrien
Company Name(s) Video Cult, Bright Primate
http://www.gdcvault.com/play/1023475/Animation-Bootcamp-Rainworld-Animation
110. パス検索の結果の経路が足を延ばせる経路。
Animation Bootcamp: 'Rainworld' Animation Process
Speaker(s) Joar Jakobsson, James Therrien
Company Name(s) Video Cult, Bright Primate
http://www.gdcvault.com/play/1023475/Animation-Bootcamp-Rainworld-Animation
112. RAINWORLD パス検索を用いたアニメーション
結果はこんな感じ。
Animation Bootcamp: 'Rainworld' Animation Process
Speaker(s) Joar Jakobsson, James Therrien
Company Name(s) Video Cult, Bright Primate
http://www.gdcvault.com/play/1023475/Animation-Bootcamp-Rainworld-Animation
113. RAINWORLD パス検索を用いたアニメーション
Animation Bootcamp: 'Rainworld' Animation Process
Speaker(s) Joar Jakobsson, James Therrien
Company Name(s) Video Cult, Bright Primate
http://www.gdcvault.com/play/1023475/Animation-Bootcamp-Rainworld-Animation
116. A Boy and His Kite: An Animated Short (Epic, Unreal Engine 4)
https://www.youtube.com/watch?v=JNgsbNvkNjE
【技術解説動画】
GDC 2015: Creating the Open World Kite Real-Time Demo
in Unreal Engine 4
https://www.youtube.com/watch?v=clakekAHQx0
Unreal Engine 4 KITE Demo
117. Unreal Engine 4 KITE Demo
GDC 2015: Creating the Open World Kite Real-Time Demo in Unreal Engine 4
https://www.youtube.com/watch?v=clakekAHQx0
166. References
(1) Jacob Olsen,Realtime Procedural Terrain Generation
http://oddlabs.com/download/terrain_generation.pdf
(2) Ken Musgrave
http://www.kenmusgrave.com
(3) Terragen(Planetside Software)
http://www.planetside.co.uk/terragen
(4) Introversion Software, "Procedural Content Generation",
GameCareerGuide.com, 2007
http://www.gamecareerguide.com/features/336/procedural_content_.php
(5)西川善司, 「3DゲームファンのためのAGE OF EMPIRESエンジン講座(後
編)こだわりの影生成と算術合成されるディテール、次回作はXbox2?」,
GAME Watch, 2005
http://watch.impress.co.jp/game%2Fdocs/20050313/aoe3.htm
Figures on the pages are from these references.
168. 植物自動生成
Since 1968 A. Lindenmayer
L-system 文法規則
構成要素 F,+,-,[,]
規則 F-> F[-F]F[+F][F]
F
0世代 1世代
F[-F]F[+F][F]
2世代 3世代 4世代 5世代
Simulating plant growth by Marco Grubert http://www.acm.org/crossroads/xrds8-2/plantsim.html
169. The Sketch L-System:
Global Control of Tree Modeling Using Free-form Strokes
Takashi Ijiri, Shigeru Owada, Takeo Igarashi.
The Sketch L-System:
Global Control of Tree Modeling Using Free-form Strokes
http://www-ui.is.s.u-tokyo.ac.jp/~ijiri/SketchLSystem/index.html
L-system を用いて簡単な操作で木のモデルを作成するツール
170. デモ
The Sketch L-system
SG06_SketchLSystem
Takashi Ijiri, Shigeru Owada, Takeo Igarashi.
The Sketch L-System: Global Control of Tree Modeling Using Free-form Strokes
http://www-ui.is.s.u-tokyo.ac.jp/~ijiri/SketchLSystem/index.html
174. L-system によるダンジョン自動生成(三宅案)
variables : X Y F
constants : + −
start : FX
rules : (X → X+YF+),(Y → -FX-Y)
angle : 90°
http://en.wikipedia.org/wiki/L-system
175. L-system による街の自動生成
City Engine(central pictures)
Yoav I H Parish, Pascal Müller
http://www.centralpictures.com/ce/tp/paper.pdf
http://www.centralpictures.com/ce/
George Kelly, Hugh McCabe,
A Survey of Procedural Techniques for City Generation
http://www.gamesitb.com/SurveyProcedural.pdf
176. The City Engine
Pascal Mueller
The CityEngine, http://www.vision.ee.ethz.ch/~pmueller/wiki/CityEngine/Front
文法システムによる街生成
196. E
第九章 EVE ONLINE におけるプロシージャル技術
The Server Technology of EVE Online: How to Cope with 300,000 Players in One World
Kristjan Valur Jonsson / CCP Games
http://www.gdcvault.com/play/1014031/The-Server-Technology-of-EVE
197. Partitioning space into a hierarchy of
boxes
ttt STfS 1
N
tt
M
ttt SfSfSSS 0
1
0
11 ,,
becomes:
Binary space partitioning in three dimensions. Each sphere
belongs to only one box – the smallest box that is able to
contain the spere.
The Server Technology of EVE Online: How to Cope with 300,000 Players in One World
Kristjan Valur Jonsson / CCP Games
http://www.gdcvault.com/play/1014031/The-Server-Technology-of-EVE
198. It is not as simple as the last slide implied
The time-extrusion of a sphere determines what space
partitions it can interact with (causality bubble)
Collision is defined as the intersection of two time-
extruded spheres (cylinders with dome
shaped end-caps)
Collision response is highly elastic
(conservation of momentum)
The Server Technology of EVE Online: How to Cope with 300,000 Players in One World
Kristjan Valur Jonsson / CCP Games
http://www.gdcvault.com/play/1014031/The-Server-Technology-of-EVE
199. You have now seen Destiny
QED
The Server Technology of EVE Online: How to Cope with 300,000 Players in One World
Kristjan Valur Jonsson / CCP Games
http://www.gdcvault.com/play/1014031/The-Server-Technology-of-EVE
200. Evolving time
The server solves the system of equations for an entire “system”.
The client only solves the equations for the causality bubble that it
belongs to.
Server regularly sends updates to the initial conditions for a time
step. The client can work its way backwards to adjust for changes
in initial conditions and derive how they affect current state.
The Server Technology of EVE Online: How to Cope with 300,000 Players in One World
Kristjan Valur Jonsson / CCP Games
http://www.gdcvault.com/play/1014031/The-Server-Technology-of-EVE
201. Two things now become obvious
• A client scales based on the population in a causality bubble
• A server scales based on the population in the “system” that
we need to solve the differential equations for
• How are these concepts defined in EVE?
• Answers after this break!
The Server Technology of EVE Online: How to Cope with 300,000 Players in One World
Kristjan Valur Jonsson / CCP Games
http://www.gdcvault.com/play/1014031/The-Server-Technology-of-EVE
202. The universe we wanted to create
Solar systems typically consists
of a dozen of planets, surrounded
by moons and asteroid belts
Routes connect them into
constellations that themselves
form conglomerates called
regions
EVE consists of over 5000 solar
systems
The Server Technology of EVE Online: How to Cope with 300,000 Players in One World
Kristjan Valur Jonsson / CCP Games
http://www.gdcvault.com/play/1014031/The-Server-Technology-of-EVE
203. Cooking up solar systems
EVE solar systems are
created using a disc
accretion model
Gives convincing enough
results and is possible to
calculate in less than 24
hours
The Server Technology of EVE Online: How to Cope with 300,000 Players in One World
Kristjan Valur Jonsson / CCP Games
http://www.gdcvault.com/play/1014031/The-Server-Technology-of-EVE
204. We wanted an interesting route system
Goals:
• Settlements
• Strategic
• Hierarchical
=> Diffusion Limited
Aggregation (DLA)
The Server Technology of EVE Online: How to Cope with 300,000 Players in One World
Kristjan Valur Jonsson / CCP Games
http://www.gdcvault.com/play/1014031/The-Server-Technology-of-EVE
205. Generating the route system
Diffusion Limited
Aggregation (DLA)
Extended to multi-seed and
three dimensions
The Server Technology of EVE Online: How to Cope with 300,000 Players in One World
Kristjan Valur Jonsson / CCP Games
http://www.gdcvault.com/play/1014031/The-Server-Technology-of-EVE
206.
207.
208.
209.
210.
211.
212. Scaling well with increased hardware
• A unique combination of software and hardware layers
• Tiered architecture allows software to scale well with increased
hardware
• Relies heavily on thread pooling and I/O completions, underneath
micro-threaded Stackless Python logic
The Server Technology of EVE Online: How to Cope with 300,000 Players in One World
Kristjan Valur Jonsson / CCP Games
http://www.gdcvault.com/play/1014031/The-Server-Technology-of-EVE
213. 213
EVE runs on a supercomputer
Active Servers
Weight
CPUS
RAM
Estimated
FLOPS
Bandwidth
~ 195
About 2.5 metric tonnes of
equipment
> 420 CPU cores > 1 THZ
> 7.5 Terabytes
> 7.5 Tera
~ 400 GHZ
The Server Technology of EVE Online: How to Cope with 300,000 Players in One World
Kristjan Valur Jonsson / CCP Games
http://www.gdcvault.com/play/1014031/The-Server-Technology-of-EVE
214. The Server Technology of EVE Online: How to Cope with 300,000 Players in One World
Kristjan Valur Jonsson / CCP Games
http://www.gdcvault.com/play/1014031/The-Server-Technology-of-EVE
219. Particle Deposition
Simulates volcanic mountain ranges and island systems
drop random particles in a blank grid
Determine if the particle’s neighboring cells are of a lower height
If this is the case increment the height of the lowest cell
keep checking its surrounding cells for a set number of steps or until it is the
lowest height among its surrounding cells
If not increment the height of the current
cell
Generated after 5 series
of 1000 iterations
3D Terrain Generation. Pablo Saldarriaga.
https://www.eecs.yorku.ca/course_archive/2011-12/W/4431/lectures/terrain.ppt
220. Issues with using Height fields
They cannot generate overhangs or caves
Some solutions, for example:
“mushrooming” effects that involve the manipulation of vertex
normals in order to render height field textures with overhangs
the game Halo Wars implemented a new type of height field called
a vector height field which stored a vector to displace a vertex
instead of a height value
3D Terrain Generation. Pablo Saldarriaga.
https://www.eecs.yorku.ca/course_archive/2011-12/W/4431/lectures/terrain.ppt
GDC 2009 HALO WARS: The Terrain of Next-Genby Colt McAnlis
(Blizzard)
http://www.gdcvault.com/play/1628/HALO-WARS-The-Terrain-of
221. 3D Terrain Generation. Pablo Saldarriaga.
https://www.eecs.yorku.ca/course_archive/2011-12/W/4431/lectures/terrain.ppt
GDC 2009 HALO WARS: The Terrain of Next-Genby Colt McAnlis
(Blizzard)
http://www.gdcvault.com/play/1628/HALO-WARS-The-Terrain-of
224. プロシージャルなゲームエンジン②
① オブジェクト生成
(We can generate objects with procedural techniques
-Then use rules to deform / destroy / modify / move them
-Better interactivity)
② Semi-procedural surface shader
③ Procedural shader
④ Procedurally distributed on the fly
GDC 2007 Frostbite “Rendering Architecture and Real-time Procedural Shading & Texturing Techniques”
http://developer.amd.com/assets/Andersson-Tatarchuk-FrostbiteRenderingArchitecture(GDC07_AMD_Session).pdf
GDC 2007 “The Importance of Being Noisy: Fast, High Quality Noise”, N. Tatarchuk
http://developer.amd.com/Assets/Tatarchuk-Noise(GDC07-D3D_Day).pdf
SIGGRAPH 2007 Johan Andersson “Terrain Rendering in Frostbite using Procedural Shader Splatting”
http://ati.amd.com/developer/gdc/2007/Andersson-TerrainRendering(Siggraph07).pdf
Frostbite Engine
225. ハードウェア(CPU)から見たプロシージャル
ハードウェア・ベンダーからは、次なるコンピューティングの用途として
プロシージャルの方向に舵が取られている
AMD Intel
次世代Battlefiled用エンジン
This scene is
made entirely of
procedural
textures
GDC 2007 Frostbite “Rendering Architecture and
Real-time Procedural Shading & Texturing Techniques”
http://developer.amd.com/assets/Andersson-Tatarchuk-
FrostbiteRenderingArchitecture(GDC07_AMD_Session).pdf
http://softwarecommunity.intel.com/isn/downloads/gr
aphics/GDC/Threading_Successes.zip
GDC 2008 Threading Successes 06 - Allegorithmic
Allegorithmic
http://www.allegorithmic.com/
226. Real-time Sound Propagation in Video Games
Jean-Francois Guay (Ubisoft)
Real-time Sound Propagation in Video Games Jean-Francois Guay (Ubisoft)
http://gdcvault.com/play/1015492/Real-time-Sound-Propagation-in
227. Real-time Sound Propagation in Video Games
Jean-Francois Guay (Ubisoft)
Real-time Sound Propagation in Video Games Jean-Francois Guay (Ubisoft)
http://gdcvault.com/play/1015492/Real-time-Sound-Propagation-in