Professional Documents
Culture Documents
A2a - Game Prototype
A2a - Game Prototype
A2a - Game Prototype
Learning Outcomes
Completion of this assignment demonstrates the following learning outcomes:
● Create game programs that demonstrate an understanding of the programming game loop
and how to set it up
● 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
Brief
Across the semester you will be building a game prototype for a 3D “Beat ‘Em Up” style game. This
will be based on the labs from weeks 6 - 12, with significant custom components created by you
across the semester. With discussion from your demonstrators, you have freedom to decide what
mechanics you will develop as long as they meet the assignment requirements.
Submission Requirements
Upload the link to your Git repository via Moodle. You will be assessed based on your most recent
commit prior to the due date.
Readme
As part of your Git repository, you will need to include a Readme text file that contains the following:
● The controls for your game, including what inputs are needed with a brief description of
what they do
● The mechanics/features you would like to be assessed, which includes
○ Core Mechanics
○ Physics Mechanics
○ UI Elements
○ AI Elements
1
FIT2096 - Games Programming
Where used a readme text file MUST be included that contains the following information about
each generative AI asset
● Name of asset
● The prompt used to generate the asset
● Use in game (background, etc.)
● The tool used to create the assets (Dall-e, Stable Diffusion, MidJourney, etc.)
● The model used if known (e.g. SDv1.5 https://huggingface.co/runwayml/stable-diffusion-v1-5)
All tasks must be completed in C++ unless explicitly stated otherwise. These tasks must also be
unique and different from what has been covered in the lab classes and workshops (i.e. Brimstone
Molotov).
This repository should use GitLFS for all files within the Content folder (game assets).
.gitignore File
The repository must use a .gitignore file to exclude the following folders from the repository:
● .vs
● Binaries
● Build
● DerivedDataCache
● Intermediate
● Saved
Instructions for setting up this repository can be found in the week 1 lab tasks and week 6 lab tasks
on Moodle. Additional material is also available in the software installation guide under week 1.
Commits to the repository are to be at least once a week with meaningful commit names.
2
FIT2096 - Games Programming
Core Mechanic
Suggested Completion Date: Week 8
Your prototype must include a major core mechanic that helps define the gameplay in the project.
You have freedom to choose what mechanics you would like to create for your prototype, however
they must be approved by your demonstrator. This process is to ensure you do not choose to create
a mechanic that is too trivial or too difficult.
Physics Interactions
Suggested Completion Date: End of Week 7
Your prototype must include two additional physics based mechanics. One of these mechanics
must demonstrate the use of impulses or other forces being applied. The second mechanic must
demonstrate the use of the physics constraint component such as hinges, pulleys, motors, etc. You
should discuss this with your demonstrator to ensure that they are of the appropriate complexity.
User Interface
Suggested Completion Date: End of Week 8
Your prototype must include two different user interfaces (UI); a main menu and an in-game UI.
Each of these UIs must be created with a combination of C++ classes and UI blueprints as
demonstrated in the week 7 lab.
Main Menu
The main menu UI must be created inside of its own level with its own GameMode class written in
C++. At minimum the UI must contain the following in addition to what is created in the week 7 lab:
● A background colour / image that matches the theme of your game
● A title for your game
In-Game UI
The in-game UI must be modified from the week 7 lab to include new information relating to your
custom mechanics. This UI should provide relevant information to the player based upon your game
mechanics and design. This should also be completed in C++ making use of bindings. Examples for
this include:
● Visibility
● Currently held items
● Current weapon
3
FIT2096 - Games Programming
Artificial Intelligence
Suggested Completion Date: End of Week 10
Your prototype must contain a custom navigation mesh and at least one agent type within your
game. You should discuss this with your demonstrator to ensure that they are of the appropriate
complexity.
Navigation Mesh
A navigation mesh that is significantly different from the week 8 lab must be created and
demonstrated with a different level design of your own design. This should include custom
connections and jump points for agent movement across the level.
Agent Types
You must include at least one agent type within your game that makes use of the Navigation Mesh
as well as, a Behaviour Tree, Blackboard, and Senses (Sight, Sound, or Touch). This behaviour tree
must include an additional behaviour beyond what has been created for the week 9 lab
4
FIT2096 - Games Programming
Code Quality
Suggested Completion Date: Continual Updates Weekly
Your prototype must be created with code quality as a major consideration. As part of this, you must
ensure that proper indentation is used along with consistent naming conventions for classes,
functions and variables. The use of the Tick function within Actors should be carefully managed to
ensure that only critical elements are updated each frame.
Comments
All code should be commented where not immediately obvious as to what the block of code is
doing. Each function should contain at least some amount of commenting. Use of in-line comments
is perfectly acceptable. You do not need to comment the code from the lab tasks.
Proper Indentation
All code should be properly formatted to ensure correct indentation is used. You must use a tab or
4 spaces for each step of indentation.
5
FIT2096 - Games Programming
Assessment Criteria
Your assignment will be marked on the following criteria listed below.
Feedback Information
You will receive a mix of formal and informal feedback for this assessment. Demonstrators will
provide feedback in your scheduled lab sessions informally the week after submission. Formal
feedback will be provided within 10 business days of submission
6
FIT2096 - Games Programming
Study skills
If you feel like you just don’t have enough time to do everything you need to, maybe you just need a
new approach