Title: office hours: Tue 1:30 3, Fri 11 12 pm. Lectures: Fri 1
1Games FundamentalsIntroduction
- Jarek Francik
- Kingston University
- 2 February 2007
- 1 February 2008
2Outline
- Facts
- Games Fundamentals what is it about?
- Why not Flash?
- Why Java?
- Why Mathematics?
- Why Physics?
- Outline
- Helicopter
3Facts
- Dr Jaroslaw (Jarek) Francik Yarek
- jarek_at_kingston.ac.uk
- office SB 318
- office hours Tue 130 3, Fri 11 12 pm.
- Lectures Fri 12 130 pm SB 224
- Workshops Fri 230 4 pm SB 224
- flexibly exchanged...
4Games 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
5Module Goals, Learning Outcomes, Indicative
Curriculum
6Core Text
- Wendy Stahler, Fundamentals of Math and Physics
for Game Programmers, Pearson Prentice Hall 2006
7Support Texts
- Andrew Davison, Killer Game Programming in Java,
OReilly, 2005 - David Brackeen, Developing Games in Java, New
Riders 2004 - Christopher Tremblay, Mathematics for Game
Developers, Thomson Course Technology 2003 - David M. Bourg, Physics for Game Developers,
OReilly 2001 - James M. Van Verth, Lars M. Bishop, Essential
Mathematics for Games Interactive Applications.
A Programmers Guide. Morgan Kaufmann, 2004 - David H. Eberly, Game Physcis, Morgan Kaufmann,
2004
8Assessment
- coursework (mathematics) 25
- 1 Feb 15 Feb 14 March
- coursework (physics) 25
- 14 March 11 April 2 May
- examination 50
- mid-May
9Why 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
10Games 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
11Games 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
12Games 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
13Games 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
14Games 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
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
- 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
16Games 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
17Games 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
18Games 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
19Games 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
20Why 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
21Why 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
22Why 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
23Outline
- Introductory Lecture (this one)
- Java 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
24Outline
- Explosions
- Physics Engine
- Go Round and Round Physics of Rotational Motion
- TBA (Logical games? Theory of Games? Chess?
Artificial Intelligence?) - Additional lecture in SL?
25Demo Applying Physics to Helicopter