Samuel Ross Johnson

Games Programming

Advanced Graphics and Real-Time Rendering

For the first semester of the Level 6 Advanced Graphics and Real-Time Rendering module I implemented a number of graphics techniques including; normal mapping, parallax mapping, shadow mapping, a post-processing pipeline and a deferred rendering system.

During this semester I also studied physically based rendering techniques and implemented a metal-roughnes PBR material system.

Rocket Ball

For the first semester of the Further Games and Graphical Concepts module we were tasked to create the graphics component of the game 'Rocket Ball' - a Rocket League clone.

The most challenging graphical feature implemented for this project was the deformable grass. The rendering of the grass itself was achieved using a geometry shader to expand points into triangles. A seperate camera positioned under the grass, facing upwards, was then used to render a heightmap which could be sampled to determine the tilt of each grass blade.

Other graphics features implemented for this project:

The Last Cactus

'The Last Cactus' was a project I completed during my first year of University, for the Games Engine Creation module. The player takes on the role of a lonely cactus, who must navigate a dangerous desert in hope of finding a friend.

The game was programmed in C++ using the SDL Framework. As well as 'The Last Cactus' the project also includes a level of a Mario Bros clone and a level editor.

Global Games Jam 2018

Flippers Frequency Fight was our entry into the Global Games Jam 2018 during which I worked as one of 3 programmers, alongside 5 artists making up our team. The project was great fun to work on, as well as providing valuable experience working collaboratively in a larger team, and gave me the opportunity to gain an insight into the workflow used by games art students to produce assets.

Flippers Frequency Fight can be viewed on the GGJ website.

Taxi Town

'Taxi Town' was a project completed for the second semester assignment of my Fundamentals of Game and Graphical Systems module. The assignment was to create a 3D application using OpenGL.

The project was a great learning opportunity and the first 3D game I created without the use of a games engine. Some features the project gave me chance to implement included: