Skip to the content | Change text size
PDF unit guide

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

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)

Workload Requirements

Minimum total expected workload equals 12 hours per week comprising:

(a.) Contact hours for on-campus students:

  • Two hours of lectures
  • One 2-hour laboratory

(b.) Additional requirements (all students):

  • A minimum of 8 hours independent study per week for completing lab and project work, private study and revision.

See also Unit timetable information

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

Jason Haasz

Consultation hours: Will be made available on the unit website

Mike Yeates

Consultation hours: Will be made available on the unit website

Your feedback to Us

Monash is committed to excellence in education and regularly seeks feedback from students, employers and staff. One of the key formal ways students have to provide feedback is through the Student Evaluation of Teaching and Units (SETU) survey. The University’s student evaluation policy requires that every unit is evaluated each year. Students are strongly encouraged to complete the surveys. The feedback is anonymous and provides the Faculty with evidence of aspects that students are satisfied and areas for improvement.

For more information on Monash’s educational strategy, see:

www.monash.edu.au/about/monash-directions/ and on student evaluations, see: www.policy.monash.edu/policy-bank/academic/education/quality/student-evaluation-policy.html

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

Academic Overview

Learning Outcomes

On successful completion of this unit, students should be able to:
  • demonstrate an understanding of the programming game loop and how to set it up, through practical game code design and implementation;
  • create game programs that demonstrate an understanding of DirectX, including textures, displaying sprites, animation, text, and rendering;
  • create game programs that demonstrate an understanding of physics in the games programming context, including basic movement and interaction;
  • create game programs that demonstrate an understanding of Direct 3D rendering, including geometry, models, cameras, textures and lighting;
  • demonstrate the ability to express these concepts together 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 due Friday
6 Basic Collision Detection, entity movement and interaction, area triggers  
7 XAudio2  
8 The Rendering Pipeline 2: Shaders and HLSL  
9 Particle Systems Assignment 2a due Friday
10 Bringing it all together / case study  
11 Lua Scripting Basics: how to and why it can be useful  
12 Revision Assignment 2b due Friday
  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.

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 Summary

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

Assessment Task Value Due Date
Assignment 1: Simple Game Implementation 15% Friday, Week 5
Assignment 2a: Major Game Project 20% Friday, Week 9
Assignment 2b: Major Game Project Extension and Extra Functionality 15% Friday, Week12
Examination 1 50% To be advised

Assessment Requirements

Assessment Policy

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.

    This assessment relates to Learning Outcomes 1, 2 and 5
    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:
    Friday, Week 5
  • 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.

    This assessment realtes to Learning Outcomes 1, 2, 3, 4 and 5

    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:
    Friday, Week 9
  • 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 commencing the assignment.

    This assessment relates to Learning Outcomes 1, 2, 3, 4 and 5
    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:
    Friday, Week12

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 (if applicable to the unit)
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/student-academic-integrity-managing-plagiarism-collusion-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 electronic submission). 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.

Required Resources

Please check with your lecturer before purchasing any Required Resources. Limited copies of prescribed texts are available for you to borrow in the library, and prescribed software is available in student labs.

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

Monash has educational policies, procedures and guidelines, which are designed to ensure that staff and students are aware of the University’s academic standards, and to provide advice on how they might uphold them. You can find Monash’s Education Policies at: www.policy.monash.edu.au/policy-bank/academic/education/index.html

Faculty resources and policies

Important student resources including Faculty policies are located at http://intranet.monash.edu.au/infotech/resources/students/

Graduate Attributes Policy

Student Charter

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.