Welcome

Hi, my name is Aaron Walker and I am currently finishing my final year at Abertay University studying Computer Games Applications Development.

Previous Work

DES310 Project -click for more

Overview of generated Rally Stage

Honours Project- Procedurally Generated Rally Stages

Braise Satan

Braise Satan is a 3D first person, cooking simulator set in hell. For Braise Satan I worked on different aspects of the game including the imp ai, the combat system and menus. To create the fun and engaging ai I made use of behaviour trees to control the main ai behaviour including when to roam and when to attack the players ingredients. The combat system although relatively simple hooked players with the ragdoll physics that partnered it, playing in to the light hearted nature of the game. Finally, I spent time using the canvas panels and built in UI in unreal to create the menus for the game and my own controller system used for the menus.

The game has officially released on steam now and can be found here:

https://store.steampowered.com/app/3295990/Braise_Satan/

For my Honours project I wanted to investigate the use of Procedural Generation Techniques for the use of creating realistic rally stages. Using Unreal Engine and C++, I was able to produce a prototype application that could generate unique worlds by utilizing Splines, Procedural Meshes, Perlin Noise, SPRNGs and PCG Graphs. The resulting application was able to generate full, varied stages up to 4km long.

Graphics

My scene is comprised of 2 planes, one representing a mountain and the other the waves of the water at the base of the mountain. The scene also contains a cube to showcase the shadows being cast from my 2 different types of lights.

One of my planes uses a height map to create a mountain which can have its height controlled by amplitude and the other uses vertex manipulation with a sin wave to simulate waves through the y axis of the plane. The normals are then recalculated for the waves so that the lighting is applied correctly for the crests and troughs of the plane.

My directional light is implemented to illuminate the whole scene to show that the textures are correctly applied to both the mountain and the water below. In addition, the directional light casts dynamic shadows which can be seen from the light being directed against the cube.  To demonstrate the dynamic shadows the directional lights, position and angle can both be controlled with gui sliders.

The other type of light in the application is a spotlight. My spotlight has full control of position and colour with the position showcasing the spotlights attenuation. The spotlight also casts shadows on the whole world and is used to demonstrate my post process effect of volumetric lighting or God rays.

I chose to implement God rays as my post process which can be controlled with a few variables including decay, exposure, density, weight and the number of samples impacting the quality of the rays. The effect works by calculating the vector from the current pixel to the light source before iteratively stepping along the ray direction, sampling the texture and attenuating the sample by the illumination decay factor and the weight. Before the output colour is multiplied by the exposure.

Click the image of the scene for the link to my YouTube video demonstrating the project.

Honours Project