Course Project

  • Brief and rubric and directories/files for the initial commit
  • Example Pong game repo - Clone this repo, and then type git checkout v1.0. Use this example game as a template for your project’s directory structure. It includes the source code for the Pong game, a test file, and the CMakeLists.txt file. The CMakeLists.txt file defines three targets: game, tests, and doxygen_docs. These targets automatically download their dependencies (see below) and build their outputs in the build\release directory.

    Open VS Code in the root directory, and use CMake to build , and launch, the game and tests targets. The generated executables can be found in the build\release\bin directory. The doxygen_docs target uses doxygen to extract and produce HTML documentation from the source code comments. You can view this documentation by opening the build\release\doxygen\index.html file in a browser.

    Note: the game code does not showcase good object-oriented design.

  • Dependencies: the raylib, raylib-cpp and doctest libraries are automatically downloaded. doxygen needs to be manually installed as shown in Lab 0.
  • Raylib tutorial - This is the YouTube tutorial for developing the example Pong game. Importantly, this tutorial demonstrates how to use raylib and not raylib-cpp. However, it provides a good foundation for understanding raylib-cpp, as raylib-cpp is simply a wrapper for raylib functionality. In the game demo, given above, I have adapted the Pong code to use raylib-cpp. As already mentioned, the OO design here is very poor.
  • How to make a project release on GitHub

Deadlines

All deliverables need to be available on GitHub at the time of each deadline.

  • 1st submission due: Monday, 15th September at 7:50 at midnight
  • 2nd submission due: Monday, 29th September at 7:50
  • Final submission bonus deadline: Thursday, 9th October at 17:00
  • Final submission due: Friday, 10th October at 7:50

Back to top

Copyright © 2025. School of Electrical and Information Engineering. University of the Witwatersrand.