top of page

Generalised Soft-Body (C++, DirectX11)

MSM Mesh Generation

A Mass/Spring soft-body simulation combined with FBX mesh generation. Automatically converts FBX vertex based meshes into mass-spring structures compatible with the Mass/Spring model. Using one of three algorithms to create either, a soft-body chain, plane or volume. The soft-body can then be exported to be simulated in game engines such as Unity or Unreal.

2D.png
Tear.png
Cover.png
Generalised Soft-Body

Welcome to Kojima Island, home of racing mini-games and the party car championship. Compete with friends across a variety of mini-games including traditional cops and robbers to wacky paragliding target practice. Creating a couch racing experience, you just can't miss. Produced as a final year multi-team cohort project. 

  • Gameplay:

    • Programmed the Cops and Robbers mini-game 'Drive and Seek', including player behaviour and waypoint system.

    • Implemented a car swapping system for use by both gameplay and background systems.  

  • Engine:

    • Authored a message system that expands on Unity's Event system, allowing for non-intrusive interactions between encapsulated systems. 

    • Wrote a system to manage game states and the allocation and deallocation of mini-game assets, upon transfer to and from the overworld.

    • Produced common mini-game functionality, such as game phases, team-based spawning and handling point based victory scenarios. 

Kojima2.png
Kojima3.png
kojimadrive.jpg

Kojima Drive (Unity, C#)

Couch Party Driving Game

Kojima Drive

Suit-up your survivors using whatever you can get your hands on to brave the zombie horde. Players must roll and weld a workshop of junk together to create makeshift suits of armour ready to take on the apocalypse just outside the door. 

  • Gameplay

    • The welding system was repurposed from a physic based car building game. Reworking the system to manage the welds per Skeletal Bone collider, with the ability to snap between weld anchors and rotate around their axis.

  • Engine:

    • AI programmer for zombie and survivor pathing decisions, animation management and dynamic role behaviour. Developed using behaviour trees, grouping hierarchies and a dynamic ability system.

    • Created a system to organise zombies into groups relative to a sub-divide level of interconnected areas. Allowing zombies to be deactivated relative to the survivors' current position.

    • Developed a system of dynamic asset pools to group zombies into active, inactive and reserve groupings, allowing for real-time reassignment of AI without instantiating a new actor. 

Final 7.png
Survia.png
Survia2.png

Survival Titans (Unity, C#)

Couch Co-Op Survival Game

Survival Titans

Soft-Body Cleaving (Unity, C#, HLSL)

Simulating CSG applicable MSM Soft-bodies

Creating free-flowing objects that can be cleaved in real-time accurately using the polygon data of another volume or plane. Utilising Constructive Solid Geometry Boolean Operations and GPU mass/spring model simulations to produce cleavable soft-bodies. Completed as part of a research project to determine the viability of this simulation for use within the game industry.

CSG Sta.png
CSG NV.png
CSG HV.png
Soft-Body Cleaving

The universe is smaller than you would think and it's every ship for themselves. Dodge meteors and joust any that stand your way into the maw of a black hole, in space, only the most iconic ship survives.

  • Gameplay:

    • Programmed the Black Hole gravity system, using an omnipresent force and trigger volumes along the arms of the black-hole to pull ships towards the centre of the black-hole. 

    • Developed a meteor obstacle system, that randomly spawns a variety of asteroids using a controlled level of randomness and increasing levels of intensity to prevent avoidable patterns. 

  • Artwork

    • Produced the black and white pixel art used throughout the project, to meet the monotone pixel art aesthetic.

EventHorizon.png
Event Horizon.png

Event Horizon (Unity, C#)

Competitive Couch Area Game

Event Horizon

Work fast to transport survivors through the zombie apocalypse to the next safe zone before the horde closes in. Strategy and quick-wits will be your greatest asset, brute force will only going get you so far.

  • Gameplay: 

    • Programmed a player movement system that allows for hot swapping between survivors and creates a responsive but challenging game feel. Using reduced friction to slow changes in direction, adding to the tension.

  • Engine:

    • Authored the horde AI to manage the global and local decision through world states and behaviour trees respectively. To ensure growing pressure as time ticks away and zombies change from solo assaults to chasing down survivors as a horde.

  • Design:

    • Produced a maze layout that provides multiple roots for players to navigate and areas for zombies to spawn. Translated into a level that disguises paths, barriers and spawns points as roads, houses and organic clearings.

Zombie! Run 2.png
zombieo.png

Zombies! Run (Unity, C#)

Top Down Maze Game

Zombies! Run

Ascension (Unity, C#)

Competitive Couch Tower-Climb Game

Race a friend to ascend through a flaming hellscape as brimstone rains down from above with the only option to either dodge or brute force your way through. In the end, only the fastest will receive salvation.

  • Gameplay: 

    • Created environmental hazards and booster pads to populate levels with more variety. Hazards can be replaced to include more enemies. Creating a wall of brimstone, that requires tactical brute force to pass and remain in the lead.

    • Authored a player movement system that forces the actors to rise automatically, focusing player control on rate and direction of ascent. With collisions and stopping disabling movement momentarily, to encourage tactical usage and ensure constant progression.

  • Engine: 

    • Developed a procedural level generator, that progressively increases the number of environmental hazards and speed boosts to ramp up tension towards the end of a round.

ascension.jpg
aSCENSION2.png
aSCENSION3.png
Ascension

Lava is pouring in from every angle, your only chance is to climbing the endless network of caves to find an escape route. Manipulate the environment to open new paths to stay ahead of the ever-looming lava flow.

  • Gameplay:

    • Created a player movement system that includes double and wall jumping mechanics for more dynamic tower climbing.

  • Engine: 

    • Developed a procedural level generator, utilising stitching together level segments created from artist friendly textures maps. Using adjoined segment data to ensure the player has at least one path through the tower. 

    • Implemented a lava fluid system using a cellular automata to rapidly create a variety of lava flow logic with understandable patterns that players can plan around, whilst maintaining a palpable level of threat to the player. 

LavaRise2.png
LavaRise1.png
Build Screenshot 2018.05.03 - 10.49.43.6
LavaRise3.png

Lava Rise (Unity, C#)

Rogue-Like Tower-Climb Game

Lava Rise

Time Manipulator (Unity, C#)

Entity Time Manipulation Simulation

Based on the rewindable gameplay mechanic from the puzzle platformer Braid, allowing marked entities to be rewound to a previous state in real-time. The system was developed with expansion in mind, utilising a reusable structure that can be adapted to other time-based scenarios. Currently, the simulation includes rewindable: position, scale, rotation and particles.

Rewind2.png
Rewind.png
Time Manipulator
System Analytics

System Analytics (Unity, C#)

Computation Analytics Tool

A development tool for analysing and identifying excessive computation usage of different Unity asset simultaneously. Visualised using Unity Editor UI with options for multiple graphical layouts and object sorting. A useful tool when a deeper comparison of Unity objects is necessary during the process of optimisation.

Analytics.png
CoverPage.png
  • LinkedIn Social Icon
  • Twitter
  • YouTube

©2019 by Harry Davies.

bottom of page