Ashley Burrows

Games Design Programmer

Hi, my name is Ashley Burrows. I am a games programmer who recently graduated with a First Class Degree in Games Science (Games Programming) at Kingston University

I am currently looking for a work placement and would love to be considered for a place in your organisation. Please take a look at the games I have developed through my study below.

If you have any questions, please head over to the contact page.


Explore my games and progression made during my time at Kingston University below


Final Year Projects

Individual Final Year Project

Made within Unreal Engine using a combination of C++ & blueprints. This is a multiplayer project with the focus being on CO-OP Horde.

A loot pool has been used for optimisation for the main combat and AI. Within the loot pool, there are variety of different projectiles and explosions. I have separated my concerns.

For my design decision, I decided to use a separate AI loot pool to be used for the game mode. An example would be, the AI loot pool will only exist on horde mode but for duel mode, it only needs to know about the combat loot pool since I have no intentions of using AI for duel mode.

Lucky for me, I am a quick learner and after doing extensive research into Unreal Engine multiplayer I decided to make important decisions for my design early in my prototype to save time for the future.

For the main combat, I decided to use an interface to communicate with my loot pool. The best part about this for me is, every player and AI share the same loot pool.

For multiplayer purposes, I had to take care of important rules when a player or AI would call my interface functions. To explain in more detail, within a single player game you don't have to worry too much about who does damage to you. Simply put, It's the player VS the AI... However, in multiplayer when it comes to player stats (player states) within Unreal Engine.

You need to define who owns the projectile every time you attack since the projectile is never destroyed using a loot pool, it would remember the last person who fired which wouldn't be correct if a player calls that projectile that has been already used.

After learning more about optimisations techniques, I implemented a map that is contained within the projectile class which uses a key to pull the correct explosion within the loot pool and because this is a multiplayer game, it is important to have a fast method specially as you must deal with network traffic on top. To minimise network traffic, I only made objects that need to be seen by clients replicated and if the objects move within game, only then would I make them replicate movement.

There 4 different AI's with their own behaviours including a boss. Players can pick up spells which is stored in an inventory component. Players can only pick up an attack if they don't have it. All AI'S have their own behaviour trees.

A projectile has its own damage variable but within the weapon class is a damage multiplier. Once the attack function is called it uses the multiplier from the weapon and applies it to the damage variable for the projectile selected.

For the weapon class, there's a default weapon but the additional weapons are child classes of the weapon class.


Shaders Unity Project

Made within Unity using C#. The goal was specifically to focus on learning new shaders. Within this project, there are 4 shaders which are dissolve, hologram, electricity and a laser. The laser was the most complex.

I only had to focus on shaders for this task but thought it would be fun to go the extra mile and turn a shader project into a small racing game with an AI.



Blood Ascent (group project)

Made Within the Unreal Engine using blueprints. Specifically handled the game manager and some mechanics such as all the lights turning off then, activating one by one firing a projectile towards the ancient vampire and the coffin opening. A vampire VR game where the player emerges from a coffin. The objective is simple. Wipe out all the enemies to resurrect the ancient vampire.



Shape Escape Mobile Game (group project)

Made within Unity using C#. I decided to try a new approach by designing levels as there weren't enough programming objectives to be shared around.

I was able to give programmers ideas to make the game more fun, such as a shape splitting into two and then controlling two of the shapes to get into the goal.

I got to make some particles and place them at the win objectives. I then put some basic analytics in there to track how many people downloaded the game.

A fun game for everyone to play where the objective is simple. Get to the objective. Level difficulty gradually increases throughout.



Unity MP - Prop Persuit (group project)

Made in Unity with C#, this game uses Photon Networking. I handled the game manager which was quite tricky using Photon. handled player spawns, disconnecting early, making a blurred shader and applying it only to the hunter. disabling player movement until it was time for the hunter to hunt. If the host left, a client within the game would then become the new host.

This game is identical to Garry's Mod Prop Hunt. Simply take the shape of the object you desire and blend in to hide from the hunter.



2nd Year Projects

Unity Project

Made within the Unity Engine using C#. I effectively made a player level up mechanic. After eliminating an enemy, a reward function would be called to give the player XP. I then used a switch statement to define how much XP you should have to go up a level. The player starts off with 2 attacks each with their own damage.

There are collectables such as potions which the player can use to heal. Accepting quests is based off a Boolean condition and for the text above the NPC to appear is measured by distance from the player.

Fight AI including a boss to go with it. I made use of co-routines which is great for time events.



Pawn Trials (group project)

Made within Unreal Engine using blueprints. This was where I learned to use animations blueprints for the characters and how to aim towards my mouse.

Players can use shields once they pick them up. I created a shield which is based off a timer. It changes the Boolean which is wrapped around the damage functionality and after the timer has passed, it changes the Boolean back making the player vulnerable again. Each person in the team made their own level using the actors we created. I got to create the lasers and the gravity field.

A fun platform game where you encounter AI and must avoid fire traps to get to the next level.



Hero

Made within GFC using C#. The purpose of this task was to make shaders. We had to place objects in the scene and then apply the materials to them. Then finally apply a shader if we planned on using one to help make our scene. The downside for using GFC was you had to manually recompile every time you changed the coordinates to see if the object was in the correct place. The theme was meant to be showing a transition of the old era to the new.



1st Year Projects

Dragonball

Dragonball is a classic arcade fighter game where the player has power ups which increases the players velocity and power within their attacks. Being the first game I ever made, I didn't have a full knowledge regarding classes and how they communicated with each other. However this was a fun project that helped me learn a lot and furthered my knowledge around classes and game progression. This was my first assignment project for games programming

As instructed by my tutor, we were told to use one class to implement variables and functions to write our game. In someways, this was quite a good idea as it made you understand where the code is running as code is meant to be read from top to bottom. Inevitably, it forced me to strutcure my code and organise the sections in terms of logic. For example, you wouldn't start creating AI functions then write code relating to the players movement then underneath go back to creating AI functions. It would be confusing to write code within one class this way

Thoughout this project I learned how to implement select basic AI behaviour such as seek, random attack timings, conditional behaviours based on health and many more

An in-game house engine and Visual Studio 2015 was used to create Dragonball.


Controls

W - Up, S - Down, A - Left, D - Right
E - Transform into a Super Saiyan when the boss Freiza appears (1st level). Increases character speed
R - Transform into Super Saiyan 3, Goku’s strongest/fastest form in this game


Worms

For my games science project I created my version of the classic game Worms. I really enjoyed this as it was the first platform game I programmed.

As we were using an in-game engine GFC, it made it a lot more difficult in terms of programming. If you're using Unity or Unreal, some concepts are taken care of, such as players being able to stand on the ground. With Unity or Unreal,the physics engine takes care of this with ease. To get through this new issue, I had to use enum states which defined whether the player is on the ground, in the air etc. This made me realise how I could of used some of these features of programming for my other games.


Controls:

Player 1:  A - Left, D - Right, W - Jump
Player 2:  J - Left, L - Right, I - Jump
Right Mouse (hold) - View available weapons
1 (+) Right Click - Select Rocket
2 (+) Right Click - Select Grenade
3 (+) Right Click - Select homing Missle
Left Click - Fire!


DOOM

With the help of a team, I took the lead role in developing our Final year group project; a top down shooter greatly influenced by Doom. The game has three levels, the first two represent full game-play with level 1 progressing onto level 2. However each level can be played separately. The goal is to reach the exit box which is behind a red door. To access this, you must roam the map searching for keys, avoiding traps and accessing areas until you have the red key and can finish the level. Shooting and killing Imps adds to the players score. Level 3 is a small bonus type of map which has different game-play elements from level 1 and 2, featuring a random door puzzle and collision-based interactions

I enhanced my animation skills for the character by making sure other transitions were already playing. This gave a more polished feel. I also polished my bug testing skills as sometimes the imp NPC would walk through walls because the width of the wall was too thin.


Controls

W - Move Forward, E - Open Doors
2 - Select Pistol, 3 - Select Shotgun (if collected)
Left Mouse - Fires weapon