3D Game Programming

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


General information

Office Hour: Monday: 09:00 - 10:00

Office: Room 527

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

#ext. 56626

 

Teaching Assistants

 

電資大樓 707

Microelectronics &

Information Systems

Research Building

Room 707

Tel. x59274


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

4. Live Demo. Show source code and explain it

 

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


Proposal

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:

 

Free time exercise:  Set One Instruction;

 

Free time exercise: Set Two Instruction;

 

Empty skeleton package [.NET2010]

 

Demo package [.NET2010]

 

You should follow the instruction and finish all the exercises.

 


Old 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

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 /span>

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: 13th Sep. 2020