Berry Glider
Berry Glider is a mobile game built in Unity using C#. This game was produced by a small team of five people. In this game, the player controls a sugar glider in a downward 2D platformer built for a tablet.
Overview
Engine: Unity 2D
Tools and Languages: C#, Perforce/Helix
Role: General Programmer
Skills: 2D Mathematics, Gameplay Programming, Sprint Planning, Small Team Development, Mobile Development
Berry Glider is an unpublished game produced for the Android Tab A. It was a group effort with four other individuals, including one programmer. This project allowed my teammates and me to explore Agile methodologies as well as practice sprint planning and task management. My team designated me as the lead programmer which mostly boiled down to me handling feedback directly and designing the overall architecture of our project.
Starship
Starship is an assignment that was done in semester one of my time at Guildhall. It mimics the classic "Asteroids" game. This is a simple implementation of basic rendering, basic physics, and basic AI.
Overview
Engine: Personal Engine
Tools and Languages: Visual Studios, C++, OpenGL, Perforce/Helix
Skills: 2D Mathematics, Basic AI, gameplay programming
In Starship, the player controls a light blue ship in a classic "Asteroids" - like game. Asteroids and simple enemies spawn outside of the map and drift inwards. The player uses simple physics to move around and shoot at the other entities. As the player defeats entities, they progress through waves. To aid the player, there are three AI, each with different behaviors. Plugging in an extra controller lets a second player join in to play multiplayer.
Overview
Engine: Personal Engine
Tools and Languages: Visual Studios, C++, OpenGL, DirectX11, Perforce/Helix
Skills: 2D Mathematics, Textures, AI Pathfinding, Simple AI, Gameplay Programming
Libra is a game where the player controls a tank in a 2D uniform
tile-based game. The AI use simple distance-fields to pathfind and the maps are procedurally generated. I explore a primarily sub-classed entity management system and data drive my gameplay using XML. This was my first implementation of textures in my rendering system as well as my first look into raycasting using a step-and-sample method. This game was an interesting foray into more complex 2D graphics as well a study into the downsides of
sub-classed entity management.
Libra
Libra is a 2D Grid-Based game in which the player controls a tank. It implements simple 2D Graphics using textures and sprites and pathfinding AI that uses distance fields.
Sound Heatmap Population
In Libra, there is a map I created that acts as a sort of maze (Appropriately titled Librynth). In this map, there is a unique entity type that navigates the maze by "sound." For all AI navigation in this game, we simply use
distance-fields and heatmap propagation. For this special type of entity, called Taurus, there is an additional heatmap used to find it's target. This heatmap is stored locally on the map and contains all of the "sound" that is created within the map. Anytime an entity shoots or explodes, it adds to the heatmap at it's location. Taurus will then find the heatmap value that is the largest and navigate there.
​
In order to make sound propagate around corners and behave the way I wanted, I simply created a distance field from the tile the sound took place. The maximum value of the distance field is based on how "loud" the sound is. Once the distance field is created, I invert it and add the resulting heatmap to the map's local heatmap. This gives a heatmap that accumulates all instances of sound in the maze and makes areas become more "interesting" to Taurus depending on how active the area is. Below is an example of the Taurus code as well as a few helper functions used on the heatmaps.
Overview
Engine: Personal Engine
Tools and Languages: Visual Studios, C++, HLSL, DirectX11, Perforce/Helix
Skills: 2D Mathematics, Textures, AI Pathfinding, Simple AI, Gameplay Programming, Rendering Systems
Doomenstein
Doomenstein is a 2.5D First Person Shooter that is a clone of the original Doom games. It features billboarding view-dependent sprites, monolithic actors, and split screen multiplayer.