University of Technology, Sydney

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

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 2019 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 Applications Programming
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 Programming

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. Illustrate an understanding of the language and concepts of game development technology and techniques.
2. Apply mathematical and game programming knowledge and skills to solve development tasks.
3. Build familiarity and appreciation of the programmatic components of an industry standard game development engine.
4. Seek new knowledge of games development through self-directed study.

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)
  • 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 class, 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 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):

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

Type: Laboratory/practical
Groupwork: Individual
Weight: 30%
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, 4 B.1, B.2, B.3, B.6
Code Quality (ability to code in a modular manner) 30 2, 3 B.5
SLOs: subject learning objectives
CILOs: course intended learning outcomes

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

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 games programming principles taught in class in the design of new solutions) 25 1, 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 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):

B.2, B.3, B.5, B.6, E.1, E.3 and F.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.

Criteria linkages:
Criteria Weight (%) SLOs CILOs
Functionality (ability to understand and apply techniques taught in class to implement minimally functional gameplay) 60 1, 2, 3 B.2, B.3, E.3
Code Quality (ability to code in a modular and extensible manner) 10 1, 2, 3 B.5
Project Reflection and Planning (ability to critique own game based on class concepts and plan for future enhancements) 15 1, 2, 3 F.1
Demonstration (ability to communicate knowledge gained during development in a clear and concise manner) 15 1, 2, 3 B.2, B.6, E.1
SLOs: subject learning objectives
CILOs: course intended learning outcomes

Assessment task 4: Classic Game Recreation - Enhancing and Innovating

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 and E.3

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.

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
Code Quality (ability to code in a modular and extensible manner) 20 1, 2, 3 B.5
Game Quality (ability to combine all functionality into a coherent, enjoyable, and unique game demo) 20 1, 2, 3 B.2, B.3, B.5, B.6, E.3
SLOs: subject learning objectives
CILOs: course intended learning outcomes

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

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