CS4182 Course Project
(2022/23 B)
1 Objectives
The objectives of this project are for students to have some hands-on experiences of graphics
programming and to develop a graphics application. Students are given a Python/OpenGL
program with a virtual jeep game and asked to extend this program to provide additional
features.
2 Requirements of the Assignment
This assignment can be carried out as individual or group projects. The maximum number
of members in each group is 2. However, the group-based assignment is expected with more
work and creativities, and the responsibility of each group member should be clearly indicated
in the report.
In the assignment, you are given an OpenGL program of a 3D jeep game (Figure 1) and are
asked to extend this program to include additional features. There are two levels of require-
ments for the program, basic and advanced, to cater for students of different backgrounds and
interests. The basic requirements are designed for all students to practice some basic graphics
programming skills. The advanced requirements are for students who would like to go further
to create an application. The basic requirements and advanced requirements account for 60%
and 30%, respectively, of the total mark for this assignment. Besides, you are required to give
a presentation to show your project, which accounts for 10% of the total mark.
2.1 Basic Requirements
You are required to complete the following items for the basic requirements:
1) Creating new objects (10 marks)
Create or import at least one new object with color/material/texture properties and put
it/them at suitable locations.
2) Menu and Lighting (10 marks)
Add a pop-up menu to switch between different light properties (ambient, diffuse, specular
and position, point lights, directional lights, spotlights).
3) Manipulation (10 marks)
Use keyboard/mouse to manipulate an object (size, position and angle) and the camera
(position, angle and zoom-in/out).
1
Figure 1: Jeep game.
4) Adding autonomous objects (10 marks)
Set an object to move around automatically and react to the environment (e.g. light).
5) Window resolution (10 marks)
Allow user to set/select the window resolution, enable/disable full screen mode before or
during the application.
6) Accelerating ribbon (10 marks)
Set an accelerating ribbon on the road, and the jeep can be accelerated after passing the
ribbon.
2.2 Advanced Requirements
You are expected to extend the program into an application. This may include a short animation
sequence to present an advertisement or a short story. Here, 15 marks will be given based on
the technical difficulties and another 15 marks will be given based on the content design.
2.3 Presentation
You are required to give a presentation to show how well the basic and advanced requirement
has been completed. 10 marks will be given based on the presentation.
2
Note: you are required to compile all the basic functions into a single file instead of multiple
independent files. But you may use another project to complete your advanced requirements
since it may be totally irrelevant to the above basic requirements.
3 Submission Details
Deadline: 23 Apr 2023
Each group needs to submit the following items via Canvas. The submission link in Canvas
will be open later.
/Program:
1) A source subdirectory containing all the source files and necessary files (e.g., texture files).
2) A binary subdirectory containing the executable program and relevant files, including
texture files or libraries. Note that we only need to click on the executable file to run
your program on Windows PC. So, you may need to try the executable file on a different
machine before you submit the work. Note that your implementation must be on Windows
using Python, as we do not have a Mac to test your program.
3) A readme file with instructions on how to compile and execute the program.
/Report:
The purpose of this report is just to indicate the main contributions of the work, so that we
may grade the work appropriately. We will not be grading the report itself. Hence, there is no
need to submit a large report. It can just be a few pages providing the following information:
1) A cover that indicates your name(s) and student ID(s).
2) A brief description of the revised program, including the main modules and the relation-
ship of these modules. This may be in the form of short paragraphs or a flow diagram.
3) Briefly discuss each of the five items in the basic requirements. For each item, please
point out the objective of the work and the final effects produced, with screen captures
of the results. You also need to point out the names of the modified modules (with brief
explanation of the added functions). Similar information also needs to be provided for
the advanced requirements.
4) You need to declare the responsibilities of each group member (if applicable), including:
programming tasks, report writing, and group coordination.
Note that your submission must contain the above two items (i.e., /Program and
/Report). Marks will be deducted if any is missing. Note also that your work must
be built inside the 3D jeep game provided. You can build anything within it.
4 Marking
This course project contributes 20% of the final course mark.