About Me

Hi! I'm Eliza, a games programmer in Newcastle, with a Bachelor's in Mathematics and Master's in Computer Game Engineering. I have 5+ years experience using Unreal Engine, and several AA/AAA projects under my belt.

Video games have been a part of my life for a long time. I grew up playing Spyro and Banjo Kazooie with my dad, who bravely took on the levels that were too hard for me. One of my fondest memories was visiting him after school, and finding out he completed Spyro the Dragon and unlocked the secret level for me, and I was ecstatic. I am incredibly honoured to create memories just like that for others.

I spend my free time reading, attempting to rollerskate, and playing too much overwatch. Recently, I have started baking, but I don't bake often because I end up eating it all myself (oops).

Skills

Projects

Sea Of Thieves - Rare

    Coconut Lizard
  • C++, Modified UE4
  • Multiplayer, PC/Xbox
  • Worked predominantly on gameplay


Unreleased Title

    Coconut Lizard/d3t
  • C++, UE5
  • Single player, PC/Xbox/Playstation
  • Gameplay


Unreleased Title

    Coconut Lizard/d3t
  • C++, UE5
  • Single player, PC/Xbox/Playstation
  • Gameplay
  • Predominantly worked on AI


Minion Blast - Universal

    Coconut Lizard/d3t
  • C++, UE5
  • Gameplay
  • Engineering support for a team lacking programmers
  • Addressed performance issues


A Changing Landscape: Advanced Graphics Coursework

I was tasked with creating a landscape that changed over time, using C++ and OpenGL. I was given a basic graphics framework, which I built on throughout the module. I chose to theme my scene around the given skeletal mesh for the hellknight from Doom.

    Terrain:
  • Heightmap is generated with an index buffer, using a file to read in the heights. It rises over time using a changing uniform passed to the shader.
  • Terrain has two textures, each with their respective normal/bump map, and they're blended between one another as time passes.
  • Water is transparent until the heightmap has fully risen, then the alpha component starts to rise so it appears.
  • Spikes are contained in a scene graph, and employ frustum culling to reduce draw calls.
  • Lighting:
  • Point light is used to illuminate the scene, using the Phong reflection model
  • A spotlight is placed at the rear of the scene, and rotates in a circle using a sine wave in its transform.
  • Dynamic shadow mapping is used on the hellknights in the scene.
  • Cubemap has been utilised for the skybox in the background, and the reflections in the water.
  • Other Features:
  • Gaussian blur is the main post-processing effect I implemented, using ping-pong texturing.
  • Included a very basic split-screen effect, that uses the same camera view in both panels.
  • Basic skeletal animation used with the hellknights.


Unoriginal Goose Game: Advanced Game Technologies Coursework

The project was based around Untitled Goose Game- A player must collect apples in the game to earn points, whilst avoiding the AI who make the goose drop any item it is holding. I implemented the physics and collisions, AI and networking for this project, using C++ and Visual Studio.

    Physics:
  • Linear and angular motion implemented.
  • AABB and Sphere collision volumes utilised.
  • Made use of Collision layers to reduce the amount of detection tests.
  • Quad Tree spatial acceleration structure used for the broad phase detection.
  • Collisions are resolved by projecting the volumes outwards from collision point along the normal, and then applying an impules in the correct direction to change the velocities.
  • Basic constraint bridge is used in the back of the level to demonstrate more advanced collision resolution.
  • AI:
  • A finite state machine is used for one AI character, which chases the goose if it's within a 10 unit distance, and then transitions to idle state if the goose is further than 15 units away.
  • Second AI character uses pathfinding to chase the goose if it is holding an item, and if the AI collides with the goose, it drops whatever it was holding.
  • A* is used for the pathfinding. The world grid is represented with a text file that is read in, and if a path is found, a force is applied to the AI to push it towards the fist node in the list.
  • Networking:
  • Player can choose to start the game as a client, or as a server.
  • Client sends a packet with their position data, which the server receives and updates accordingly.
  • Client also sends a score packet to the server.


Contact

  •   LinkedIn
  •   elizapreston@hotmail.co.uk
  •   GitHub

Elements

Text

This is bold and this is strong. This is italic and this is emphasized. This is superscript text and this is subscript text. This is underlined and this is code: for (;;) { ... }. Finally, this is a link.


Heading Level 2

Heading Level 3

Heading Level 4

Heading Level 5
Heading Level 6

Blockquote

Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan faucibus. Vestibulum ante ipsum primis in faucibus lorem ipsum dolor sit amet nullam adipiscing eu felis.

Preformatted

i = 0;

while (!deck.isInOrder()) {
    print 'Iteration ' + i;
    deck.shuffle();
    i++;
}

print 'It took ' + i + ' iterations to sort the deck.';

Lists

Unordered

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Alternate

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Ordered

  1. Dolor pulvinar etiam.
  2. Etiam vel felis viverra.
  3. Felis enim feugiat.
  4. Dolor pulvinar etiam.
  5. Etiam vel felis lorem.
  6. Felis enim et feugiat.

Icons

Actions

Table

Default

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Alternate

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Buttons

  • Disabled
  • Disabled

Form