University of Technology, Sydney

Staff directory | Webmail | Maps | Newsroom | What's on

31263 Introduction to Computer Game Programming

Warning: The information on this page is indicative. The subject outline for a particular session, location and mode of offering is the authoritative source of all information about the subject for that offering. Required texts, recommended texts and references in particular are likely to change. Students will be provided with a subject outline once they enrol in the subject.

Subject handbook information prior to 2017 is available in the Archives.

UTS: Information Technology: Software
Credit points: 6 cp

Subject level:

Undergraduate

Result type: Grade and marks

Requisite(s): 31264 Introduction to Computer Graphics OR 31140 Introduction to Computer Graphics
Anti-requisite(s): 31004 Introduction to Game Programming AND 32004 Game Programming

Recommended studies:

familiarity with programming concepts at an intermediate level and languages C# or C++ and Java

Description

Game programming involves a plethora of knowledge from different aspects of computing. This subject covers important game-specific programming techniques and algorithms such as 3D rendering, collisions, pathfinding and agent decision-making. Students gain sufficient knowledge to extend existing computer game engines or build a basic game engine from scratch.

Subject learning objectives (SLOs)

Upon successful completion of this subject students should be able to:

1. Illustrate an understanding of the concepts behind game programming techniques.
2. Implement game programming techniques to solve game development tasks.
3. Construct a basic game engine using open-source programming libraries.

Course intended learning outcomes (CILOs)

This subject also contributes specifically to the development of the following Course Intended Learning Outcomes (CILOs):

  • Identify and apply relevant problem solving methodologies (B.1)
  • Design components, systems and/or processes to meet required specifications (B.2)
  • Synthesise alternative/innovative solutions, concepts and procedures (B.3)
  • Apply decision-making methodologies to evaluate solutions for efficiency, effectiveness and sustainability (B.4)
  • Implement and test solutions (B.5)
  • Demonstrate research skills (B.6)
  • Communicate effectively in ways appropriate to the discipline, audience and purpose. (E.1)
  • Work as an effective member or leader of diverse teams within a multi-level, multi-disciplinary and multi-cultural setting (E.2)
  • Identify and apply relevant project management methodologies (E.3)
  • Be able to conduct critical self-review and performance evaluation against appropriate criteria as a primary means of tracking personal development needs and achievements (F.1)

Teaching and learning strategies

The material will be presented in three hours each week: 1 hour lecture, and 2 hours of combined tutorial/laboratory class.

For each game programming technique included in the content, it is basically a 3-step learning process
1. discuss it in a lecturer-led discussion in the "lecture"
2. learn how to implement it in the weekly lab, and
3. apply it within your game engine, which will be the foundation of your game submission

The quality of learning depends almost entirely on YOU. The subject delivery is basically a platform to facilitate your self-driven learning, and the lecture/tutors there to guide you as much as possible.

It is therefore important that you spend enough time out-of-class trying out the activities provided beforehand, i.e., the lab exercises. It is only then can you have meaningful discussions and fruitful interactions in class hours. As a guide, the university regards a 6 credit point subject as requiring 9-12 hours of study per week, including class time.

Content (topics)

Major topics covered in this subject are:

  • 3D rendering in games,
  • animation of game objects,
  • basic physics in games,
  • collision detection and handling, and
  • artificial Intelligence techniques for movement and decision-making.

Assessment

Assessment task 1: Participation

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2 and 3

This assessment task contributes to the development of the following course intended learning outcomes (CILOs):

E.1

Type: Exercises
Groupwork: Individual
Weight: 10%
Criteria:

Students will be graded individually on their contribution.

Criteria linkages:
Criteria Weight (%) SLOs CILOs
Lab Participation 70 1, 2, 3 E.1
Discussion forum participation 30 1, 2, 3 E.1
SLOs: subject learning objectives
CILOs: course intended learning outcomes

Assessment task 2: Programming Exercises

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1 and 2

This assessment task contributes to the development of the following course intended learning outcomes (CILOs):

B.1, B.2, B.3, B.5 and B.6

Type: Laboratory/practical
Groupwork: Individual
Weight: 15%
Criteria:

Students will be graded individually on their code submissions.

Criteria linkages:
Criteria Weight (%) SLOs CILOs
Functionality (ability to understand and research techniques taught in class to solve lab problems using code) 70 1, 2 B.1, B.2, B.3, B.6
Code Quality (ability to code in a modular manner) 30 1, 2 B.5
SLOs: subject learning objectives
CILOs: course intended learning outcomes

Assessment task 3: Quiz

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2 and 3

This assessment task contributes to the development of the following course intended learning outcomes (CILOs):

B.1, B.2, B.3 and B.4

Type: Quiz/test
Groupwork: Individual
Weight: 15%
Criteria:

Students will be graded individually and marks are allocated per question as will be specified in the quiz.

Criteria linkages:
Criteria Weight (%) SLOs CILOs
Quiz grades (ability to apply class concepts to solve quiz problems) 25 1, 2, 3 B.1
Quiz grades (understanding design principles taught in class) 25 2, 3 B.2
Quiz grades (ability to apply class concepts to articulate conceptual designs in writing) 25 2, 3 B.3
Quiz grades (ability to apply class concepts to make design decisions based on problem scenarios) 25 1, 2, 3 B.4
SLOs: subject learning objectives
CILOs: course intended learning outcomes

Assessment task 4: 3D Game (Alpha)

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2 and 3

This assessment task contributes to the development of the following course intended learning outcomes (CILOs):

B.2, B.3, B.5, B.6, E.1, E.2, E.3 and F.1

Type: Project
Groupwork: Group, group and individually assessed
Weight: 20%
Criteria:

Students will be graded with both a group component and an individual component. Details will be provided in the assignment specification sheet.

Criteria linkages:
Criteria Weight (%) SLOs CILOs
Functionality (ability to understand and research techniques taught in class to implement gameplay behaviors in code, as a team) 60 1, 2, 3 B.2, B.3, B.6, E.2, E.3
Code Quality (ability to code in a modular and extensible manner that facilitates team coding) 25 1, 2, 3 B.5, E.2
Group Peer Review (ability to critique own game based on class concepts) 10 1, 2, 3 E.1, F.1
Individual Peer Review (ability to assess and justify own/peer contribution as part of the team) 5 1, 2, 3 F.1
SLOs: subject learning objectives
CILOs: course intended learning outcomes

Assessment task 5: 3D Game (Gold Master)

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2 and 3

This assessment task contributes to the development of the following course intended learning outcomes (CILOs):

B.2, B.3, B.5, B.6, E.1, E.2, E.3 and F.1

Type: Project
Groupwork: Group, group and individually assessed
Weight: 40%
Criteria:

Students will be graded with both a group component and an individual component. Details will be provided in a separate assignment specification sheet.

Criteria linkages:
Criteria Weight (%) SLOs CILOs
Functionality (ability to understand and research techniques taught in class to implement gameplay behaviors in code, as a team) 70 1, 2, 3 B.2, B.3, B.6, E.2, E.3
Code Quality (ability to code in a modular and extensible manner that facilitates team coding) 10 1, 2, 3 B.5, E.2
Group Peer Review (ability to critique own game based on class concepts) 8 1, 2, 3 E.1, F.1
Individual Peer Review (ability to assess and justify own/peer contribution as part of the team) 2 1, 2, 3 F.1
Game Quality (ability to combine all functionality into a coherent game) 10 1, 2, 3 B.2, B.3, B.5, B.6, E.2, E.3
SLOs: subject learning objectives
CILOs: course intended learning outcomes

References

Learning XNA 4.0 by Aaron Reed
http://proquestcombo.safaribooksonline.com.ezproxy.lib.uts.edu.au/book/programming/game-programming/9781449397210

Artificial Intelligence for Games By Ian Millington, John Funge
http://site.ebrary.com/lib/utslibrary/docDetail.action?docID=10378999

Physics Modeling for Game Programmers
http://site.ebrary.com/lib/utslibrary/docDetail.action?docID=10065752

C# Cookbook, 2nd Edition
http://proquest.safaribooksonline.com.ezproxy.lib.uts.edu.au/0596100639

Building XNA 2.0 Games: A Practical Guide for Independent Game Development
http://www.springerlink.com.ezproxy.lib.uts.edu.au/content/x5r313/

XNA 3.0 Game Programming Recipes: A Problem-Solution Approach
http://www.springerlink.com.ezproxy.lib.uts.edu.au/content/h08240

Microsoft XNA Game Studio 3.0 Unleashed
http://proquest.safaribooksonline.com.ezproxy.lib.uts.edu.au/9780768688900

And the World Wide Web.

Other resources

UTSOnline
http://online.uts.edu.au