Callum Randall

Programmer

About Me

Hello! My name is Callum and I am currently aspiring to be a game developer. I have finished studying a master's in Computer Science with a Game Engineering specialism at Newcastle University and achieved first class honours. This page will include projects that I have worked on in the past with videos and repos too.

My other hobbies outside of programming include playing video games, such as new and old single player games and some competitive esports games too. I have played Dota 2 in various university tournaments but also attended an online ESL UK tournament and was a player in a semi-pro team with a sponsored organisation for some time. I'm interested in sports too, such as F1 but mostly football where I support Newcastle United. I also spend a lot of time finding and listening to music and go to concerts regularly.

My Projects

Summer Project 2022

Master's Dissertation - Temporal Reprojection Anti-Aliasing (Unity)

For my final dissertation in stage four, I researched and implemented a temporal reprojection anti-aliasing method. This included researching techniques such as temporal reprojection, history rectification through neighbourhood clipping and projection matrix jittering.

The final product was implemented in Unity engine using a script that can be attached to a camera object. The effect can be toggled in order to see the visual impact on the scene. Testing and evaluation showed that the implementation had a minimal and reasonable performance cost. The project was graded at 77%.

The repo for the project is available below and contains the code with a demo scene for Unity and also the dissertation itself.

GitHub Repo

Spitoon - Master's Team Project (C++/OpenGL)

In the master's team project module, we were tasked to create a paint shooter game like Splatoon for the PC and PS4. This video shows the final product created within a custom OpenGL framework provided by Newcastle University.

The aim of the game is to cover more paint on the ground than your opponent, there are power ups to pick up and a roaming AI robot that cleans up paint in certain areas. If you have covered more area in paint than your opponent by the end you win.

My contributions towards the project were creating the level that the game takes place on, including handling importing assets into the engine and creating a framework of the level in Unity in order to help create a navigation mesh that would allow the robot to properly move around the map without falling off and properly locating paint. I also did general code reviewing and bug fixing to help the team.

Advanced Game Technologies (C++/OpenGL)

This coursework required implementation of physics systems to the Newcastle framework we had been using. This included Newtonian physics so objects moved correctly with mass due to impulses and gravity. We also had to implement collision detection including AABB, spheres and OBBs. Correct collision resolution was also implemented so objects collided and applied forces to each other accordingly including friction. Broadphase was also used to optimised the collision calculations. These implementations are implemented in the first level which is a tilting table obstacle course.

The second level built on top of this and added A* pathfinding and state machine AI in order to create a Pac-Man esque game. A video can be found above as well as the repo below.

GitHub Repo

Advanced Graphics for Games (C++/OpenGL)

This module required the creation of an island scene with OpenGL and C++. The renderer had to be built from the ground up including the shaders. A customised noise based heightmap was imported and generated by the program in order to create the terrain and textures applied to the terrain according the Y values.

The camera moves around the scene automatically, and it includes transparent water and animated meshes. There is also a scene graph allowing objects to have children so their position is always relative to the parent. A post processing blur effect can also be enabled.

GitHub Repo

Advanced Programming

Advanced Programming for Games (C++)

A password manager using the Collatz function to encrypt and store passwords assigned to users. Users can authenticate their passwords with one way encryption, the passwords stored are stored on file as encrypted keys.

The password manager can also create a file with passwords of varying complexity and length and then attempts to crack all of the passwords on the file. The amount of passwords created in each file that are cracked are expressed as a percentage.

GitHub Repo

Stage 3: Graphics for Games (Unity)

The stage 3 graphics coursework required us to create an alien landscape in Unity with as many features as possible.

This included some post processing, a heavy atmospheric fog and lighting effect with resulting god rays. Hierachical objects that moved together. Heavy dense swaying foliage with a snow weather effect and a large background landscape to give the scene depth. The FPS remained above 60FPS throughout.

Dasherino

Stage 3: Computer Games Development (GDevelop)

The computer games development module allowed us to create a small game or prototype of any genre. The game was created using GDevelop which is a program that allows you to create 2D games and export them to the web quite easily.

The game I made was called Dasherino and is a very difficult 2D platformer game that requires a lot of precision and timing and is heavily inspired by the game Celeste.

Play the game!

GitHub Repo