OpenGL Football Game
Background:
This Football game was created as part of a practical exercise to apply our C++ and OpenGL knowledge to show understanding and ability to create a basic working game without a game engine.
Features:
The game consists of a football that can be shot at targets, after which the ball will have a velocity as well as a rotation, and responds to gravity. The is a rotating skybox as well as some basic lighting, and some basic coded meshes for the walls.
Core gameplay requirements were outlined in the project brief, however, the addition of gravity was optional. As well as the displaying of the number of attempts left. The Object-Oriented approach was also a personal project decision.
Personal note:
This project allowed me to apply new skills I had learned in C++ to make my code extensible and easily modifiable by using an Object-Oriented approach to the project. All objects in the game are derived from a GameObject class, and different types of objects can be defined. This is essentially a foundation for a very basic game engine.
Learned:
Basic fundamentals of a game engine creation.
Gained a lot more knowledge and understanding in the application of Object-Oriented programming, especially revolving around game design.
Achieved:
Grade of 95.25%
Code Snippet
The GameObject class was by far the most crucial part of this project, as it allowed me to use many different types of objects that I made for the game, and have them work in a similar fashion. This worked in tandem with the Transform class I made specifically for it, which allowed me to store positional, rotational, and scaling data, as well as easy application of velocity. I learned a lot about OOP (Object-Oriented Programming) while implementing these classes.
This was also the biggest improvement from the first coursework for this module.
Tools Used

C++
