University of Technology Sydney

31263 Introduction to Computer Game Development

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 2024 is available in the Archives.

UTS: Information Technology: Computer Science
Credit points: 6 cp

Subject level:

Undergraduate

Result type: Grade and marks

Requisite(s): 48024c Programming 2 OR 31080c Interactive Media
The lower case 'c' after the subject code indicates that the subject is a corequisite. See definitions for details.
Anti-requisite(s): 31004 Introduction to Game Programming AND 32004 Game Development

Description

This subject introduces game development through the use of a commercial-grade game engine. It aims to build a generalizable understanding of the theory of virtual interactive simulations, while also more specifically developing intermediate competence in programmatic problem solving within the Unity Game Engine. The subject includes exposure to common terminology used in the industry, an introduction to the core interface tools of an engine, experience in applying vector and matrix mathematics to transform virtual objects in 2D and 3D coordinate space, and a strong focus on programming in games through the use of an engine API. This establishes the skills required to successfully contribute to the development of significant group projects found in many of the subsequent games related subjects.

Subject learning objectives (SLOs)

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

1. Understand foundational language and theory of game development technology. (D.1)
2. Apply mathematical and game programming knowledge to solve development tasks. (D.1)
3. Navigate the interface and codebase of an industry standard game development engine. (D.1)
4. Proactively identify their own knowledge gaps and establish skills in life-long learning through sourcing new knowledge to solve previously unseen intermediate problems. (F.1)
5. Design and implement minor variations to existing game designs. (C.1)

Course intended learning outcomes (CILOs)

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

  • Design Oriented: FEIT graduates apply problem solving, design and decision-making methodologies to develop components, systems and processes to meet specified requirements. (C.1)
  • Technically Proficient: FEIT graduates apply abstraction, mathematics and discipline fundamentals, software, tools and techniques to evaluate, implement and operate systems. (D.1)
  • Reflective: FEIT graduates critically self-review their performance to improve themselves, their teams, and the broader community and society. (F.1)

Contribution to the development of graduate attributes

Engineers Australia Stage 1 Competencies

This subject contributes to the development of the following Engineers Australia Stage 1 Competencies:

  • 1.1. Comprehensive, theory based understanding of the underpinning natural and physical sciences and the engineering fundamentals applicable to the engineering discipline.
  • 1.2. Conceptual understanding of the mathematics, numerical analysis, statistics, and computer and information sciences which underpin the engineering discipline.
  • 2.2. Fluent application of engineering techniques, tools and resources.
  • 2.3. Application of systematic engineering synthesis and design processes.
  • 3.5. Orderly management of self, and professional conduct.

Teaching and learning strategies

The material will be presented in three hours each week: 1 hour lecture with pre-class video content to self-learn, and 2 hours of combined tutorial/laboratory class.

For each game programming topic included in the content, it is a 3-step learning process.

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

Furthermore, the major assessments for this subject involve students applying their knowledge and skill to re-create a classic game and then to expand upon this game with a novel design twist. This requires students to seek out additional knowledge required to fulfill their envisioned design.

The quality of learning depends heavily on the the effort that each student puts into the weekly activities and major assessments. Games programming is a vast, complex topic 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 watching and learning from pre-recorded video content and completing lab activities and assessment tasks. It is only then that students can have meaningful discussions and fruitful interactions during class hours.

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

Assessment

Assessment task 1: Programming Exercises

Objective(s):

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

1, 2, 3 and 4

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

D.1 and F.1

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

Students will be graded individually on their code submissions.

Assessment task 2: 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):

D.1

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.

Assessment task 3: Classic Game Recreation - Getting Started

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):

D.1

Type: Project
Groupwork: Individual
Weight: 20%
Criteria:

Students will be graded on their ability to apply the knowledge from the lectures, labs, and self-directed study to establish the foundations for recreating a classic 2D game.

Assessment task 4: Classic Game Recreation - Enhancing and Innovating

Objective(s):

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

1, 2, 3, 4 and 5

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

C.1, D.1 and F.1

Type: Project
Groupwork: Individual
Weight: 35%
Criteria:

Students will be graded on their ability to faithfully recreate a classic 2D game as well as deliver upon an innovative design twist to the game.

Minimum requirements

In order to pass the subject, a student must achieve an overall mark of 50% or more.

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:

C# Cookbook, 2nd Edition

http://proquest.safaribooksonline.com.ezproxy.lib.uts.edu.au/0596100639

Other resources

Canvas: https://canvas.uts.edu.au/