3D Computer Game Design
2012 All
Instructors Yu-Chi Lai
Office Hour

9:00AM~11:00AM, Wed or by appointment

TA Chun-Wei Wang
Yu-Hsiang Hsu
Yueh-Ju Sung
Lectures 1
Week Content Notes Assignment

01

Administrative

  • Tell us about yourself.
  • Experience...
    • OpenGL?
    • C++
    • Math?
  • Why did you sign up for this class?
  • What do you hope to learn?
[Notes] 

02

Game Anatomy

  • Work for modeling
  • Designing interactive software
  • Interactive applications
  • Script Languages
  • XML
  • Text and binary data
  • Event-driven and sequential programming
[Notes] 

03

Input Device

  • Sensors in market
  • Wii Remote & Fit
  • PS move
  • XBOX 360 Kinect
  • Gyro
  • GPS
  • Accelerator
  • IPhone sensor
[Notes] 

04

Local Illumination

  • Simple reflection model
  • Simple light source model
  • Shading methods
[Notes] 
05

Texture Pipeline

  • Graphics Pipeline
  • Texture Mapping
  • Mapping Techniques
  • Advanced Texturing
[Notes] 

06

Multiple pass

  • Reflection
  • Transmission
  • Caustics
  • Instant Radiosity
  • Shadow
    • Dirty shadow
    • Shadow map
    • Shadow volume
    • Ambient occlusion
[Notes] 

07

CUDA

  • Introduction to GPU
  • Introduction to CUDA
  • Graphics Pipeline
  • Rendering process
  • Shader
  • Stream processor
  • Memory architecture
[Notes] 

08

Shader

  • Vertex shader
  • Pixel shader
  • GPU programmming language
  • GLSL Examples
[Notes] 

09

Acceleration

  • Spatial partitioning
  • Uniform grid
  • Octree
  • Kd-tree
  • BSP-tree
  • BVH
[Notes] 

10

LOD and Terrain

  • Level of detail selection
  • LOD Error Metrics
  • Progressive LOD
  • View Dependent LOD
  • Terrain LOD
  • Terrain Dynamic LOD
  • Terrain Generation
[Notes] 

11

AI

  • FSM
  • Decision trees
  • Rule-based systems
  • Path Finding
[Notes] 

12

Physics

  • Differential Equations
  • Overview of differential equation
  • Initial value problem
  • Explicit numeric methods
  • Implicit numeric methods
  • Modular implementation
[Notes] 

13

Particles

  • Particle overview
  • Second order motion
  • Particle system
  • Forces: gravity, springs …
  • Implementation and Interaction
  • Simple collisions
[Notes] 

14

Network

  • Introduction to Network in Game
  • Latency
  • Network Protocol
[Notes] 
Lectures 2
Week Content Notes Assignment

Aux 01

2D UI and Flash

  • User interface
  • Flash
  • Actionscript and Flash
  • Actionscript and XML
  • Flash and OGRE3D
[AS3 Examples]  [AS3 Games]  [AS3 Notes 2]  [AS3 Notes 1]  [2D and UI] 

Aux 02

OGRE3D

  • What's OGRE3D
  • Install OGRE3D
  • Fundamental OGRE3D

OGRE 3D & Hikari

  • What's OGRE3D

OGRE 3D Animation

  • Animation
  • Pick

OGRE 3D Examples

  • Sample Examples for OGRE3D

OGRE 3D Roller Coaster

  • Roller coaster concept
  • Track construction: straight line and BSpline
  • Car
[OGRE3D Examples]  [Maya OGRE3D Export]  [OGRE3D Animation]  [OGRE3D and Hikari]  [OGRE3D]  [Short tutorial]  [Terrain]  [OGRE3D Roller Coaster] 

Aux 03

Kinect SDK

[Notes] 

Aux 04

Guest Lecture

  • Game Design and Programming
  • How to become a Game Design
  • 10 Design criteria
[Notes 1]  [Notes 2]  [Notes 2] 

Aux 05

Maya Script

Pymel

[Note]  [Pymel-1.0.3] 
PreRequisites

Technically, Computer Graphics and good C++ programming skills. 

Grading
  • Fall Semester
    • 3 CS Projects (10%, 10%, 15%)
    • Course game presentation (10%)
    • Maya midterm and Final (20%, 25%)
    • Review (10%)
     
  • Spring Semester
    • A 3D Game: 100%
Syllabus
  • Anatomy of a game
  • Introduction to computer graphics.
    • What problems are tried to be solved
    • Complexity of game development. (games cover a big part of computer engeneering)
  • Introduction to object oriented programming
    • Overview of classes, methods and attributes
  • 2D graphics: basic transformations, image operations etc.
  • Designing a simple 2D game ( Questions: students need to learn another programming tools)
    • Short tutorial of a action script 3 game (give a sense what are the problems of user control, animating characters, collision detection, artificial intelligence etc.)
    • Example games: Gun Shooting or Space Ship Battle (very very basic just get the students the sense of developing a game)
    • Project: given a skeleton program write a very simple 2D game.
  • Introduction to Ogre3D
    • Simple beginner’s application
    • Entities, SceneNodes and SceneManager
    • Basic mesh loading
    • Basic light
    • Basic materials
    • I/O mouse and keyboard
    • Project: create a simple scene
  • Developing user interface
    • Introduction to window applications (each element of the interface is registered as a window and sends events to the main application)
    • Event listeners
    • Introduction to Actionscript3 for simple menus and buttons
    • XML and Actionsctipt3 for dynamic contents (loading entire menu from an XML file)
    • Custom event listeners in Actionscript3
    • Sending external function calls from flash to C++ programs, passing parameters.
    • Receiving external function calls from C++ to flash.
    • Introduction to the hikari library
    • Binding flash calls in C++ event listeners
    • Whole system integration tutorial and examples
  • Loading animated characters and skeletons in Ogre3D
    • Animation, walking between points, and basic quaternions
    • Project: create flash interface to control character animations and environment conditions like light, fog etc.
  • RaySceneQueries and SceneQuery Masks for ray intersections
  • Mouse picking (3D object selection)
  • Physics: introduction to bullet