Title: office hours: Mon 2 3, Thu 1 2, Fri 12 1. Lectures
1Games FundamentalsIntroduction
- Jarek Francik
- Kingston University
- 2 February 2007
- 1 February 2008
- 6 February 2009
- 5 February 2010
- 4 February 2011
2Outline
- Facts
- Games Fundamentals what is it about?
- Why not Flash?
- Why C?
- Why Mathematics?
- Why Physics?
- Outline
- Helicopter
3Facts
- Dr Jaroslaw (Jarek) Francik Yarekjarek_at_kingston
.ac.ukoffice SB 318office hours Thu 2 3,
Fri 10-11 - Dr Vasilis Arguriouvasilis.argyriou_at_kingston.ac.u
k office SB 106office hours t.b.a. - HelpersMr. Ali AlinejadMr. Joshua Mee Mr.
Alex RobsinsonMr. Jan Wilk
4Facts
- Lectures Workshops Fri 12 4 pm SB 124/127
- 2 hrs lecture 2 hrs workshop, flexible1 hour
lunch break in the middle
5Games Fundamentals
- Essential background in applied mathematics...
- ...and physics
- for Games Developers
- Strong focus on practical engineering aspects
- Taught by example real problems typically
encountered during games development process
6Module Goals, Learning Outcomes, Indicative
Curriculum
7Core Text
- Wendy Stahler, Fundamentals of Math and Physics
for Game Programmers, Pearson Prentice Hall 2006
8Core Text
- Michael Dawson, Beginning C through game
programming, Cengage Learning 2010
9Supplementary Reading Mathematics
- John Flynt and Boris Meltreger, Beginning Math
Concepts for Game Developers, Thomson Course
Technology 2006. - Christopher Tremblay, Mathematics for Game
Developers, Thomson Course Technology 2004 - James M. Van Verth, Lars M. Bishop, Essential
Mathematics for Games Interactive Applications.
A Programmers Guide, Morgan Kaufmann, 2004
10Supplementary Reading Physics
- Ian Millington, Game Physics Engine Development
How to Build a Robust Commercial-Grade Physics
Engine for your Game. 2nd edition, Morgan
Kaufmann 2010. - David M. Bourg, Physics for Game Developers,
OReilly 2002 - David H. Eberly, Game Physcis, Morgan Kaufmann,
2004
11Supplementary Reading Programming
- Erik Yuzwa, François D. Laramée, Learn C by
Making Games. Charles River Media 2007 - Bjarne Stroustrup, The C Programming Language
(any edition).
12Assessment
- coursework 50
-
- examination 50
-
13Why not Flash?
- Flash is excellent for small games
- Flash is good for Internet games
- No serious big game is written in Flash
- Large-scale project need professional approach to
programming, not just a scripting - C
- Java
14Games in Java? Java in Games?
- Java is too slow for games programming
- Java has memory leaks
- Java is too high-level
- Java application instalation is a nightmare
- Java isnt supported on games consoles
- No one uses Java to write real games
- Sun isnt interested in supporting Java gaming
15Games in Java? Java in Games?
- Java is too slow for games programming
- Java has memory leaks
- Java is too high-level
- Java application instalation is a nightmare
- Java isnt supported on games consoles
- No one uses Java to write real games
- Sun isnt interested in supporting Java gaming
MYTHS
16Games in Java? Java in Games?
- Java is too slow for games programming
- True in 1996.
- JDK 1.0 was 20 40 times slower than C
- J2SE 5.0 is typically 1.1 times slower
- Bottleneck is somewhere else (3D hardware, the
net) - Java has memory leaks
- Java is too high-level
- Java application instalation is a nightmare
- Java isnt supported on games consoles
17Games in Java? Java in Games?
- Java is too slow for games programming
- Java has memory leaks
- garbage collection
- Java is too high-level
- Java application instalation is a nightmare
- Java isnt supported on games consoles
- No one uses Java to write real games
- Sun isnt interested in supporting Java gaming
18Games in Java? Java in Games?
- Java is too slow for games programming
- Java has memory leaks
- Java is too high-level
- J2SE 1.4 full-screen exclusive mode (FSEM)
- JNI Java Native Interface
- JInput Game Controller API
- until DOOM it was C/C what was considered too
high level - Java application instalation is a nightmare
- Java isnt supported on games consoles
19Games in Java? Java in Games?
- Java is too slow for games programming
- Java has memory leaks
- Java is too high-level
- Java application instalation is a nightmare
- just use a good installation software (install4j)
- code bloat (eg. JRE 15 MB) but...
- which of modern games is less than, say, 600MB?
- Java isnt supported on games consoles
- No one uses Java to write real games
20Games in Java? Java in Games?
- Java is too slow for games programming
- Java has memory leaks
- Java is too high-level
- Java application instalation is a nightmare
- Java isnt supported on games consoles
- well, this one is (still) true...
- rumours on porting JVM to PS2 nothing released
- No one uses Java to write real games
- Sun isnt interested in supporting Java gaming
21Games in Java? Java in Games?
Puzzle Pirates Chrome Law and Order II Kingdom of
Wars Alien Flux Runescape Star Wars Galaxies
- Java is too slow for games programming
- Java has memory leaks
- Java is too high-level
- Java application instalation is a nightmare
- Java isnt supported on games consoles
- No one uses Java to write real games
- Sun isnt interested in supporting Java gaming
22Games in Java? Java in Games?
MOBILE GAMES
- Java is too slow for games programming
- Java has memory leaks
- Java is too high-level
- Java application instalation is a nightmare
- Java isnt supported on games consoles
- No one uses Java to write real games
- Sun isnt interested in supporting Java gaming
23Games in Java? Java in Games?
- Java isnt supported on games consoles
- No one uses Java to write real games
- Sun isnt interested in supporting Java gaming
- full-scren mode
- faster I/O, memory mapping
- nanosecond timers (v. 5.0)
- Java 3D
- Java Media Framework
- Java Communications API
- Java Games Profile
24Why not C?
- Java is better for education
- CISM policy
- anyway you are strongly advised to learn C
- which is widely used in industry
- C
- On-line Games
- Java
25Why not C?
- Java is better for education
- CISM policy
- anyway you are strongly advised to learn C
- which is widely used in industry
- C
- On-line Games
- Java
fortunately, I dont have to answer this question
now...
26Why Mathematics?
- Geometry a tool for drawing graphical elements
in 2D and 3D - Calculations make the player experience more
life-like - eg. rules of perspective
- 3D animation
27Why Physics?
- fall down accelerate hit go
- throw break fly
- ride rotate dig
- swim shoot
- aim strike bounce
- drive catch
- explode reflect jump
- run kick sail
28Outline
- Introductory Lecture (this one)
- C Basics Introducing Your Game Engine
- Maths Basics
- Thales Theorem and Perspective in 3D
- Roll and Fall Playing with the Laws of Motion
- Collisions, Momentum and Energy
- Resistance and Mechanics of Cars
- Explosions
- Physics Engine
- Physics of Rotational Motion
29Demo Applying Physics to Helicopter