May 2020

FOGGS
Semester 2

For semester two of my Fundamentals of Game and Graphical Systems module for my University course, we were required to work with OpenGL to produce a scene. The results of this can be seen below. Click here to access this project on Github.

The image above depicts the final version of the project that I handed in for the module. From looking at this and comparing it to the other project I completed for the same semester, it can be said that there is a relatively large disparity in terms of the quality of work that was completed. This is because compared to my Mario project, this project I just could not really properly get into and also found understanding what more to do for my project as well as how to do certain things (such as loading in an Obj file) much more challenging than I originally thought I would find it. Because of this, I cannot say that I am particularly proud of this specific piece of work, and because of this, I will continue to try to research a little more into OpenGL. I am, however, proud that I still managed to achieve at least something for this module, and was at least able to learn a little about OpenGL. The goal of this project, had I had more time and knowledge to be able to achieve what I wanted, was to have a plethora of spheres within the scene that were to rotate automatically within the scene and were to act as sort of red bloods cells. I was then to have an obj file loaded in that was a 3D model of a virus. The goal of the player would then be to rotate the camera and to look through this field of red blood cells to locate the virus. Upon locating the virus, they would then need to click it, thus winning the level/game. They would be timed to do this, and would get more points based on how long it took them to find the virus. They would also be able to manipulate the virus using the R key to make it rotate faster than the red blood cells, thus allowing it to more easier stand out amongst the croud.

Click below to watch a video clip of the submitted project!

December 2019

Pacman Project

A project done in the first semester of the first year of Computer Games Programming at Staffordshire University Click here to view this project on Github.

In the first semester of my Computer Games Programming course at Staffordshire University I completed a version of a Pacman game for one of my modules. Although it was not an exact remake of the game, and there isn't a traditional map, the player is able to progress through the game and its levels by collecting munchines (christmas lights) and getting bonus points by collecting the cherry (the wrapped present).

When the player starts the game they are able to select between easy, medium and hard modes (these difficulties are depicted by providing the player with a differing number of enemies on the screen) by entering 1, 2 or 3 on the keyboard. This will then open the game window and allow the player to start the game. Once the game has started, the player can collect christmas lights, presents and also die to enemies. The player can wrap around the screen and progress to the next level upon collecting a certain number of christmas lights. Once progressing to the next level, the enemies will get faster.

The aim of this project was to create a version of Pacman for the first semester in the Fundamentals of Game and Graphical System Development (FOGGS) module. This included following numerous tutorials, and then branching out and using knowledge from other modules and the FOGGS module to add additional features to the game to make it either more unique, or more like the original Pacman game. This was important to introduce students to both the basics of C++ and looking into programming a 2D game using the S2D library.

During this project, several tutorials were followed detailing: an introduction to the Pacman Framework, creating menus, 2D animation, prototypes, functions and parameters, structures, arrays, user input, artificial intelligence (AI), dynamic memory and references. In order to add additional features into the game, it was required to look deeper into the subject and look at how other people had done specific things with their own games. Most interesting were the ways that people had done their own AI as well as made their own maps, although for someone with little programming knowledge within C++ or similar languages, this would likely appear rather daunting.

Since the project was something new, and likely the first time anyone had ever done this much within programming, it was very challenging. Even adding the most basic of features to the game, proved to be incredibly frustrating to add, although it did help to understand more about how certain features of programming in C++ works (namely pointers, references, functions and classes). Although the game seems very basic and barebones, a lot of research was put into attempting to add additional features to the game. Some of them made it into the final product, others were just too challenging to try to add or just provided many errors deemed personally unsolvable.

To conclude, the project itself was extremely challenging, although it was a highly useful learning experience that can be applied to the GEC (Games Engine Creation) module next semester. The game itself appears very bare bones, although how the theme itself and some other aspects of the game turned out has been rather pleasing. The attempt of adding a map to the game proved to be the biggest challenge, namely because it wasn’t in the final product. Although next time, it would be an idea to attempt to add edge collision at least, or even a map in its entirety. The idea of also adding some more complicated AI to the game is also an intriguing idea. Both features would have been added had more time been available to do so as well.

In the future it would be nice to add a map as well as much more complicated AI that seek the player in a much more intelligent and believable way. This may be added in the future when personal programming skills improve. More additional features such as a more complex menu system, pause system and scoreboard would also be nice to add along with some aesthetically pleasing graphics also for the menus. Although the idea of making a good menu system that looks good would be extremely hard for someone who isn’t very artistic.

Slideshow Gallery

1 / 13
2 / 13
3 / 13
4 / 13
5 / 13
6 / 13
7 / 13
8 / 13
9 / 13
10 / 13
11 / 13
12 / 13
13 / 13

Blue Ghost Sprite
Blue Ghost Sprite
Orange Ghost Sprite
Orange Ghost Sprite
Pink Ghost Sprite
Red Ghost Sprite
Red Ghost Sprite
Evil Elf Sprite
Evil Elf Sprite
Lights Sprite
Present
Snowman
Screenshot

Click below to watch a video clip of the submitted project!