UTS: Game Programming

International Game Developers Association

Jump to: navigation, search

Full name: 31004: Introduction to Game Programming

 Games Education 

Course


Contents

Teachers

Instructors

Guest speakers

  • None

Course Background Information

Location

University of Technology, Sydney

Classification

See: Areas for classifing for your course.

Primary classification: Game Programming


Secondary classification: Graphics and Rendering


Student background needed

Mostly undergraduate students from the Faculty of Information Technology, a couple of students from Faculty of Engineering and a few graduate students.

Quota of 30 students.

Course prerequisites

(describe the course's prerequisites in terms of skills that students need to know)

Students must have

  • completed a Data Structures subject
  • completed Computer Graphics or an equivalent subject
  • be able to program in OpenGL using one of C, C++, Java, C#

This is a programming intensive subject. Final porgrams can be as large as 15,000 lines of code.

Time periods

14 Week semester

Weekly lecture: 2 hours

Weekly lab: 1 hours

Course Structure

Course description

This subject covers game-specific programming techniques, algorithms, game testing, game logic, multimedia programming, networking and server design and optimisation of real-time 3D rendering. Students gain sufficient knowledge to extend existing computer game engines or build a basic game engine from scratch.


Course learning objectives

At the end of this subject students will be able to:

1. Understand and apply principles and technologies behind computer game engines.

2. Understand how games function in terms of physics, modeling, AI, networking and graphics.

3. Extend the functionality of an existing game engine or build a basic game engine from scratch.


Week by week topics

Overview of Game Engines B-spline and Bezier Curves Visibility Algorithms BSP Trees Motion Control Collision Detection Interactive Control Lighting Behaviour and AI Animation TBD Assignment Presentations

Course Materials & Facilities Used

Here you can link to and/or describe books and other materials you used for this course. Feel free to create new pages for each item here if a page for it does not yet exist.

Books

3D Games: Real-Time Rendering and Software Technology, Volume 1 by Alan Watt, Fabio Policarpo

3D Games Animation and Advanced Real-time Rendering, Volume 2 Alan Watt, Fabio Policarpo


Other materials

Papers, magazines, videos (add links to online materials)

Software (engines, tools)

Students are expected to build a simple game engine from scratch.

Approved languages and packages

   * Languages: C, C++, C#, Java
   * IDEs: Visual Studio .NET, Eclipse
   * Graphics: OpenGL, jogl (OpenGL bindings for Java), GLU
   * Higher level libraries: Simple DirectMedia Layer (SDL) http://www.libsdl.org/
   * Tao - Mono -- as reference and to extract selected files/packages, do not submit th whole thing with your assignment http://www.mono-project.com/Tao
   * CSOpenGL  http://sourceforge.net/projects/csopengl/ -

Disapproved languages and packages

   * Java3D -- scenegraph based programming, a different paradigm. We are constructing things at a lower level in this subject
   * GLUT -- SDL should be used for windows management
   * DirectX -- you should not need it, use SDL instead


Additional libraries for sound, joystick support, etc are also allowed.

Syllabus

(link to an uploaded syllabus file or external storage location)


Slides

(link to each file's storage location)


Assessment materials

Ass1: 30% Basic World-- Build a simple world. Due: Week 5

Ass2: 35% Interactive World -- Extend your basic world with user interaction, possibly incorporating multiple cameras looking at the same world.Due: Week 9

Ass3: 35% Game or Highly Interactive World -- A simple 3D game or a series of rooms with interesting user interaction. Due: Week 14


Digital media used in class

e.g. Video, Multimedia sources, Audio

(link to each file's storage location)


Case studies

(link to each file's storage location) or each respective wiki page


Tutorial files

(link to each file's storage location)


Other materials

(link to an uploaded resources -- e.g. research papers -- or external storage location)


Analysis of learning methods

What worked

The main focus of the subject is on advanced rendering techniques. Students get a good understanding of Binary Space Partition trees.


What didn't work

Students have difficulty building and modifying large programs, especially ones with complex BSP like structures and graphics elements. There isn't sufficient time to implement most of topics we cover in class, so different students focus on different aspects.

Personal tools