Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

SUBJECT OUTLINE

31263 Introduction to Computer Game Development

Course area

UTS: Information Technology

Delivery

Spring 2023; City

Credit points

6cp

Requisite(s)

48024c Programming 2 OR 31080c Interactive Media

Result type

Grade and marks

Attendance: 1hpw (lecture), 2hpw (tutorial/laboratory)

Subject coordinator

Dale Grant

School of Computer Science

Email: [email protected]

Questions regarding assessment or content within the subject are welcome in lectures or tutorials. This helps ensure that all students get the benefit of the answers given.

The Subject Coordinator may be contacted by email if you have matters of a personal nature to discuss, e.g., illness, study problems, and for issues to do with extensions, group problems or other matters of importance.

All emails sent to subject coordinator or tutors must have a clear subject line that states the subject number followed by the subject of the email [e.g. Subject 32702, Request for Extension], and must be sent from your UTS email address.

Teaching staff

See the Canvas page of this subject for a list of teaching staff and their contact details.

Subject 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.

2. Apply mathematical and game programming knowledge to solve development tasks.

3. Navigate the interface and codebase of an industry standard game development engine.

4. Proactively identify their own knowledge gaps and establish skills in life-long learning through sourcing new

knowledge to solve previously unseen intermediate problems.

5. Design and implement minor variations to existing game designs.

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.

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 studentselected 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

Program

Week/Session

Dates

Description

Introductory Activities

- See Canvas for instructions on installing the correct version of Unity.

- See Canvas for introductory modules on the assessment layout and subject structure

- Students should be ready to work in 3D coordinate space and refresh their knowledge on vector mathematics:

https://www.khanacademy.org/math/precalculus/vectors-precalc

Week 1 Content

Introduction to Unity – The Unity interface, coordinate system, Components, GameObjects, Prefabs, Transforms, 2D vs 3D development

Lab

Week 1 Submission due via Canvas before 9:00am Monday 14th August.

Week 2 Content

Core Unity Features - 3D primatives, Renderers, Materials, Lighting, Cameras, Particle Effects

Lab

Week 2 Submission due via Canvas before 9:00am Monday 21st August.

Week 3 Content

Animation and Audio Assets – 2D sprite sheets, importing 3D animations, the Animation and Anamator, AudioSource and AudioListener

Lab

Week 3 Submission due via Canvas before 9:00am Monday 28th August.

Week 4 Content

C# Coding and Git Fundamentals - classes, methods, variables, arrays, lists,

MonoBeahviour, Git cloning / pulling / branching / checking out / commiting / pushing

Lab

Week 4 Submission due via Canvas before 9:00am Monday 4th September.

Week 5 Content

Fundamentals of Coding in Unity – the Unity game cycle, asset instantiation, add/get component, input management, vectors, translation/rotation/scale

Lab

Week 5 Submission due via Canvas before 9:00am Monday 11th September.

1

7 Aug

2

14 Aug

3

21 Aug

4

28 Aug

5

4 Sept

6

11 Sept

Week 6 Content

Working with Time – time, delta time, invoke, co-routines

Lab

Week 6 Submission due via Canvas before 9:00am Monday 18th September.

7

18 Sept

Week 7 Content

In-engine Animation: interpolation, procedural tweening

Lab

Week 7 Submission due via Canvas before 9:00am Monday 2nd October.

StuVac

25 Sept

No classes (Mid Session StuVac)

8

2 Oct

Monday Public Holiday:

No live workshop on Monday 2nd October.

If you are in a Monday lab, your lab will NOT run. There will not be make up classes, so please complete your lab activity in your own time and contact your peers or tutor if you have questions.

All other labs will run this week as scheduled.

Week 8 Content

Moving with Input and Collisions - collision detection, triggers, layers, the collision matrix

Lab

Week 8 Submission due via Canvas before 9:00am Monday 9th October.

Assessment

Assessment 3 due via Canvas before 11:59pm Friday 6th October.

9

9 Oct

Week 9 Content

Game State Managers – C# enumerators, switch statements, game managers, scene management and save games

Lab

Week 9 Submission due via Canvas before 9:00am Monday 16th October.

10

16 Oct

Week 10 Content

UI Programming – UI canvas space, event registration, event listening

Assessment

Assessment 2 Quiz becomes available on Canvas at 9:00am Monday 16th October.

Assessment 2 Quiz due via Canvas before 11:59pm Friday 20th October.

Lab

Week 10 Submission due via Canvas before 9:00am Monday 23rd October.

11

23 Oct

Week 11 Content

Physics Programming – rigid body physics, physics materials, ray tracing

Lab

Week 11 (Bonus) Submission due via Canvas before 9:00am Monday 30th October.

12

30 Oct

Week 12 Content

Preview of Games Research

Assessment

Assessment 4 due via Canvas before 11:59pm Friday 3rd November.

Lab

No Lab submission for this week.

Schedule:

Note that the program schedule is subject to change according to the progress of the current class cohort.

Help:

Any questions (other than personal issues) should first be posted to Canvas discussion forums before emailing your   tutor, lecturer or subject coordinator. All students must "subscribe" to the Canvas discussion forums for the subject by clicking on "subscribe" button at the top of each discussion forum.

Assessment Tools:

This subject will be taught in C# in the Unity 3D Game Engine (https://unity3d.com/ ) which is free for personal,

educational, and small business use on Windows and Mac. For consistency, students wishing to install Unity on their personal computers and laptops should use the same version of Unity that is installed in the lab, which will be

published to Canvas at the start of the session. Failure to do so may cause significant development issues (such as corrupted projects) and lost marks where teaching staff are unable to open or execute submitted projects.

It is also recommended that students have an IDE to code in; while Unity comes with the MonoDevelop IDE, it is preferable for stability and functionality reasons to use Microsoft Visual Studio IDE Community Edition

( https://www.visualstudio.com/) or Visual Studio for Mac (https://www.visualstudio.com/vs/visual-studio-mac/).

Finally, the basics of source control for games will be introduced in this subject through the use of Git. Students will be required to setup an online repository, install Git and use it either through the Git Command Line tools or a GUI

interface such as SourceTree. The learning material will be presented through command line examples to focus on the fundamental concepts and terminology.

Assessment Submissions:

All assessments are to be in digital format and must be submitted.

Feedback Mechanisms:

Formative feedback will be provided regularly during labs and summative feedback (marks) will be available normally two weeks after assessment or quiz submission.


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: