Portfolio

Game Design and Programming

SAE QANTM

Welcome to my portfolio.  Here you will discover pieces of my work from the Games Development degree I have been completing at SAE QANTM in Brisbane, Australia.  The initial two trimesters of the course have introductory units into scripting, game theory and design and media studies.  Following these trimesters is where that knowledge is applied in multiple group projects that simulate a studio environment.

Major Project (February – August 2016)

Guinea PigGuinea Pig

This project was the focus of my major project at SAE Brisbane. It is a 2D mobile auto runner set in the world of a failed experiment trying to survive. My primary role on this project was that of Game Programmer covering the software architecture and implementation of all of the systems (including gameplay, UI, and more) though I did assist with in most areas such as game and level design, audio creation, and more.

This title was released on the Apple App Store and Google Play Store on 16-Aug-2016.

Key Technologies:

  • Unity
  • C#
  • iOS / Android

The tasks I was responsible for were:

  • writing code to a high standard;
  • designing the software and system architecture;
  • implementing game play mechanics and systems;
  • implementing UI and player feedback systems;
  • assisting with game and level design;
  • management of the git repository;
  • management of build releases for Google Play and iOS App Stores

Available on    Google Play      iOS App Store


 

Make A Thing (Jan 2016)

driftDrift

Project Info:  This project was made during the January 2016 Make-A-Thing.  The theme words were Blue, Medley and Error.  My role on Drift was of a designer and programmer.  I created the level using a loose layout from another team member, posed the characters for each of the events, set up environments and visual effects, and was a programmer mentor. This title won the Turbo Smooth (Most Redundant Polys) and Best Game Sound awards.

Key Technologies:

  • Unity
  • C#

The tasks I was responsible for were:

  • 2D & 3D asset creation;
  • programming mentor;
  • contributing to level design;
  • creation of the level and environments;
  • asset placement and posing;
  • implementation of visual effects;
  • identifying, debugging and fixing issues

Theme: It is an experience where the player controls a paper plane that drifts through a small village watching the events unfold for two children.

   Download (199 MB)


 

Make A Thing (Sep 2015) & Major Project

chickuziChickuzi’s Revenge

Project Info:  In September 2015 the local game jam called Make-A-Thing was held.  Make-A-Thing is a 40 hour game jam that is held on campus for a week starting from 9am to ~5pm each day.  The words provided for this session were: Scapegoat, Dapper and Clouds.

My role on this project in the game jam was being a mentor and programmer.  The game we created won the Best Game and Best Game Sound awards.

This project was Greenlit on Steam in July 2016.

Key Technologies:

  • Unity
  • C#

The tasks I was responsible for were:

  • programming mentor;
  • design and implementation of a map import and loading system;
  • contributing to character input controller;
  • contributing to systems design;
  • contributing to game design and technical design documentation;
  • agile project management using the SCRUM methodology;
  • identifying, debugging and fixing issues and shaders

Theme: In this third person voxel shooter you control Chickuzi, a dual wielding, uzi loving, revenge driven chicken that unbeknownst to many is the real hero of Easter.  Embark on a rampage through the fully destructible Carrot city disguised as one of the easter bunnies as you cause mayhem in an attempt to take revenge on the Easter bunnies from stealing your eggs. Run through the city to reclaim your eggs and collect stupidly powerful weapons to unleash Chickuzi’s ultimate city destroying power. However, don’t let the rabid rabbits get close they are literally exploding with rage.

   Download (35 MB)


 

Games Studio 3 (Feb – May 2016)

This unit covered mostly C++ based projects with optimisation and networking as the focus.  The four projects for this unit were solo based but with group discussions about the techniques and algorithms used.

RayTracerRay Tracing Optimisations

This project started with an unoptimised ray tracer with default scene provided.  The goal was to try to reduce the time it took to render the scene that was approximately 1 minute depending on hardware used.  An additional scene was created by using a Kinect to collect the point cloud data of the class which took well over an hour to render.

I researched various spacial partitioning algorithms and settled on a bounding volume hierarchy algorithm, when implemented, improved the performance greatly.  With the addition of multi-threading and operation distribution using parallel patterns library (PPL) across multiple cores, and utilising SIMD operations also helped to improved the performance of the ray tracer.

With all of the optimisation techniques used I managed to reduce the rendering time of the first scene to around 0.5 seconds, and the second scene to under 1 second.

Key Technologies:

  • C++
  • Lua

   Read More

 

DrawClientNetwork Draw Client

The network draw client project was used as an interactive art installation for the end of trimester gallery event that was open to the public.  Each student developed their own client that connects to the server and allows the user to blindly draw pixels, lines, circles and rectangles to it.

This required sending UDP packets to and receiving from the server.  User interactivity data was collected and periodically displayed to the user as a heatmap to provide another form of expression of the user’s art.

I built a test client in C# using WinForms for the UI to quickly test the server and re-familiarise myself with networking.  This was followed up with a C++ client being developed using SFML to provide the graphics and networking layer.

Key Technologies:

  • C#
  • C++
  • SFML
  • Sockets

   Read More

 

FlockingSimFlocking Simulation Optimisation & Tools

A base flocking simulation codebase written in C++ was provided to each student with the objective to optimise and build in additional functionality to personal it.

To extend this project, I added a custom boundary to restrict the boids from flying off forever.  Predators would convert prey into predators, like zombies.

To allow external users to use the simulation I built a C# WinForms configuration tool to provide customisation of the random seed, boid sensors, updates, spawn locations and number of boids for the simulation.

To help the user understand the data of the simulation a HTML report was generated with a graph comparing the prey vs predators over time, an activity heatmap and statistics of the simulation.  This was displayed to the user upon completion.

Key Technologies:

  • C++ (flocking simulation and optimisation)
  • Box2D
  • C# (reporting tool)
  • HTML/CSS

   Read More

 

WeatherArduinoWeather Data Project

This project had multiple stages to it due to the content that needed to be covered. The process started of building an Arduino weather station that required sourcing parts, soldering hardware components together, and programming the board to record the weather data at a set interval to a CSV file per day.

An issue occurred that provided us an opportunity to debug both the libraries provided for the components and the hardware itself.  The issue was the timestamps that the RTC chip outputted were not correct when the device was powered via a power cable.  However they were correct when it was powered by USB.  We discovered power cable used was not provided enough voltage and was corrected by finding a cable that output the correct voltage.

Once enough data was collected, we collaborated to parse the data and convert it into a MIDI sequence.  This was implemented as a C# application using the midi-dot-net library.

Key Technologies:

  • Arduino
  • C
  • C#
  • midi-dot-net

   Read More


 

Games Studio 2 (Sep – Dec 2015)

The second Games Studio unit for programming starts off more lecture based to help teach 2D and 3D math, rendering, AI and some game engine sub-systems.  After the halfway point of the trimester is where the major project for the unit begins with designers and programmers forming small groups.  The major project had a design constraint where player(s) must feel an element of Trust in one or more instances while playing the game.

ZurvivorZurvivor

Project Info: This was the major project for the Studio 2 unit with a development time frame of 6 weeks.  The brief provided was to design and build a game where player(s) felt an element of trust either during or after the play session.

My role on this project was the technical lead and only programmer.

Key Technologies:

  • Unity
  • C#

The tasks I was responsible for were:

  • scripting the core game loop;
  • scripting the game play systems;
  • design and implementation of AI behaviour for the zombie NPCs;
  • design and implementation of a 2D A* pathfinding system;
  • design and implementation of the day transitions;
  • implementing UI hooks and triggers;
  • implementing multiple player input via game pads;
  • contributing to game design and technical design documentation;
  • agile project management using the SCRUM methodology;
  • identifying, debugging and fixing issues;
  • build management for PC

Theme: Zurvivor is a four player, non-violent zombie survival game where players are trapped in a quarantined town filled with an ever growing zombie horde. Your goal is not to defeat the zombie threat but to survive the five days before the rescue helicopter arrives. With limited resources scattered around town can you survive this unforgiving world? Can you trust you team?

   Download (54.9 MB)

 

Sell OutSellOut

Project Info: Sell Out the other major project for the same Studio 2 unit.   The development timeframe was 6 weeks for this project.

Key Technologies:

  • Unity
  • C#

The tasks I was responsible for were:

  • contributing to the technical and system design;
  • scripting the audio manager;

Theme: Sellout is a 4 player twin-stick shooter, designed around the concept of trust. Players control two characters each and work together defending a bank vault from SWAT forces while grabbing as much money as they can. With only survivors getting a cut players must watch out for their friends, those that fall return for revenge as members of the SWAT.

   Download (55.9 MB)

 

Virion Map EditorVirionLevelEditor

Project Info: Games Studio 2 requires programmers to develop tools to help aid in the development of a game.

The original pipeline for map development and importing them into Virion was using Excel for a hex grid based map.  This was error-prone and required an excessive effort from the designers to test.

To help improve this pipeline, an “in-engine” editor was created within Unity that allows for the creation of a map visually using in-game assets and easier access to testing.

Key Technologies:

  • Unity
  • C#

   Read More

 

ChickuziLevelParserChickuzi Map Data Parser

Project Info: Games Studio 2 requires programmers to develop tools to help aid in the development of a game.

The major project, Chickuzi’s Revenge, required a tool and system to load maps designed in Minecraft level editors (notably MCEdit) and were exported as schematic files.  It was required to parse the NBT binary data, build the voxel terrain, load custom assets and be playable within the game.

This tool and supporting systems took under a week to develop with further iterations scheduled for future content.

Key Technologies:

  • Unity
  • C#

   Read More


 

Games Studio 1 (Jun – Aug 2015)

The first Games Studio unit sets the stage by formalising the process of developing a game.  Many processes are utilised throughout the cycle of each project.  Some of these processes include: ideation, pitching & feedback sessions, documentation, project & risk management, paper & rapid prototyping, play testing, reflection and more.

BridgeDashBridgeDash

Project Info:  This was the first project of Games Studio 1. It was an individual project to introduce the design and production process of the unit with a focus on the mechanics from the MDA framework.

The development time was less than two weeks where the first week was ideation, pitch, feedback and documentation. Leading into the second week was production, play testing and hand off.

The tasks that I completed on this project were:

  • 2D asset creation;
  • scripting the core game loop;
  • scripting a gesture-based input system;
  • implemented the UI;
  • game design and technical design documentation;
  • identifying, debugging and fixing issues;
  • build management for PC and iOS (Testflight only)

Theme: An infinite runner where you control Robot Boy and your job is to secure the path ahead of him by clearing rocks by tapping on them and building bridges by swiping in the gap.

The control scheme was designed for a touch device such as an iPad.

Key Technologies:

  • Unity
  • C#
  • Windows
  • iOS

   Download (11 MB)

 

VirionVirion

Project Info:  Virion was the first group project of the unit where we had a duration of four weeks to create a dynamics focused game.  It also had to be a turn based game that did not allow a team wipe win condition.

Paper prototyping and multiple methods of gathering feedback was introduced and used throughout the development cycle of this project.

The tasks I was responsible for were:

  • 2D asset creation;
  • scripting the core game loop;
  • scripting the game play systems;
  • implementing UI hooks and triggers;
  • implementing player input via game pad, keyboard and touch devices;
  • contributing to game design and technical design documentation;
  • agile project management using the SCRUM methodology;
  • identifying, debugging and fixing issues;
  • build management for PC and iOS (Testflight only)

Theme: Virion is a turn-based strategy that focuses on territory control.  Each player can perform two actions per turn.

The control scheme was designed for xbox controllers and/or keyboard due to the brief constraints.

Key Technologies:

  • Unity
  • C#
  • Windows
  • iOS

   Download (15.3 MB)      Watch

 

SugarCrashSugarCrash

Project Info: This was the third and final project of the unit which focused on Aesthetics.  It had a duration of five weeks and introduced cross discipline into the groups with animators.

This project had a tough brief that required the player to play as a child character and that they must feel Wily, either during or after the play session. There could be no text, no GUI and no speech (of any existing language) after the main menu.

This project taught us a lot about scoping future projects and how to pivot the game’s design based upon gathered feedback.

The tasks I was responsible for were:

  • scripting the core game loop;
  • scripting the game play systems;
  • design and implementation of AI behaviour for two styles of NPCs;
  • design and implementation of the tutorial system;
  • implementing UI hooks and triggers;
  • implementing player input via game pad;
  • contributing to game design and technical design documentation;
  • agile project management using the SCRUM methodology;
  • identifying, debugging and fixing issues;
  • build management for PC

Theme: SugarCrash is a 3D side scroller where the player is a child on Halloween and they need to get all of their favourite candy and eat it!

Key Technologies:

  • Unity
  • C#

   Download (44.2 MB)

 

Can You Please?…CanYouPlease

Project Info: Can You Please?… was a side project where I joined a Games Studio 2 team for their major project of the unit.

The brief provided was to design and build a game where player(s) felt an element of trust either during or after the play session.

This project was developed over five weeks with multiple scheduled play test sessions to seek  feedback on how the design met the main theme.

The tasks I was responsible for were:

  • scripting the core game loop;
  • scripting the game play systems;
  • contributed to the design of level transitions and events;
  • implementation of the level transitions and events;
  • implementing player input via keyboard and mouse;
  • contributing to game design and technical design documentation;
  • identifying, debugging and fixing issues

Theme: This is a first-person adventure where the player can choose to perform the actions requested by the voice.

Key Technologies:

  • Unity
  • C#

   Download Not Available