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

This subject introduces the fundamentals of programming 3D games in existing game engines. This subject aims to build student familiarity with the API library of a specific game engine (such as Unity 3D) as well as give students an appreciation of the technology and algorithms that form those engines. This establishes the skills required to successfully contribute to the significant development capstone projects in the final year of the Bachelor of Science in Games Development (C10229). The assessments of this subject also provide students with the opportunity to explore their choice of more advanced topics to further expand their competencies in games programming and prepare them for lifelong learning and skill development in game-related disciplines.

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. Build familiarity and appreciation of the programmatic components of an industry standard game development engine.

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 topic included in the content, it is a 3-step learning process.

1. Learn the fundamentals of a topic within a lecture, both in terms of theory and practical coding examples.
2. Expand that knowledge through self-guided study and apply it to individually graded lab exercises.
3. In the following lab, review you learning from the previous week by discussing your solutions and reasoning with classmates.

Furthermore, the major assessments for this subject involve students investigating both intermediate and advanced topics, documenting their learning, and developing an interactive game tech demo that integrates and highlights the chosen topics.

The quality of learning depends almost entirely on the student, the effort that is put in will determine the knowledge and skills that come out of it. Games programming is a vast, complex subject and thus this subject is a platform to facilitate students’ self-guided learning on both common core topics and student selected topics that they feel will complement their own unique skill set and career path, with the lecturer/tutors there to facilitate student learning as much as possible.

It is therefore important that students spend enough time out-of-class completing lab activities and assessment tasks. It is only then that students can 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)

Core topics (covered in lectures and labs):

  • Introduction to Unity – Unity interface, coordinate system, game cycle, components, GameObject, Transform
  • Fundamentals – asset instantiation, add/get component, input management, vectors, translation/rotation/scale
  • Working with Time – time, delta time, invoke, co-routines
  • In-engine Animation: interpolation, programmatic tweening
  • Animation and Audio Assets – Playing animations/audio, animation state machines, animation function calls
  • UI Programming – UI canvas space, event registration, event listening
  • Game State Managers – C# enumerators, switch statements, game managers, scene management
  • Collisions - collision detection, triggers, kinematics, layers, the collision matrix
  • Physics Programming – rigid body physics, physics materials
  • Save Games – PlayerPrefs, resources folder, asset loading/unloading, JSON utility, file writing
  • C# Extras – Attributes, ternary operator, statics, delegates, events

Intermediate topics (selected for major assessment Pass and Credit grades) (only a sample):

  • Physics driven game design
  • Simple AI using game engine functionality
  • Touch input and mobile deployment
  • Split screen multiplayer
  • Unity Ad Network functionality
  • Random or basic procedural content generation

Advanced topics (selected for major assessment Distinction and High Distinction, in addition to an intermediate topic) (only a sample):

  • Strategic AI using formal methods
  • Networked multiplayer
  • Substantial procedural content generation or custom level builder
  • Multi-touch and gesture recognition for mobile game input
  • Virtual reality, augmented reality, or Microsoft Kinect gameplay
  • Dynamic difficulty adjustment
  • Quantum mechanics gameplay

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: 20%
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: 10%
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 games programming principles taught in class in the design of new solutions) 25 2, 3 B.2
Quiz grades (ability to apply class concepts to articulate conceptual solutions 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: Game Tech Demo Topic Exploration and Presentation

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 and advanced topics 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) 10 1, 2, 3 B.5, E.2
Project Reflection (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
Presentation (ability to communicate knowledge gained during research and development in a clear and concise manner to enhance peer learning) 15 1, 2, 3 B.2, B.6, E.1
SLOs: subject learning objectives
CILOs: course intended learning outcomes

Assessment task 5: Game Tech Demo Final demonstration

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) 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) 10 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
Game Quality (ability to combine all functionality into a coherent, enjoyable, and unique game demo) 15 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

Recommended Resources:

Unity Tutorials
https://unity3d.com/learn/tutorials

Unity Answers (community Q&A board)
http://answers.unity3d.com/questions/index.html

Unity in Action: Multiplatform Game Development in C# (by Joseph Hocking)
https://www.manning.com/books/unity-in-action

Additional Resources:

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

Other resources

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