CSC8503 Coursework 2020/21
In this coursework you are to develop a game that includes physics and AI, to allow you to practice your coding skills, and reinforce your knowledge in these areas. The game takes place in a simple 3D environment, where the player controls an avatar using physics calculations, and must employ collision detection and resolution to allow the player to collect items, and push items around to earn bonus points, while being chased by an AI agent.
The codebase you have been provided with serves as a good starting point for the development of your game. The goal of the coursework is to then enhance this codebase with realistic physics and collisions, to allow the basics of the game to be played. From there, AI techniques can be used to add in some more complex movements of enemies that the player must avoid. You do not need to spend any time implementing graphical techniques, or finding new meshes and textures to apply to your game – the purpose of this coursework is just to investigate the new concepts introduced in the lectures and tutorials.
While the specifics of the game implementation are up to you, the following video should provide some inspiration as to what could be replicated in your program:
Coursework Part A: Don’t Fail!
You are to make a game in which the player controls a simple character (a model is provided to represent this), and must navigate a racecourse filled with obstacles to try and reach the finishing line as quickly as possible. Players start with a score of 1,000 points, and lose 10 points a second. They may collect bonuses on the map to earn 25 points. If the player’s score reaches 0, they lose the game, while they win if they cross the finish line of the map. Once the game finishes, the player should be shown their final score. The game should feature a simple menu, allowing the player to play again, or exit the game.
The program you create should take place within a single virtual environment – the exact composition of this is up to you, but it should have obstacles placed around (these can consist of simple moving and rotating cuboids and spheres) to make the world more interesting. The level should also have surfaces that produce different effects when the character walks on them (jelly could make the player bounce, or ice could make it hard to change direction).
The player object should be controlled with the keyboard, by the application of forces. You may choose to apply torque to rotate the player object, or use functions to automatically change its orientation to the desired direction.
If the player clicks on any object within the world, the game should display some debug information (using the provided text rendering code). This could consist of position and orientation, or information on the current state of the AI.
Deliverable Items – NESS Submission
• Source code. Clean your solution in Visual Studio, and then zip your work folder.
• A document containing at least four screenshots with descriptions of the features they represent, a list of any key/mouse presses that perform actions, and a link to a YouTube video of your coursework running.
Marks Available (50)
Coursework Part A (50 marks)
Implementations of collision detection (AABB, Sphere, OBB, plane), collision resolution (impulse, projection, or penalty, with gameplay effects), application of forces, and simple state based artificial intelligence gain up to 50 marks.
A ‘first class’ submission would allow the player to move their character via the application forces, with the program successfully detecting and resolving collisions with the environment, and apply gameplay effects from the collection of items.