Games Fundamentals Introduction Jarek Francik Kingston University 2 February 2007 1 February 2008 6 February 2009 5 February 2010 4 February 2011.

Slides:



Advertisements
Similar presentations
Lecture 0: Course Overview
Advertisements

Brief Introduction to Java and C# Dahai Guo Oracle Certified Java Programmer (SCJP) Associate Professor and Program Director Software Engineering Program.
Chapter 3.2 C++, Java, and Scripting Languages. 2 C++ C used to be the most popular language for games Today, C++ is the language of choice for game development.
Objects First with Java A Practical Introduction using BlueJ
Chapter 3.2 C++, Java, and Scripting Languages “The major programming languages used in game development.”
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 1 Introduction/Overview Wed. 9/6/00.
What’s in a Multimedia or Interactive Games Degree? The opportunity to experience –Design techniques –Technical aspects –Make real applications –Working.
CS 282 Simulation Physics Lecture 1: Introduction to Rigid-Body Simulation 1 September 2011 Instructor: Kostas Bekris Computer Science & Engineering, University.
Chapter 3.2 C++, Java, and Scripting Languages hacked by jeffery.
School of Computer ScienceG53FSP Formal Specifications1 G53FSP Formal Specification Dr. Rong Qu Course Introduction
CO320 Introduction to Object- Oriented Programming Michael Kölling 3.0.
5.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
CMSC 202 Computer Science II for Majors Fall 2009 Introduction.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
Myths1 The Myths (and Truths) of Java Games Programming Andrew Davison Dept. of Computer Engineering Prince of Songkla University Hat Yai, Songkhla
1 ENG236: Introduction (1) Rocky K. C. Chang THE HONG KONG POLYTECHNIC UNIVERSITY.
Paul Trani Adobe Certified Instructor/Expert Resources:
Introduction to Computer Games and Graphical System Lecture #1: Lecture #1: Introduction, Overview Introduction, Overview Xu.Zhu Xu.Zhu SIT, Shanghai,
1 CO Games Concepts Week 24 Preparation for next year Gareth Bellaby.
Java Introduction 劉登榮 Deng-Rung Liu 87/7/15. Outline 4 History 4 Why Java? 4 Java Concept 4 Java in Real World 4 Language Overview 4 Java Performance!?
INE2720 Web Application Software Development General Information.
Orange Coast College Business Division Computer Science Department CS 116- Computer Architecture Course Orientation.
Fall AboutMichael Fung, CS&E, The Chinese University of HK1 CSC1030 Hands-on Introduction to JAVA Dept of Computer Science and Engineering The.
CO1301: Games Concepts 2014 Dr Gareth Bellaby on behalf of Dr Nick Mitchell (Room CM 224) Lecture 1.
School of Management & Information Systems
1 CO Games Development 1 Week 1 Introduction to AI Gareth Bellaby.
CS 0004 –Lecture 1 Wednesday, Jan 5 th, 2011 Roxana Gheorghiu.
Symposium 2001June 24, 2001 Curriculum Is Just the Beginning Chris Stephenson University of Waterloo.
Foundation Programming Introduction. Aims This course aims to give students a basic understanding of computer programming. On completing this course students.
CO1301: Games Concepts Dr Nick Mitchell (Room CM 226) Material originally prepared by Laurent Noel.
FALL 2012 Dr. Ghada Drahem Facult y of Engineering Computer Engineering Department.
Programming Fundamentals 2: Background/ F II Objectives – –give a non-technical overview of Java Semester 2, Background.
CMSC 202 Computer Science II for Majors Object-Oriented Programming.
M Dixon 1 Soft – Module Introduction and HTML.
CC2007N Software Engineering I Week 1: 1)Introduction to the Module 2)Introduction to Software Engineering. Software Life Cycle models.
James Tam CPSC 203: Introduction To Computers (Independent Study) James Tam.
CO1301: Games Concepts Dr Nick Mitchell (Room CM 226) Material originally prepared by Gareth Bellaby.
20-753: Fundamentals of Web Programming 1 Lecture 1: Introduction Fundamentals of Web Programming Lecture 1: Introduction.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
Introduction University of Sunderland CIT304 Harry R Erwin, PhD.
CS355 Advanced Computer Architecture Fatima Khan Prince Sultan University, College for Women.
INTRODUCTION TO JAVA AND ANDROID. Slide 2 Our Ecosystem Java Eclipse Android SDK.
1 The module aims to: n Extend the concepts and practical implementation of the relational model. n Introduce the concepts of Object Oriented and Object-
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
Object-Oriented Analysis and Design Fall 2009.
CSNB334 Advanced Operating Systems Course Introduction Lecturer: Abdul Rahim Ahmad.
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
Mr C Johnston ICT Teacher
GAM666 – Introduction To Game Programming ● Programmer's perspective of Game Industry ● Introduction to Windows Programming ● 2D animation using DirectX.
INTRODUCTION TO JAVA AND ANDROID. Slide 2 Our Ecosystem Java Eclipse Android SDK.
Introduction to C# Programming with Microsoft.NET AY
ITP 109 Week 2 Trina Gregory Introduction to Java.
Web Application Development 1 Course Introduction.
COURSE OUTCOME COURSE DESCRIPTION  This course will introduce the essential topics in multimedia application development.  It includes concepts in.
1 Object-Oriented Software Design l Week 1 nIntroduction n Java revision.
6.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
Microprocessor Systems
Object Oriented Programming in
Objects First with Java A Practical Introduction using BlueJ
NWEN 243 Network Applications
22446: Microprocessors Introduction
Software Architecture in Practice
Interactive Multimedia CSC253
Objects First with Java A Practical Introduction using BlueJ
Objects First with Java A Practical Introduction using BlueJ
CO Games Concepts Week 25 Preparation for next year
CS 2530 Intermediate Computing Dr. Schafer
Objects First with Java A Practical Introduction using BlueJ
Introduction to Development Frameworks CIM2564
Presentation transcript:

Games Fundamentals Introduction Jarek Francik Kingston University 2 February February February February 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 office: SB 318 office hours: Thu 2 – 3, Fri Dr Vasilis Arguriou 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 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 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  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? 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 Puzzle Pirates Chrome Law and Order II Kingdom of Wars Alien Flux Runescape Star Wars Galaxies

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 MOBILE GAMES

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 anyway you are strongly advised to learn C++ which is widely used in industry 1. C++ 2. On-line Games 3. Java fortunately, I don’t have to answer this question now...

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 downacceleratehitgo throwbreak fly riderotatedig swimshoot aimstrikebounce drivecatch explodereflectjump runkicksail

Outline 1. Introductory Lecture (this one) 2. C++ Basics: Introducing Your Game Engine 3. Maths Basics 4. Thales Theorem and Perspective in 3D 5. Roll and Fall: Playing with the Laws of Motion 6. Collisions, Momentum and Energy 7. Resistance and Mechanics of Cars 8. Explosions 9. Physics Engine 10. Physics of Rotational Motion

Demo: Applying Physics to Helicopter