Download - Game Programming 101
![Page 1: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/1.jpg)
Game Programming 101
John See
![Page 2: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/2.jpg)
Agenda
• Games: Why are you doing this?!?• The game industry• Once upon a time…• What makes a Good Game• What is Game Programming?• Things every person in this
course/major/group should know
![Page 3: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/3.jpg)
Games. Why?!?!?
![Page 4: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/4.jpg)
The Industry• Video game industry sales in US
– 2006: $12.5 billion– 2007: $17.9 billion– 2008: $ ???
• PC-based game retail sales in US– 2004: $1.1 billion– 2005: $953 million– 2006: $970 million
![Page 5: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/5.jpg)
Console game industry• 2007 top sales (in units)
– Nintendo DS 8.5 million– Nintendo Wii 6.29 million– Xbox 360 4.62 million– PS2 3.97 million– PSP 3.82 million– PS3 2.56 million
![Page 6: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/6.jpg)
Game Scene in Malaysia
• Just to name some…– GameBrains– John Galt Games Malaysia (previously Pho
enix Games Studio)– Sherman3D– Unrealmind Interactive– Hatchlings Games– And, for a comprehensive listing…
![Page 7: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/7.jpg)
Fung Wan (Storm Riders) Online
![Page 8: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/8.jpg)
What people say– “A lot of the local talent in Malaysia have been leaving the
country for opportunities in other countries. We would like to reverse the brain drain” - Trey Ratcliff, CEO of JGG Malaysia
– “Programmers…They don’t know anything about data structures, algorithms. It is ridiculous…anybody can come in here and say I know MAYA. I can care less. I know MAX. I can care less. What I want to know is to describe to me the muscles of the upper torso. Tell me how they affect lighting and tell me how they affect motion. Show me that you know color theory. Tell me about full view vision.” - Brett Bibby, CEO of Gamebrains
![Page 9: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/9.jpg)
Once upon a time…
Spacewar! on a DEC PDP-1
![Page 10: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/10.jpg)
PDP what?
PDP-1 PDP-8 PDP-11
![Page 11: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/11.jpg)
Evolution of consoles
![Page 12: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/12.jpg)
PONG (1972)
ATARI / Nolan Bushnell#1: Commercially successful
![Page 13: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/13.jpg)
Golden Age of Video Arcade Games
Space Invaders (1978)#1: Shoot ‘em up
Atari Football (1978)#1: Sport game
Moon Patrol (1982)#1: Parallax scrolling
![Page 14: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/14.jpg)
Pac-Man (1980)
Toru Iwatani (Namco)#1: Maze game, Popular character/mascot
![Page 15: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/15.jpg)
Donkey Kong (1981)
Shigeru Miyamoto (Nintendo)#1: Platform game
![Page 16: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/16.jpg)
Vector Graphics– A new technical innovation in early 1980s– Raster graphic: Pixels– Vector graphic: Drawing
paths/information
4 4
![Page 17: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/17.jpg)
Battlezone (1980)
Ed Rotberg (Atari)#1: 3D graphics, first-person perspective
![Page 18: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/18.jpg)
Pole Position (1982)
Namco#1: Racing game, Pseudo-3D
![Page 19: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/19.jpg)
Star Wars (1983)
Mike Hally (Atari)#1: First person space shooter, Movie tie-in game
![Page 20: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/20.jpg)
Snipes (1983)
Drew Major (SuperSet)#1: Networked computer game
![Page 21: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/21.jpg)
King’s Quest (1984)
Roberta Williams (Sierra On-Line)#1: Adventure game (3rd person perspective)
![Page 22: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/22.jpg)
Early online gaming (early ’80s)
– BBSes and MUDs (early 1980s)– These will later evolved into what is known today
as MMORPG
![Page 23: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/23.jpg)
1985: Mario has landed– Nintendo Entertainment System– Bundled with Super Mario Bros. (the best-
selling video of all time, 40 million copies)
![Page 24: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/24.jpg)
1985-89: The Japs have landed
• Nintendo’s “series” games– Dragon Quest (1986)– The Legend of Zelda (1986)– Final Fantasy (1987)– Metal Gear (1987)
• Revolutionary gamepad design (D-pad)
![Page 25: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/25.jpg)
Nintendo’s Golden EraDragon
Quest
The Legend
of Zelda
Final Fantasy
Metal Gear
![Page 26: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/26.jpg)
The 1990s• 16-bit/32-bit era• Rise of 3D graphics• Multimedia capabilities – sound cards,
larger storage space (CD-ROM), 3D graphic accelerators
• Decline of arcades• Rise of handhelds• The consoles fight back
![Page 27: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/27.jpg)
Street Fighter 2 (1991)
CapcomOne of the last popular one-on-one fighting games
![Page 28: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/28.jpg)
The rise of handhelds (1989)
Nintendo Game Boy, bundled with Tetris, one of the top-selling games of all time (33 million
copies)
![Page 29: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/29.jpg)
SimCity (1989)
Will Wright (Maxis)#1: Simulation, city/community-building personal
game
![Page 30: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/30.jpg)
Wolfenstein 3D (1992)
Pseudo-3D, Apogee#1: Popularized first-person shooter (FPS)
genre on the PC
![Page 31: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/31.jpg)
Dune II (1992)
Westwood Studios#1: Real-time strategy (RTS) with fluid interaction with units, basic foundation for future RTS greats
![Page 32: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/32.jpg)
Alone In The Dark (1992)
Infogrames#1: 3D survival horror
![Page 33: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/33.jpg)
Doom (1993)
John Romero (id Software)#1: First-person shooter (FPS) with immersive 3D graphics, networked multiplayer gamin, custom
expansions
![Page 34: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/34.jpg)
Quake (1996)
John Romero, John Carmack (id Software)#1: Real 3D First-person shooter (FPS) over the
Internet, optimized real-time rendering
![Page 35: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/35.jpg)
The consoles fight back!
Atari Jaguar (1993), Sony PlayStation (1994), Sega Saturn (1995), Nintendo 64 (1996)
![Page 36: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/36.jpg)
The consoles fight back!
Atari Jaguar (1993), Sony PlayStation (1994), Sega Saturn (1995), Nintendo 64 (1996)
![Page 37: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/37.jpg)
The 6th Generation: 1998-2004• 128-bit era• Increased performance: processor
power, memory size, graphic processor
• Console gaming explosion• PlayStation 2 beats ‘em all!
![Page 38: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/38.jpg)
The Sims (2000)
Will Wright (Maxis)#1: Strategic life-simulation computer game, best-
selling PC game ever
![Page 39: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/39.jpg)
The Sims (2000)
Will Wright (Maxis)#1: Strategic life-simulation computer game, best-
selling PC game ever
![Page 40: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/40.jpg)
Half-Life & Counterstrike (1998-2001)
DMA Design#1: Best-selling PC first-person shooter (FPS) game to date, most played, most competed
![Page 41: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/41.jpg)
PlayStation 2 (2000)
Sony#1: The best-selling console of all time – 120 million
units sold by 2007, allows various accessories
![Page 42: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/42.jpg)
Xbox: Microsoft enters (2001)
Halo: Combat Evolved (Bungie Studios)#1: Kickstarts Microsoft’s involvement in the
console gaming market
![Page 43: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/43.jpg)
Nokia’s game-phone (2003)
N-Gage (2003), N-Gage QD (2004), Some N-Gage capabilities are built into Nokia N-Series
smartphones (2006)
![Page 44: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/44.jpg)
The 7th Generation: 2005-today
• Personal gaming experience• More powerful handhelds• Making advancements into society• Console wars: Nintendo vs. Sony vs.
Microsoft• The talk of town: Nintendo Wii
![Page 45: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/45.jpg)
Nintendo DS/DS Lite (2004)
Nintendo DS (2004), Nintendo DS Lite (2006)Dual-screen, built-in mic, wireless support
![Page 46: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/46.jpg)
PlayStation Portable (2004)
1st handheld console to use optical disc format, most powerful handheld to date (up to 64 MB memory, up to 333
Mhz CPU) Wireless and ad-hoc network support. Special editions
include digital TV tuner, camera, GPS, messenger and web browser
![Page 47: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/47.jpg)
Xbox 360 (2005)
Supports DVD media, very large storage space (up to 120 GB), 512 MB memory
Best-selling game: Halo 3
![Page 48: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/48.jpg)
PlayStation 3 (Nov 2006)
Most “powerful” video game console to date, but at a price $$
Dedicated GPU (NVIDIA RSX), up to 7 SixAxis Controllers via Bluetooth, an array of console accessoriesBest-selling game: Resistance: Fall of Man
![Page 49: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/49.jpg)
Nintendo Wii (Dec 2006)
Targets wider demographic of users, cheap and affordableWii Remote has built-in accelerometers and infrared
detectors to sense position in 3D space, traditional analog stick
Best-selling game: Wii Sports (pack-in)
![Page 50: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/50.jpg)
Console Wars
Wii!Feb 2006 Jan 2008
![Page 51: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/51.jpg)
What makes a GOOD GAME ?
Originality
Graphics Sound & Interaction
Gameplay
Replayability
Continuous Challenge/
Reward
![Page 52: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/52.jpg)
Game Programming !=
Game Design
![Page 53: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/53.jpg)
Design
Developmentaka Programming, Artwork, Multimedia
![Page 54: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/54.jpg)
Game Programming is NOT…• Playing games• Designing games without knowing
much about what else to do• Whether you’re a C++, Java, or Flash
pro, or you know a few hundred more• Profitable (at times)…I suppose…• About skipping meals and sleep time
![Page 55: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/55.jpg)
Game Programming is…• Giving the computer millions of
instructions on what to do• Interdisciplinary. Math, physics,
algorithms, AI, camera views, optimization, economics (?)
• Going the extra mile• Challenging yourself• Keeping up with the state-of-art
![Page 56: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/56.jpg)
Things every person in this course/major/group
should know
![Page 57: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/57.jpg)
The TGPs• TGP2261 – Game Programming I
– Basic game techniques and fundamentals– Tool: Flash
• TGP2271 – Game Programming II– 2D/3D core algorithms, more on AI – Tool: J2ME
• TGP2281 – Game Programming III– Implementation of techniques learnt– Tool: Microsoft DirectX API
• All 100% Coursework
![Page 58: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/58.jpg)
Pre-requisite Tree
Computer Programming II
Games Programming I
Games Programming II
Games Programming III
![Page 59: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/59.jpg)
What we will not cover• How to create a bad game• How to draw • ALL techniques, algorithms that are out
there…• Actual hardcore console game
programming (probably in the future!)• How to sell your game• How to use your
![Page 60: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/60.jpg)
Taboo questions/phrases• “Can you tell me what error message is
this?”• “How to score in this subject?”• “Why no final exam?…Then why learn so
much theory?”• “You guys don’t teach us much about
Flash.”• “Can I change major?”
![Page 61: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/61.jpg)
Grading
• Hand-up Tutorials 10%• Short Assignments (2) 10%• Consultation 10%• Game Project 70%
• Bonus marks of up to 5% for participation and effort
![Page 62: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/62.jpg)
Consultation 10%?• Your project group is required to attend
consultation to earn some marks• You are to pay your tutor 3 visits and your
lecturer 2 visits altogether. Only 1 visit per week!
• Please come during our consultation hours. Other than that, email for arrangements.
• You will be rewarded based on discussion of ideas, eagerness to learn and project progress
![Page 63: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/63.jpg)
If you aren’t clear…• Hand-up Tutorials
– Exercises that you may be required to hand-up after the tutorial session ends. Can happen anytime.
• Short Assignments– Longer extended exercises (may be extended
from tutorials or new tasks), in which you are given a few weeks to accomplish
![Page 64: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/64.jpg)
Project• Team of 1-2• Design and develop a refurbished Flash
game remake from a retro, classic video game
• Stage-by-stage hand-upsI. Game Proposal Submission + PresentationII. Progress Report + DemoIII. Final Product Presentation & Demo
• Proposal must first be approved by the instructors (after Part I)
![Page 65: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/65.jpg)
Instructors
John SeeBR 3005 / ext. 5478
Consultation: Mon 11-1, Fri 2-4Codes: C, C++Plays: PC & PS2
http://pesona.mmu.edu.my/~johnsee
Edwin LawBR 2024 / ext. 5477
Consultation: Mon 2-4, Thurs 2-4Codes: Java
Plays: Everything
![Page 66: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/66.jpg)
Books we will useFlash MX 2004 Game Programming By Craig Murray, Justin Everett-Church (Premier Press)
Macromedia Flash MX Game Design Demystified: The Official Guide to Creating Games with FlashBy Jobe Makar (Peachpit Press)
Macromedia Flash MX 2004 ActionScript: Training from SourceBy Derek Franklin, Jobe Makar (Peachpit Press)
And, anything else that comes by in the Internet
![Page 67: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/67.jpg)
Communities• GameDev.net• GamaSutra• DevMaster.net• Game Developers Conference (GDC) (every
game developer’s dream)• International Game Developers Association
(IGDA)– There’s an IGDA Malaysia Chapter! –
http://www.igda.org.my
• Our every own MMU Game Developers Club
![Page 68: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/68.jpg)
Game Programming Links• GameDev.net Programming
Tutorials/Articles• Amit’s Game Programming Information
Page• Game Programming Wiki (gpwiki)• Game AI Page• Many more…
![Page 69: Game Programming 101](https://reader036.vdocuments.net/reader036/viewer/2022081504/56813f23550346895da9c0d8/html5/thumbnails/69.jpg)
Game On?