Download Document

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Games Fundamentals
Introduction
Jarek Francik
Kingston University
2 February 2007
1 February 2008
6 February 2009
5 February 2010
4 February 2011
Outline…








Facts
Games Fundamentals – what is it about?
Why not Flash?
Why C++?
Why Mathematics?
Why Physics?
Outline
Helicopter
Facts

Dr Jaroslaw (Jarek) Francik – Yarek
[email protected]
office: SB 318
office hours: Thu 2 – 3, Fri 10-11

Dr Vasilis Arguriou
[email protected]
office: SB 106
office hours: t.b.a.

Helpers:
Mr. Ali Alinejad
Mr. Joshua Mee
Mr. Alex Robsinson
Mr. Jan Wilk
Facts

Lectures & Workshops: Fri 12 – 4 pm
SB 124/127
2 hrs lecture + 2 hrs workshop, flexible
1 hour lunch break in the middle
Games 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
Module Goals, Learning Outcomes,
Indicative Curriculum

see Module Guide...
Core Text

Wendy Stahler, Fundamentals of Math and
Physics for Game Programmers,
Pearson Prentice Hall 2006
Core Text

Michael Dawson, Beginning C++ through
game programming,
Cengage Learning 2010
Supplementary 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
Programmer’s Guide, Morgan Kaufmann, 2004
Supplementary 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, O’Reilly
2002

David H. Eberly, Game Physcis, Morgan Kaufmann, 2004
Supplementary 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).
Assessment

coursework
50%

examination
50%
Why 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
Games 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 isn’t supported on games consoles
No one uses Java to write real games
Sun isn’t interested in supporting Java gaming
Games 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 isn’t supported on games consoles
No one uses Java to write real games
Sun isn’t interested in supporting Java gaming
MYTHS
Games 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 isn’t supported on games consoles
Games 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 isn’t supported on games consoles
No one uses Java to write real games
Sun isn’t interested in supporting Java gaming
Games 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 isn’t supported on games consoles
Games 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 isn’t supported on games consoles
No one uses Java to write real games
Games 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 isn’t 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 isn’t interested in supporting Java gaming
Games in Java? Java in Games?







Puzzle Pirates
Java is too slow for
games programming
Chrome
Java has memoryLaw
leaks
and Order II
Kingdom of Wars
Java is too high-level
Alien Flux
Java application instalation
is a nightmare
Runescape
Java isn’t supported
on Galaxies
games consoles
Star Wars
No one uses Java to write real games
Sun isn’t interested in supporting Java gaming
Games in Java? Java in Games?







Java is too slow for games programming
Java has memory leaks
MOBILE GAMES
Java is too high-level
Java application instalation is a nightmare
Java isn’t supported on games consoles
No one uses Java to write real games
Sun isn’t interested in supporting Java gaming
Games in Java? Java in Games?



Java isn’t supported on games consoles
No one uses Java to write real games
Sun isn’t 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
Why not C++?


Java is better for education
CISM policy
anyway you are strongly advised to learn C++
which is widely used in industry
1. C++
2. On-line Games
3. Java
Why not C++?


Java is better for education
CISM policy
fortunately, I don’t have to answer this
question now...
anyway you are strongly advised to learn C++
which is widely used in industry
1. C++
2. On-line Games
3. Java
Why 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
Why 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
Outline
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
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
Demo: Applying Physics to Helicopter