Title: CIS 350
1CIS 350 I Game Programming Instructor Rolf
Lakaemper
2Review and Questions
3About
The following slides give a review over most of
the topics we talked about. There are questions
you should be able to answer, if not the answers
are given, too.
4German
We learned some German words
5German
- So
- Whats the meaning of
- Erfrischungskaltgetränk ?
- Joystick
- Soda
- Flower Power
6German
- So
- Whats the meaning of
- Erfrischungskaltgetränk ?
- Joystick
- Soda
- Flower Power
7History
History of Computer Games
8History
Which of the following games can be considered to
be the first computer game ?
9History
- Mission Elevator
- Tennis for Two
- Pong
- Halo 2
10History
- Mission Elevator
- Tennis for Two (1958)
- Pong
- Halo 2
11History
Which game started the commercial success of
computer games ?
12History
- Mission Elevator
- Tennis for Two
- Pong
- Halo 2
13History
- Mission Elevator
- Tennis for Two
- Pong (1972)
- Halo 2
14History
The Sinclair Spectrum, being a British 8 bit
(Z80) computer in 1982, came with a RAM of
15History
- 40 Byte
- 4 kB
- 16 kB
- 512 kB
- 4 MB
16History
- 40 Byte
- 4 kB
- 16 kB (Graphics included !)
- 512 kB
- 4 MB
17Genres
Game Genres
18Genres
Name 5 Genres !
19Genres
- Adventure (Text/Graphic/Action)
- Education
- Fight
- FPS
- MMOG
- Platform
- Puzzle
- Racing
- RPG
- Simulation
- Sports
- Strategy
- Traditional
20Fractals
Fractal Landscapes
21Fractals
- Definiton of Fractals
- Self Similarity
- Fractal Dimension
- Midpoint Replacement
- van Koch Snowflake
- Diamond Square Algorithm
22Fractals
On which of the following arrays would the DS
algorithm be able to operate ?
23Fractals
- 12 x 12
- 128 x 32
- 128 x 128
- 129 x 33
- 129 x 129
- 17 x 17 x 17
24Fractals
- 12 x 12
- 128 x 32
- 128 x 128
- 129 x 33
- 129 x 129
- 17 x 17 x 17
25Fractals
In a 5 x 5 grid, having the corners
pre-inititialized, what are the coordinates of
the first point computed by the Diamond Step ?
26Fractals
- (0,0) denotes the upper left point, rows first.
- (2,2)
- (3,3)
- (2,3)
- (4,0)
27Fractals
- (0,0) denotes the upper left point, rows first.
- (2,2)
- (3,3)
- (2,3)
- (4,0)
283D Math
3D MATH BASICS
293D Math
- Scalar / Dot / Cross Product
- Transformations- Scaling, Rotation, Translation
- Homogeneous Coordinate System
- Projections, Parallel and Perspective
-
303D Math
Which product is needed to scale (stretch) a
vector ?
313D Math
323D Math
333D Math
Which product is needed to compute the normal
vector of a plane ?
343D Math
353D Math
363D Math
The DOT product can be utilized to
373D Math
- Compute the angle between two vectors
- Compute the AREA spanned by two vectors
- Rotate a vector around another
383D Math
- Compute the angle between two vectors
- Compute the AREA spanned by two vectors
- Rotate a vector around another
393D Math
Which of the following matrices stretches a
vector by factor 3 in all directions ?
403D Math
3 0 0
0 3 0
0 0 3
1/3 0 0
0 1/3 0
0 0 1/3
3 1 1
1 3 1
1 1 3
413D Math
3 0 0
0 3 0
0 0 3
1/3 0 0
0 1/3 0
0 0 1/3
3 1 1
1 3 1
1 1 3
423D Math
Homogeneous Coordinates (gt 4x4 Matrices) are
used to
433D Math
- Rotate a vector without any information about the
angle - Decrease the dimensionality of a vector
- Represent the translation as a matrix
multiplication - Unify all dimensions
443D Math
- Rotate a vector without any information about the
angle - Decrease the dimensionality of a vector
- Represent the translation as a matrix
multiplication - Unify all dimensions
453D Math
The PARALLEL projection along an axis of the
coordinate system
463D Math
- Reduces the dimensionality from 3D to 2D
- Increases the dimensionality from 2D to 3D
- Shows objects being closer bigger than others
being far away
473D Math
- Reduces the dimensionality from 3D to 2D
- Increases the dimensionality from 2D to 3D
- Shows objects being closer bigger than others
being far away
483D Math
The PERSPECTIVE projection
493D Math
- Shows all objects scaled to the same size
- Increases the dimensionality from 2D to 3D
- Shows objects being closer bigger than others
being far away
503D Math
- Shows all objects scaled to the same size
- Increases the dimensionality from 2D to 3D
- Shows objects being closer bigger than others
being far away
51Open GL
OPEN GL
52Open GL
- Primitives
- Glut
- OpenGL Matrices
- Coordinate Systems (OCS/ECS)
- Viewing volume
53Open GL
Whats the code for creating a green triangle ?
54Open GL
glBegin() glColor3f(0.0,1.0,0.0) glVertex3f(x1,
y1,z1) glVertex3f(x2,y2,z2) glVertex3f(x3,y3,z
3) glEnd()
55Open GL
Assign the following operations to the matrices
they belong to
56Open GL
Matrices ModelView (MV) Projection (P) Operat
ions define model transformations Clipping Set
camera pose
57Open GL
Matrices ModelView (MV) Projection (P) Operat
ions define model transformations MV Clipping
P Set camera pose MV
58Open GL
The transformation by the modelView matrix
affects the
59Open GL
- Eye coordinate system
- Object coordinates
- Object coordinate system
60Open GL
- Eye coordinate system
- Object coordinates
- Object coordinate system
61Open GL
- The projection matrix should be used for
62Open GL
- Camera Pose
- Viewport Transformation
- Clipping
63Open GL
- Camera Pose
- Viewport Transformation
- Clipping
64Collision
COLLISION
65Collision
- Bounding Volumes
- Separating Axes Theorem
- kDOPs
66Collision
- Bounding Volumes
- AABB
- OBB
- Sphere
- kDOP
67Collision
Without using bounding volumes, what is the
complexity of the pairwise collision check
between 2 objects faces ?
68Collision
O (___)
69Collision
O (n²)
70Collision
Which bounding volume is the easiest to compute ?
71Collision
72Collision
73Collision
Having the BV computed, which one leads to the
simplest collision detection ?
74Collision
75Collision
76Collision
Which BV is a good trade off between simplicity
and filling efficiency ?
77Collision
78Collision
79Collision
Which is the easiest way to represent the
halfplanes that define kDOPs ?
80Collision
- Linked Lists of Vertices
- Hessian Normal Form
- Parameter Form
81Collision
- Linked Lists of Vertices
- Hessian Normal Form
- Parameter Form
82Collision
The separating axes theorem demands for how many
directions to check for collisions between 2 AABB
?
83Collision
84Collision
85Collision Hierarchies
Collision Hierarchies
86Collision Hierarchies
- Multiscale Representation
- AABB/OBB/ Trees
- Creating Trees
- Recursive Collision Detection
- Paper Efficient Collision Detection
- AABB Trees
- Deformable Models
87Collision Hierarchies
A kDOP Tree stores
88Collision Hierarchies
- In each node the different halfplanes
representing the directions - Different models in each node
- The kDOP volumes of a model in different
granularities
89Collision Hierarchies
- In each node the different halfplanes
representing the directions - Different models in each node
- The kDOP volumes of a model in different
granularities
90Collision Hierarchies
The AABB tree of the paper Efficient Collision
Detection read in this class was a
91Collision Hierarchies
- Binary tree
- Balanced tree
- Christmas tree
92Collision Hierarchies
- Binary tree
- Balanced tree
- Christmas tree
93Collision Hierarchies
- Sorry. My mistake.
- funny Germans
94Collision Hierarchies
- Binary tree
- Balanced tree
- Christmas tree
95Collision Hierarchies
The tree update for deformable models presented
in the paper
96Collision Hierarchies
- Changed the topology of the tree
- Changed the content of the nodes only while
preserving the topology - Was done by recomputing the whole tree
97Collision Hierarchies
- Changed the topology of the tree
- Changed the content of the nodes only while
preserving the topology - Was done by recomputing the whole tree
98Collision Hierarchies
The intersection test in the paper was sped up
by
99Collision Hierarchies
- Using only 6 of the 15 directions needed
- using assembly language
- Transforming the model into 2D space
100Collision Hierarchies
- Using only 6 of the 15 directions needed
- using assembly language
- Transforming the model into 2D space
101collision between multiple objects
COLLISION BETWEEN MULTIPLE OBJECTS
102collision between multiple objects
- Grid Method
- Sort and Sweep
103collision between multiple objects
Using Sort and Sweep, objects collide if they
overlap in
104collision between multiple objects
- No direction
- One direction
- At least 2 directions
- All directions
105collision between multiple objects
- No direction
- One direction
- At least 2 directions
- All directions
106collision between multiple objects
Game AI, Robots and the Real World
107AI etc.
- SOAR / Unreal Engine
- Robocup Soccer
- Robocup Rescue
- Map Building from Laserscans
- Path Finding Dijkstra / A / Simulated Annealing
- Robot Wars
108collision between multiple objects
Which of the following statements is true ?
109collision between multiple objects
- A always finds the shortest path
- Dijkstra always finds the shortest path
- Dijkstra is faster than A
110collision between multiple objects
- A always finds the shortest path
- Dijkstra always finds the shortest path
- Dijkstra is faster than A
111collision between multiple objects
Which of the following statements is true ?
112collision between multiple objects
- A is target oriented
- Dijkstra is target oriented
113collision between multiple objects
- A is target oriented
- Dijkstra is target oriented
114Game Physics
GAME PHYSICS
115Game Physics
- Basics of Newton Physics
- Time Slicing
- Overview of Physics Engines
- Problems of Physics Engines
116Game Physics
(no questions)
117Classical AI
Classical AI
118Classical AI
- Search Trees
- MinMax
- Alpha beta pruning
- Quiescent Search
- Iterative Deepening
- Null Move Forward Pruning
119Classical AI
(for questions see mini quizzes)
120Board Games
Techniques for Board Games
121Board Games
- Hashing (e.g. for move ordering) Zobrist Keys
122Board Games
- Evaluation Functions
- End Point Evaluation
- First Order Evaluation (Piece Square Table)
123Board Games
- Board Representation
- Array
- 0x88
- BitBoards
124Game Theory
Game Theory (a VERY brief introduction)
125Game Theory
- Prisoners Dilemma
- Dominant Strategy
- DS Equilibrium
- Nash Equilibrium
126Thats it ! (Das wars !) Bye ! (Tschüß !)