3D Game Programming

[ Course slides ] [ Course program packages ]  [ Useful links ]


General information

Office Hour: Monady: 09:00: – 10:00

Office: Room 706

Email: wingo.wong@gmail.com or cswingo@cs.nctu.edu.tw

#ext. 56626

 

Teaching Assistants:

Name <Email>

Room

Office hour

曾義鈞 <kilaonlylove@gmail.com>

電資大樓 707

孫采荷

<locha0519@gmail.com>

電資大樓 707

陳萱 <hsuanchen.18@gmail.com>

電資大樓 707

楊翔宇 <suapys@gmail.com>

電資大樓 707

張家浩 <kahogeoff@gmail.com>

電資大樓 707

 

電資大樓 707

Microelectronics &

Information Systems

Research Building

Room 707

Tel. x59274


Course time schedule:

Monday: 13:20 – 15:10. Thursday: 09:00 – 09:50.

Room: ED102

Book: No book


Please form a group which consists of at almost three students.

When you submit your programming assignment, you must include /lib /programs, /boost_1_42 /include.

Notice that we will compile your program for marking. Please follow the instructions.


Score List (2017/10/08)


Assignment One Template [zip]

Assignment One Instruction [pdf]

 


Quizzes


Final Project

Presentation

What to do?

1. Submit your hardcopy final project report

2. Present and demo your work.

3. Presentation time: 15-20 minutes

 

Each group member must present and then each group performs a demo. Also you should submit a hard copy report.

Show clearly what you have done.

 

Report requirement

Term project requirement

Presentation Marking Scheme

 


Midterm

On-site programming tests

1. create a scene
2. use mouse to control
3. ray, volume queries
4. particle systems
5. simple animation, e.g., moving a light, changing size of objects, etc.
6. shadow, lighting, terrain, viewport, camera, materials, ray-plane intersection, etc.
All the materials that have been taught.

 


Proposal

Due date: 23th October, in class. Submit a hard copy in class.

The proposal should have 2 pages.

The following items should be included:

0. The information of the group members.

1. Introduction

2. Game Story

3. System requirement

4. How the game will be played?

5. Milestones

6. Work load distribution

7. SWOT

etc.

 


Lab Exercises:

 

Date:  Set One Instruction;

 

Date: Set Two Instruction;

 

Empty skeleton package [.NET2010]

 

Demo package [.NET2010]

 

You should follow the instruction and finish all the exercises.

 

 

 

 

 

 

 

 

IMPORTANCE for marking assignments.

Make sure that you (students):

1.     Must compile and build programs on .NET2010. Make sure that the file paths are relative to your main file. Do not use absolute file paths.

2.     OGRE3D : OgreSDK_vc9_v1-7-1.exe or up  

            http://www.ogre3d.org/download/sdk

      

       The version used in the course:

       OgreSDK_vc9_v1-7-1.exe

       2010-04-25 52.3 MB

 

http://sourceforge.net/projects/ogre/files/ogre/1.7/

 

       .NET2010 package with one example 3DGameCourse_Ogre_vc10_v1-7-1_NET2010.7z [NEW]

 

3. You may need to demo your programs to our TAs.

4. When you submit your assignments or projects, you should put all your files in one folder. Name your folder by starting with the homework ID and your student ID.  For example, if the homework ID is hw01, your student ID is 123456789 and your name is XYZ, then your folder name should be hw01_123456789_XYZ.

 

If your program cannot be built properly or there is a crash, the problems may be due to incompatible versions of your platform and my platform. To solve the problem: use the correct version and platform.


Course Evaluation

Three Programming Assignments and Reports: 35%

-First assignment: 10%

-Second assignment: 10%

-Third assignment: 15%

Programming Quizzes: 15%

Midterm (on-site programming tests): 10%

Final Project  (Presentation + (Content+Demo) + Report): 10%+ (20%)+10%


Course slides:

Topics

Contents

Source code(參考源程序)

0

Course Outline

Introduction to Game Development

Doxygen ( Documentation)

 

1

The Main Game Loop

Introduction to Engine Main Loop

 

2

3D Engine Training (1)

SceneNode Entity

Hierarchy

Camera

Viewport

Shadows

Multi SceneManagers

3

3D Engine Training (2)

Terrain (try different types of SceneManager)

Sky ( try different types and materials)

Fog (try it out!)

FrameListener_intro ( check command console)

FrameListener KeyEvents etc.

(Try unbuffered mode and buffered mode)

4

Ogre Programming Intermediate

Int. Tutorial One (Animation)

Int. Tutorial Two (Viewport ray)

Int. Tutorial Three (Query Mask)

Int. Tutorial Four (Volume selection)

 

 Character Animation Source Code

 RayQuery Source Code

 Simple Selection Source Code

 Simple Volume Selection Source Code

 New: Mapping between screen and scene

5

Geometry for Games

Creation of mesh in Ogre3D

Ogre manual mesh ppt

6

Advanced Ogre Topics and Cg programming

Sample program

(Reference: Editable Terrain Manager)

7

Introduction to Game Development

 

8

Game System Analysis

 

9

Game Mathematics

 

10

Scene Management

 

11

Terrain

 

12

Game AI - Path finding

 

13

Game AI - Steering behaviour

Example One (Constant force magnitude)

Example Two (Inverse distance)

14

Game AI - Finite State Machine

 

15

Game Physics - Particle system & Game Effect (FX)

Simple Net 1 (using springs)

Simple Net 2

16

Hero’s Journey   

Characters

skeleton demo source

17

Network Gaming

 

18

Introduction to MMOG

 

19

Non3D part and course summary

 

20

Project demo

 

 

Sample Demo (Written by me)

Simple OpenAL demo + Ogre3D (with source code)

 

Useful links

          OGRE3D main homepage, www.ogre3d.org/
         
Information on OGRE3D: http://www.ogre3d.org/wiki/index.php/Main_Page

          Tutorials: http://www.ogre3d.org/wiki/index.php/Ogre_Tutorials

          OGRE3D on wiki: http://en.wikipedia.org/wiki/OGRE_Engine

          Editable terrain editor: http://www.oddbeat.de/wiki/etm

          Wiki, http://en.wikipedia.org/

 

          Doxygen: http://www.stack.nl/~dimitri/doxygen/

 

          Blender:  https://www.blender.org/

          A Free 3D manipulator program.

 

          GIMP (Image manipulation program): http://www.gimp.org/

         You can edit the terrain by using GIMP. Note that the final image should be flattened and stored as gray-level image.

 

          MeshLab: http://meshlab.sourceforge.net/

“MeshLab is an open source, portable, and extensible system for the processing and editing of unstructured 3D triangular meshes. The system is aimed to help the processing of the typical not-so-small unstructured models arising in 3D scanning, providing a set of tools for editing, cleaning, healing, inspecting, rendering and converting this kind of meshes.”

 

          Live for speed ( Online racing simulator ) : http://www.lfs.net/

 

 

Last updated: 14th Feb. 2016