Game Programming
Introduction
1
Course content
■Introduction to Game Development
■Game System Analysis
■The Game Main Loop
■Game Engine Training
■Game Mathematics
■Geometry for Games
■Scene Management System
■Game AI
■Game Physics
■Characters
■Network Gaming
■Audio
2
Homework assignments, term project and exams
■One term project ( 10% ),
– The students will be divided into teams
( 2~3 )
– Use to code 2 and 3D real-time game
– Unity
– A precompiled library MUST be used for the
development of the term project and
homework assignments.
- Use to document ALL programs:
■7 and 12th exams (30%)
■Programming homework assignments
(5% )
Expertise
■Expertise
– Computer Graphics
– Geometric Modeling
– Physically-based simulation
– Character Animation
– Collision Detection
4
Game platform
■PC
– Single player
– Massive multi-player online game
( MMOG )
– Web-based Games
■Console ( Video game console )
– Sony PS5
– Microsoft Xbox
– Nintedo Switch
■Arcade ( Coin-operated entertainment machine
)
■Mobile
– Game Boy Advance ( GBA ) 5
Game development on PC
■Designed for office application
■Not for entertainment
■A virtual memory system
– Unlimited memory using
■But video memory is limited
■Open architecture
■Compatibility test is important
■Development is easy to setup
6
Game development on console
■Specific hardware designed for games
■Single user / single process OS
■In general no hard disk drive (??)
■Closed system
■Very native coding way
– Hardware related features
■Limited resources
– Memory
■One console runs, the others do!
7
Game types
■RPG (Role playing games)
■AVG (Adventure games)
■RTS (Real-time strategy games)
■FPS (First-person shooting games)
■Strategy game
■Simulation game
■Sports
■Puzzle games
8
Game team members
■Development Team
– Producers
– Executive producers
– Game designers
– Programmers
– Artists
– Level designers
– Sound engineers
■Sales and marketing
■Testers
■Game review committee
9
Game design
■Story telling
■Scripting
■Game play design
■Level design
■Numerical setup
■Game AI
■Sound FX setup
■Scene setup
10
Game art
■Terrain
■Character
■Models
■Textures
■Motion / Animation
■FX
■User Interface
11
Cloth draping simulation
Different textures can be applied to different regions of a garment.
Small wrinkles along seam lines are created automatically. 12
Multiple interacting objects
Interacting performance is achieved
for many deformable objects even though the contact regions are large.
This simulation was executed on a multicore machine. 13
Flowchart of game development
Basic Procedures for Game
Proposa
Development Testing
Idea l
Production Integration Debug Tuning
Concept Prototype Pre-alpha Alph Beta Final
Approval a
■Idea > Concept
Approval
■Proposal >
■Production Prototype
> Pre-
■Integration alpha
>
■Testing Alpha
– Debug >
– Tuning Beta
14
Concept design
■Game types
■Game world
■Story
■Features
■Game play
■Game product positioning
– Target player
– Marketing segmentation / positioning
■Risk
– SWOT
(Strength/Weakness/Opportunity/Threat)
15
Proposal
■System analysis
■Game design document
■Media design document
■Technical design document
■Game project
– Schedule
– Milestones / check points
– Risk management
■Proposal for testing
■Team building
16
Production
■High quality artworks
– Modeling
– Textures
– Animation
– Motion
Quality
– FX (Special Effects)
■Coding
>
■Marketing
Quanti
ty 17
Testing
■Alpha
– Debug
■Beta
– Number tuning
– Game play tuning
»Closed beta
»Open beta
■Critical testing
18
Bugs
B
■Bug Classification u
– Memory leaks g
– Free already freed resources Bug
Classification
– NULL dereferencing
– Show in different formats Bug Dispatch
– Synchronization errors
?
– Value outside domain Debug
– In terms of game play experience
N
Verify
■Principles Y
F
– Strict guidelines for bug classification
– Tester vs Debugger A
Q
19
Game software system
Game
NPC System Virtual Agent Trading System Story Game Play
Layer
Fighting System FX System Game AI Script System
Terrain Collision Character Dynamics Sound FX UI Engine
Layer
3D Scene Mngmt 2D Sprite Gamepad Audio Network
3D Graphics API 2D API Input Device OS API System
Layer
Hardware
20
System Layer – APIs (1/2)
■Graphics API
– DirectX Graphics
– OpenGL 3.0
■Input Device
– DirectX SDK – DirectInput
■Audio
– DirectX SDK – DirectSound / Direct3DSound / DirectMedia
– OpenAL
– Network
21
System Layer – APIs (2/2)
■OS API
– Win32 SDK
– MFC
■Network
– DirectX SDK – DirectPlay
– Socket library
■RakNet
“RakNet is a cross platform, open source, C++
networking engine for game programmers. A lower
level framework powers higher-level features such as
game object replication.”
22
Engine Layer (1/2)
■3D scene management system
– Scene graph
■Shaders
■2D sprite system
■Audio system
■Gamepad
■Hotkey
■Mouse
■Timers
■Network
■Driver development kit ( DDK ) interface
23
Engine Layer (2/2)
■Terrain
■Advanced scene management – space
partition
– BSP Tree
– Octree
■Character system
■Motion blending techniques
■Dynamics
■Collision detection
■SoundFX
■User interface
24
Game Play Modula
■NPC (Non-playable characters)
■Game AI
– Path finding
– Finite state machine
■Avatar
■Combat system
■FX system
■Script system
■Trading system
■Number system
25
Game development tools
■Visual C++/ C#/Java
– .NET
– Visual C/C++ 6.0+ SP5
■DirectX or OpenGL
■NuMega BoundsChecker
http://en.wikipedia.org/wiki/BoundsChecker
A memory checking tool
■Intel vTune
http://software.intel.com/en-us/articles/intel-vtune-amplifier-
xe/
■3D tools
– 3dsMax/Maya/Softimage/Blender/
■In-house tools 26
Programming Languages
for Game Design
• C++
• Java
• HTML5
• CSS3
• JavaScript
Presentation
■Review a game: Graphics, sound, gameplay, user
interface, etc. What do you find interesting, and
what do you dislike?
■What are the unique characteristics of this game?
Are there technical advances that this game
showcased (at the time of its release)?
■What games influenced your game? How did
your game influence other games? Sequels? Has
your game shaped media, television, film,
culture, society, etc.?