UTS: Game Programming
International Game Developers Association
Full name: 31004: Introduction to Game Programming
| Games Education |
|---|
| |
| Course |
Table of contents |
[edit] Teachers
[edit] Instructors
[edit] Guest speakers
- None
[edit] Course Background Information
[edit] Location
University of Technology, Sydney
[edit] Classification
See: Areas for classifing for your course.
Primary classification: Game Programming
Secondary classification: Graphics and Rendering
[edit] 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.
[edit] 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.
[edit] Time periods
14 Week semester
Weekly lecture: 2 hours
Weekly lab: 1 hours
[edit] Course Structure
[edit] 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.
[edit] 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.
[edit] 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
[edit] 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.
[edit] 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
[edit] Other materials
Papers, magazines, videos (add links to online materials)
[edit] 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.
[edit] Syllabus
(link to an uploaded syllabus file or external storage location)
[edit] Slides
(link to each file's storage location)
[edit] 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
[edit] Digital media used in class
e.g. Video, Multimedia sources, Audio
(link to each file's storage location)
[edit] Case studies
(link to each file's storage location) or each respective wiki page
[edit] Tutorial files
(link to each file's storage location)
[edit] Other materials
(link to an uploaded resources -- e.g. research papers -- or external storage location)
[edit] Analysis of learning methods
[edit] What worked
The main focus of the subject is on advanced rendering techniques. Students get a good understanding of Binary Space Partition trees.
[edit] 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.
