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

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

TA Dobromir Todorov - Dobry
Week Content Notes Assignment





Programming Languages

  • C++
  • ActionScript3



  • Hello world
  • Simple C programming
  • Variable
  • Loop
  • If
  • Pointer and array
  • Functions and header
  • Class and structure
[Variable, loop, if and array]  [Note1]  [Note2]  [Note4]  [Note3] 


Guest Lecture

  • Game Design and Programming
  • How to become a Game Design
  • 10 Design criteria


Game Anatomy

  • Interactive applications
  • Script Languages
  • XML
  • Text and binary data
  • Event-driven and sequential programming


Computer Graphics


2D Graphics

  • Image
    • Intensity perception
    •  Dynamic Range
  •  Color and Light
    • Tri-chromacy
    • Color spaces
  • Image file formats
  • Image Processing
    • Color Quantization
    • Sampling
    • Filtering
    • Resampling
    • NPR
  • Two-image processing
    • Compositing
    • Image warping


2D UI and Flash

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



  • What's OGRE3D
  • Install OGRE3D
  • Fundamental OGRE3D


OGRE 3D & Hikari

  • What's OGRE3D
[OGRE3D and Hikari]  [Flash Menu] 


OGRE 3D Animation

  • Animation
  • Pick
[OGRE3D Animation]  [Maya OGRE Export]  [Examples]  [Walk Examples]  [Pick Examples] 


OGRE 3D Examples

  • Sample Examples for OGRE3D
[OGRE3D Examples] 


OGRE 3D Roller Coaster

  • Roller coaster concept
  • Track construction: straight line and BSpline
  • Car
[OGRE3D Roller Coaster] 


Kinect SDK


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

  • 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%
  • 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