Skip to the content | Change text size
PDF unit guide

FIT2049 Games programming with C++ - Semester 2, 2013

This unit will further develop object-oriented programming skills with the C++ language, and place them into the Games Programming context. Fundamental games programming design principles will be covered, including formal game structures and the game program loop. A number of specific games programming techniques with C++ will be also covered. These include the use of DirectX, games physics, and advanced 3D rendering, expressing these concepts through game creation using C++ and Microsoft Windows DirectX. This provides a strong grounding for further study in this area, especially related to games engine development and artificial intelligence.

Mode of Delivery

Caulfield (Day)

Contact Hours

2 hrs lectures/wk, 2 hrs laboratories/wk

Workload requirements

For on-campus students, the weekly workload commitments are:

  • 4 hours of lectures / laboratory (requiring advance preparation), and
  • 8 hours of self directed study - this will include reading and computer based activities.

Unit Relationships

Prohibitions

MMS2804

Prerequisites

FIT2071

Chief Examiner

Campus Lecturer

Caulfield

Elliott Wilson

Consultation hours: Will be made available on the unit website

Tutors

Caulfield

Elliott Wilson

Consultation hours: Will be made available on the unit website

Academic Overview

Learning Outcomes

At the completion of this unit students will have:
  • an understanding of game entities and formal games program structure;s
  • an understanding of the notion of the programming game loop and how to set it up;
  • a working knowledge of basic DirectX, including textures, displaying sprites, animation, text, and rendering;
  • a working knowledge of physics in the games programming context, including basic movement and interaction;
  • a working knowledge of Direct 3D rendering, including geometry, models, cameras, textures and lighting;
  • an understanding of scene management in games;
  • the ability to express these concepts in a working Microsoft Windows game prototype.

Unit Schedule

Week Activities Assessment
0   No formal assessment or activities are undertaken in week 0
1 Introduction to the unit, an introduction to win32 programming, setting up window, com, messages, message proc  
2 Maths for games development  
3 Rendering basics, triangles, lines, textures, x.models loading, lighting, light types, shading, direct 3d surfaces, back buffer, time step  
4 The rendering pipeline, 2d sprites and text, camera setup, direct input  
5 Templates/Generic Programming, Design Paradigms useful in gaming (Entity management, Scene management, State Machines, Message System, Singletons etc) Assignment 1: Simple Game Implementation
6 Basic Collision Detection, entity movement and interaction, area triggers  
7 XAudio2  
8 Particle Systems  
9 Bringing it all together / case study Assignment 2a: Major Game Project
10 The Rendering Pipeline 2: Shaders and HLSL  
11 Lua Scripting Basics: how to and why it can be useful  
12 Revision Assignment 2b: Major Game Project Extension and Extra Functionality
  SWOT VAC No formal assessment is undertaken in SWOT VAC
  Examination period LINK to Assessment Policy: http://policy.monash.edu.au/policy-bank/
academic/education/assessment/
assessment-in-coursework-policy.html

*Unit Schedule details will be maintained and communicated to you via your learning system.

Assessment Summary

Examination (3 hours): 50%; In-semester assessment: 50%

Assessment Task Value Due Date
Assignment 1: Simple Game Implementation 15% 30 August 2013
Assignment 2a: Major Game Project 20% 27 September 2013
Assignment 2b: Major Game Project Extension and Extra Functionality 15% 25 October 2013
Examination 1 50% To be advised

Teaching Approach

Lecture and tutorials or problem classes
This teaching and learning approach provides facilitated learning, practical exploration and peer learning. Focus will be placed on practical implementation and case study in the latter stages of the semester.

Assessment Requirements

Assessment Policy

Faculty Policy - Unit Assessment Hurdles (http://www.infotech.monash.edu.au/resources/staff/edgov/policies/assessment-examinations/unit-assessment-hurdles.html)

Academic Integrity - Please see the Demystifying Citing and Referencing tutorial at http://lib.monash.edu/tutorials/citing/

Assessment Tasks

Participation

  • Assessment task 1
    Title:
    Assignment 1: Simple Game Implementation
    Description:
    This first submission will be in the form of a simplistic 3D game. This submission will focus on refamiliarisation with C++ and computer game mathematics, designing object oriented solutions to game programming problems, as well as incorporating basic graphics and rendering.
    Weighting:
    15%
    Criteria for assessment:

    Explicit assessment criteria will be provided in the assignment brief, however students will be assessed on the following broad criteria:

    • Meeting functional requirements as described in the assignment description
    • Demonstrating a solid understanding of C++ concepts, including good practice
    • Demonstrating a solid understanding of Game Development concepts, including good practice
    • Following the unit Programming Style Guide
    • Creating solutions that are as efficient and extensible as possible
    Due date:
    30 August 2013
  • Assessment task 2
    Title:
    Assignment 2a: Major Game Project
    Description:
    This submission will form the beginnings of a major game project that will be worked upon throughout the semester. This submission will focus on setting up collision, audio, and particle systems within a game project.

    Students will be required to compile a portfolio of major laboratory tasks for submission for assessment. Details of each portfolio component are clearly indicated in the laboratory tasks for each week.

    Weighting:
    20%
    Criteria for assessment:

    Explicit assessment criteria will be provided in the assignment brief, however students will be assessed on the following broad criteria:

    • Meeting functional requirements as described in the assignment description
    • Demonstrating a solid understanding of C++ concepts, including good practice
    • Demonstrating a solid understanding of Game Development concepts, including good practice
    • Following the unit Programming Style Guide
    • Creating solutions that are as efficient and extensible as possible
    Due date:
    27 September 2013
  • Assessment task 3
    Title:
    Assignment 2b: Major Game Project Extension and Extra Functionality
    Description:
    This assessment task will expand upon the second assignment, where students will add their own unique functionality to the game. Students will propose and negotiate their own extended functionality with the unit lecturer. This must consist of both demonstration of advanced programming concepts and also added game play functionality. Each student will require approval of their added functionality before commencement.
    Weighting:
    15%
    Criteria for assessment:

    Explicit assessment criteria will be provided in the assignment brief, however students will be assessed on the following broad criteria:

    • Meeting functional requirements as described in the primary assignment description
    • Demonstrating understanding of advanced game programming concepts and techniques
    • Demonstrating application of game programming concepts to the development of creative game play
    • Following the unit Programming Style Guide and good practice
    • Creating solutions that are as efficient and extensible as possible
    Due date:
    25 October 2013

Examinations

  • Examination 1
    Weighting:
    50%
    Length:
    3 hours
    Type (open/closed book):
    Closed book
    Electronic devices allowed in the exam:
    None

Learning resources

Monash Library Unit Reading List
http://readinglists.lib.monash.edu/index.html

Feedback to you

Types of feedback you can expect to receive in this unit are:
  • Informal feedback on progress in labs/tutes
  • Graded assignments with comments
  • Solutions to tutes, labs and assignments

Extensions and penalties

Returning assignments

Resubmission of assignments

Students may not resubmit assignments after the due date has passed.

Assignment submission

It is a University requirement (http://www.policy.monash.edu/policy-bank/academic/education/conduct/plagiarism-procedures.html) for students to submit an assignment coversheet for each assessment item. Faculty Assignment coversheets can be found at http://www.infotech.monash.edu.au/resources/student/forms/. Please check with your Lecturer on the submission method for your assignment coversheet (e.g. attach a file to the online assignment submission, hand-in a hard copy, or use an online quiz). Please note that it is your responsibility to retain copies of your assessments.

Online submission

If Electronic Submission has been approved for your unit, please submit your work via the learning system for this unit, which you can access via links in the my.monash portal.

Recommended Resources

This unit will require the use of a personal computer and a suitable IDE for Windows C++ and DirectX development. Visual Studio for Windows will be used in the laboratory environment.

Copies of the Windows operating system and Visual Studio 2010 may be obtained free of charge from http://msdnaa.monash.edu.au/fit.
The latest DirectX SDK may be obtained from the Microsoft website.

Other Information

Policies

Graduate Attributes Policy

Student services

Monash University Library

Disability Liaison Unit

Students who have a disability or medical condition are welcome to contact the Disability Liaison Unit to discuss academic support services. Disability Liaison Officers (DLOs) visit all Victorian campuses on a regular basis.

Your feedback to Us

Previous Student Evaluations of this Unit

Previous feedback for this unit has highlighted strengths in its fundamental importance to the BITS (Games) major, its challenging nature, and its real world application. Several improvements were suggested from the last offering, mostly related to the nature of the lectures and that the unit may benefit from longer laboratory classes. To address this, rather than simply extend the time spent in laboratories, lectures will place more focus on demoing code examples and engaing students through code creation and participation.

If you wish to view how previous students rated this unit, please go to
https://emuapps.monash.edu.au/unitevaluations/index.jsp