School of Computing Sciences  
Module:   CMP-5010B  Graphics 1  
Assignment: DESIGN AND IMPLEMENT A TWO  
DIMENSIONAL INTERACTIVE   TRACK- 
BASED GAME USING C/C++ AND OPENGL  
Set by:  Dr Stephen Laycock,   
Checked by:  Dr Rudy Lapeer,   
Date set:   22nd January 2020.  
Value:   60%  
Date due:   Report Due Week 12 Monday at 15:00, Demos in Week 12.  
Returned by:  Assessment Period Week 3  
Submission:  evision  
Learning outcomes  
To learn to write programs using OpenGL with C++ in Visual Studio.  
To learn the concepts of 2D transformations, viewing and interactive control using  
OpenGL   
Specification  
Overview  
To introduce the concepts of Computer Graphics.  
To develop a program using OpenGL.  
To gain experience in writing computer graphics applications, with the assignment  
focusing on a 2D game   
Description  
To design and implement your own 2D game using OpenGL and C++. The user  
should control a vehicle around the 2D environment and be viewed from above.  
There must be a clear start and end to the game and the user must navigate their  
vehicle around a track or route with boundaries (e.g. a racetrack with grass verges, a  
river with banks). You may decide on the vehicle and the track but you should  
incorporate collision detection between your vehicle and the boundaries.   
The following features are essential:  
• The game has a clear starting position and the user’s controls should be clearly  
stated.  
• A clear objective and scoring system needs to be provided.  
• The world should be larger than the screen size which means the background  
(world) should scroll both horizontally and vertically if the user’s vehicle  
threatens to go off the screen out of the user’s view.  
• A track or path should be defined with clear boundaries for the user to navigate  
around.   
• There should be a response to colliding with the boundaries (e.g. the vehicle  
bounces off or slows down).  
• There should be at least one other vehicle racing against the user.  
• Collisions should be detected between the user and the other vehicles in the  
environment.   
You may create windows using Win32, freeglut or GLFW.  
Relationship to formative assessment  
The module organiser will provide feedback on your progress with the assignment  
during the scheduled lab classes and this can be used to help in the development of  
your solutions.   
Deliverables  
A full submission should consist of:  
1) Report detailing the design and implementation for the motion of the user  
controlled character, including how the character interacts with the boundaries of the  
track in the game environment (in response to Assessment criteria 2).   
(2 sides maximum)   (10%)  
2) User Manual                                                             (max. 1 side)      (5%)  
3) Program + Demonstration, Week 12                                                           (85%)    
The report should be submitted via e-vision and the code should be shared with  
Stephen Laycock via bitbucket by Friday at 15:00 of week 12.  
Resources  
You may use the code on blackboard and from the lecture notes to help with the  
assignment.   
The OpenGL Programming guide is a useful resource for OpenGL.  
http://www.cplusplus.com/is a useful website to aid with C++ issues.  
Once you have completed the lab sheets, feedback and guidance on your progress  
will be provided by the teaching team.   
Marking scheme  
Marks will be awarded for the following criteria:  
1) Game Design (Objective, User Interface, Start screen, End screen).  
2) Motion of the user controlled vehicle  its interaction with the boundaries of the  
tracks/channels in the game environment.  
3) Collision Detection  Response between the objects in the environment.  
4) Computer Controlled objects and their movements  
5) Graphical Quality of the environment (textures, sprites, background).  
6) Novel Concepts.  
Further details of the marking scheme can be found on the mark sheet.