Portfolio



Welcome to my portfolio! Below you can find several examples of my work over the last couple of years. Projects have been divided up into work done as a part of my internship at Snakehead Games, work done as a part of my Game Development course at triOs College, and work done on my own time.

Simply click a link to reveal/hide that section. You can do the same for each individual project within each section.



The below represents my work completed as an intern at Snakehead Games. This internship lasted 4 months and some change, and my duties primarily involved developing for Android and iOS using AS3 and Adobe Air. This role also involved working together with a handful of people from different disciplines, using code subversion via TortoiseSVN, as well as uploading and maintaining games, leaderboards and achievements on Google Play and iTunes.

▶ Jewels & Gems

Jewels & Gems is a fairly straightforward Match Three game built for Android and iOS using AS3 and Adobe Air. This was the first project I worked on at Snakehead Games after familiarizing myself with their mobile engine. Myself and one other person were responsible for the game's programming. My role specifically focused primarily on the graphical effects, match processing, overall polish, and maintenance once the game had gone live.

While working on this project, I learned a lot about collaborative programming on a large project, which included my first experience with code subversion in the form of Tortoise SVN. I also saw a lot of first hand examples of why all the "best practices" I had been taught were in place, things can sure become a big mess in a hurry if one is not careful.

Jewels & Gems can be found on Google Play.
and iOS


▶ Jewels Star Saga

Jewels Star Saga is an evolution of Jewels & Gems, and was built on it's framework. For the majority of it's development I was the only person working on this title, meaning that I was responsible for all of the game's design and unique code up until the final couple weeks of development. This meant writing a design document, creating and balancing the games' levels, adjusting gameplay to accommodate differences between the games, implementing the games' achievements and leaderboards, etc. I am particularly proud of the simulator that I wrote to help me balance the games' levels, the level loading system (which populates levels by reading a 9x9 bitmap), and implementing the games' "daily quest" system.

This project was interesting primarily because of how much of it was on me. Programming wise I learned a lot about interacting with the mobile device to get date information and keep track of achievements and such. Moreso than that though, I just learned a lot about using Google Play and iTunes to manage a game submission, and what it's like to try and balance a game that isn't as number driven as say, an RPG.

The simulator I wrote can be found here.

Jewels Star Saga can be found on Google Play.
and iOS


▶ Zombie Moon

Zombie Moon is a social mobile RPG in a similar vein to the text based browser RPGs that Snakehead Games have been running for years. I was not a part of active development on this game, and so my role was very different, essentially involving helping out when and where it was needed. This meant testing, proofreading, collecting and organizing feedback from players, design feedback, promoting the game at local events, and writing the game's FAQ.

Zombie Moon can be found on Google Play.
and iOS




Below is a compilation of most of my projects I completed during my Game Development course at triOs College. This course covered a wide variety of topics such as Flash, C++, JavaScript, Java, HTML5, Flex, DirectX, XNA and various other game development tools and skills. As a result of the broad nature of the course, some less relevant projects have been excluded (Sound Design, Modelling, Design Documentation etc). These projects are in reverse chronological order, ranging from July 2013 back to January 2012.

▶ Combat Cards

Combat Cards is a game made in Java for Android devices. It was made as a part of my Game Development Course over the span of 1 week, after 1 week of instruction. The concept of the game is a complete rip-off of Final Fantasy VIII's Triple Triad minigame. It's extremely rough around the edges as a result of doing all of the assets myself and not having the time to implement proper AI. I'm pretty happy with how the actual gameplay and deck building/saving elements turned out, though.

My biggest lesson in building this game was just the tribulations involves when interacting with the Android API directly, rather than having Flash/Flex do the work for you. In a lot of ways it felt very liberating having so much more control, even if it was a lot more work. I also learned that programming your own touch/drag handler is no joke.

Combat Cards can be found on Google Play.


▶ Watch the Video


▶ Download the Source


▶ Super Sci-Fi Space Shooter

This game with an incredibly ridiculous name was created using HTML5 and JavaScript. It was completed as a part of the HTML5 segment of my Game Development course, and was created over the span of 1 week after 1 week of instruction. This game was based on an idea that I'd had for a while, for an endless semi-procedural RPG top-down shooter. Over all I'm pretty happy with how it turned out, Super Sci-Fi Ship Shooter Space Time Laser Beam Pew Pew Fun Time is basically everything I imagined it would be. Though I would probably choose a better name if I could do it again.

This project showed me just how different programming in JavaScript can be. It's a very weird language, and it's flexibility can be very handy, but also extremely frustrating at times. This was also my first attempt at making a game with properly scaleable graphics and proper object pooling for projectiles.

▶ Play the Game

Click here to open game in a new window.
Use WASD or the arrow keys to move.
Press space bar to fire lasers or for menu selection.
Press Q or E to fire missiles.


▶ Watch the Video


▶ Download the Source


▶ Elements

Elements is a game that was created using Unity3D and written in Java. The game was originally designed early on in my Game Development course, when we were given the task of creating a theoretical Game Design Document. Later during the Unity segment of the course, I decided to actually make the game, after paring it down to something that was more manageable. The game was created in a 1 week period, after 3 weeks of instruction.

It was a lot of fun bringing this game from concept to fruition more than a year after I wrote the design doc. I learned that Unity has a surprisingly big learning curve, but is incredibly powerful once you get the hang of it. I really appreciate how modular it forces you to make everything. It can be very odd trying to get it's physics to play nice with hand-written code, though.

▶ Play the Game

Click here to open game in a new window.
Use WASD to move. R to shoot plasma.
Press Q/E to change element, Space Bar to shoot chosen element.
Press W while airborne to use jetpack.


▶ Watch the Video


▶ Download the Source


▶ Velocity Nurse

Velocity Nurse was created over the span of 1 week by myself and 2 classmates as a part of the "Advanced Flash" portion of my Game Development Course. Despite the class name, Velocity Nurse was created using AS3 and the Flex SDK/Flash Develop, and thus did not use Adobe Flash at all. Velocity Nurse was also created using the Model-View-Controller design pattern. Unfortunately the game was not quite as complete as we would have liked because of unfamiliarity with using Flex standalone and MVC, but it was a good learning experience none the less. I was responsible for all of the programming on this project.

This project taught me a lot about how local and world position work, as well as how handling assets works. I wouldn't have expected any aspect of Flex to be more difficult than say, using XNA, but apparently I was wrong. You can do a lot of really cool things with a little understanding of how bitmap data works, though!

▶ Play the Game

Game may take a minute to load. Click on the game window in order to play! Use WASD to move, shift to dash, and space to shoot.


▶ Watch the Video


▶ Download the Source


▶ Level Design

Level Design was a pretty fun portion of my Game Development course. The course was a month long and broken into 2 segments of 2 weeks each. First we designed a level on paper for Alien Swarm, and then we created that level using the Hammer Level Editor. Afterwards we did the same for Left 4 Dead. It was very interesting seeing the differences between the two, both in terms of 3rd person top-down vs. 1st person, as well as the difference between Alien Swarm's focus on scripting and events vs. Left 4 Dead's focus on building good levels and nav meshes.

I can't really claim that I learned a lot about designing levels, but I know a lot better what goes into actually making them now. It makes a world of difference if you are diligent about keeping everything lined up properly rather than making it look "good enough". I find it really interesting to think about how the actual engine handles all of the stuff built in Hammer, especially visleafs.

▶ Watch the Video

▶ Download the Source


▶ Torque

Torque is easily the school project I am most proud of. It was made over the span of 1 month using XNA, and was created by myself and three classmates. The scale of this project was such that there was a very noticeable divide between creating the basic RPG engine, and then creating actual content. Considering the time restraint and the fact this game was totally built from the ground up, I'm very happy with how much we were able to accomplish, even if it was spotty and unrefined in areas. I was responsible for 100% of the programming on this project.

I learned a ton about building an engine during this project. I also had a lot of fun exploring some of the things XNA can do above and beyond what we were taught in the course. Probably my biggest lesson was that a lot more thought should have gone into the framework, in particular how I set up the inheritance of various different entities.

▶ Watch the Video


▶ Download the Source


▶ Faceman

Faceman is a game I made as a project during the XNA 3D portion of my Game Development course. it also made use of BEPUphysics. It was completed over the span of 1 week, after 1 month of learning 2D and another month of learning 3D. For this project we were given a few options which would demonstrate a basic understanding of rendering objects in 3D, but I wanted to go for something a little more challenging and with actual game elements. This included learning how to make and import a simple model for Faceman, learning how to do audio, playing with shaders a little bit, allowing for mid-game swapping between keyboard and controller input, etc.

This game taught me unequivocally that 3D is really hard without a good engine. The difference between moving some textures squares around the screen and managing even a rudimentary 3D environment + camera is even bigger than I imagined.

▶ Watch the Video


▶ Download the Source


▶ Star Wars Pong

Star Wars Pong is a game made as a part of the DirectX portion of my Game Development course. The assignment was to test very basic understanding of DirectX, we just needed a demonstration of keyboard inputs, collision, and animation. I decided that was boring and went for something a little more ambitious, including figuring out audio on my own.

At the time, I thought that it was ridiculous how convoluted this project was just to make pong. To some level I still believe that, but I learned a lot about how a "proper" game is set up and manages resources. I suppose perhaps a better way of putting it is, I learned just how many bad practices Flash lets you get away with.

▶ Watch the Video


▶ Download the Source


▶ Lil' Rigs Racing

How this game came about is a bit of an interesting story. Essentially our class was supposed to all work together to create a racing game for the DirectX portion of our Game Development course. When this was decided, I did not know DirectX, but I knew Adobe Flash, and so I decided to essentially prototype the game. As it turned out the project never really went anywhere, and all that really came of it was a concept, some assets and this prototype. None the less I put a good amount of work into it, and Lil' Rigs Racing is still a game that I refer back to to remind myself of certain concepts.

This game was really interesting just because it was so different from the platformers and RPG and word games I had made previously. I learned a lot about how to actually apply trigonometry, radians vs degrees, rudimentary AI, etc. This was also the first time I really got projectiles "right".

▶ Play the Game

Click on the game window in order to play! Use WASD to move and shift to use items.


▶ Watch the Video


▶ Download the Source


▶ Hero of Legend

Hero of Legend was a project completed as the culmination of the basic C++ segment of my Game Development course, after 2 months of instruction. We were given 1 week to work on the project, but were informed what it would be much before that, and I started working on it immediately. The only guideline for the project was that it had to be a text based RPG. I was responsible for almost all of the game's programming and system design. Things like the screen colors, save system and ascii map are all things that I went out of my way to learn just because I had the time and the drive to make a better RPG.

This game was a lot of fun to make. This was the first time I really had an opportunity to really explore polymorphism, pointers and proper object oriented programming. Looking back, it's kind of mind boggling how different making a console text based game is from making a graphics-driven game. It was a lot of fun just designing the game, too.

▶ Watch the Video


▶ Download the Source


▶ Inuknuk Saves the Day

Inuknuk Saves the Day was the first game I made as a part of my Game Development course, after 3 weeks of instruction in the use of Adobe Flash. We were given 1 week to build a game and provided with a story as well as some gameplay requirements. These included that it be a top-down shooter which looped endlessly until 10 enemies were killed or 5 treasures were collected. All other aspects of gameplay were either optional, or else something I added with the time I had left. This game was created by myself.

It was interesting making this game just because I didn't really know what I was doing. I'd never made something object oriented before, and certainly nothing event-based before. I learned a lot about how not to do these things. In particular I learned the importance of properly managing dynamically spawned objects, and to be clever about how certain things are presented.

▶ Play the Game

Click on the game window in order to play! Use arrow keys and space bar to play.


▶ Watch the Video


▶ Download the Source




The projects in this section represent a selection of things that I have made on my own time. Some were for game jams, some were just to tinker, some were intended to be used for something bigger that never ended up happening. This isn't everything I've ever made, just the most notable or those which best demonstrate the way my brain works.

▶ Particle Engine Test

One of the first things I did during my internship at Snakehead Games was create a rudimentary particle system, which is used for many different purposes in both Jewels & Gems and Jewels Star Saga. I found it pretty fun playing around with the particle behaviour, so I thought I might build some kind of AS3 particle engine in my free time. It doesn't do anything complex, but I'm fairly happy with how it turned out. Ironically, while I have never used this particle code anywhere, I did use the radio buttons and sliders in a simulator I wrote for Jewels Star Saga.

▶ Play the Game

Click on the game window in order to play! Click buttons and sliders to modify particle behavior.
Click here to open a bigger version in a new window.


▶ Watch the Video


▶ Download the Source


▶ Pathfinding Test

This is a pretty rudimentary test. A few friends and I had plans to make a mobile RPG, which never really got off the ground for various reasons. The game was going to have a node-based map system, and I decided to tinker around and see how that would work. I couldn't quite figure it out on my own, so I looked up some A* pathfinding and gave it a shot. So now if I ever need to use it, I have a basic implementation of A* to refer back to.

▶ Play the Game

Click on the game window in order to play! Click nodes to move the super awesome triangle about.


▶ Watch the Video


▶ Download the Source


▶ Doki Doki Pulsetime Panic

Doki Doki Pulsetime Panic (or just "Pulse") is a game that was created by myself and 3 classmates as a part of 2013's Global Game Jam. After a good experience utilizing Flash and Air in the Great Canadian Appathon of 2012, we decided to do so again for the Global Game Jam. This time around we had much less time to actually create the game, with weather and travel time cutting into dev time, and no plan to speak of beforehand. We think we came up with a somewhat clever use of the theme heartbeat) though. We were happy enough with our product that we continued to work on it here and there after the fact and submit it to Google Play. I was responsible for all of the programming on this project, as well as submitting to Google Play.

Pulse can also be found on:
Global Game Jam website
Google Play

▶ Play the Game

Click on the game window in order to play! Use the mouse to play the game.


▶ Watch the Video


▶ Download the Source


▶ Teddy Bear Trouble

Teddy Bear Trouble is a game that myself and 3 classmates made as a part of the Great Canadian Appathon of 2012. Staying with the theme of the event, we decided to make for a mobile game using Flash and Adobe Air. Going into the event none of us had ever used Air or done any form of mobile development to speak of, so we just kind of learned on the go. Between that and this being our first game jam type event, we ended up grossly over estimating how much we could get done in 48 hours. None the less we all learned a lot about mobile, planning and team workflow. Plus, we made a mobile game that isn't completely awful. I was responsible for all of the programming on this project.

▶ Play the Game

Click on the game window in order to play! Use the mouse to play the game. You may also use the space bar and arrow keys to move the bear.


▶ Watch the Video


▶ Download the Source


▶ Game Picker

Game Picker is a pretty simplistic toy I threw together a couple months into my Game Development cource, soon after starting C++. I use a website called "Backloggery" to track my game library, and this website comes with a "fortune cookie" that will pick a random unbeaten game from your library, in the case one can't decide what to play. I felt like the system could be improved with a weighting system, and my mind began to wonder how that might be coded. So just for the heck of it I wrote up the concept in my head as a test to see if it would work how I thought, as an excuse to practice vectors, and because I actually liked my system better. Obviously this could be improved greatly with some sort of GUI and if it were to read an external list rather than using hard coded values. The program is quite rudimentary, but I thought it spoke to the way my mind works.

▶ Watch the Video


▶ Download the Source


▶ Doki Doki Nightmare Panic

Doki Doki Nightmare Panic was a game borne of the March Break, which happened to fall near the beginning of my Game Development course, a few weeks after we had finished a section on Flash. So a few of us decided to spend the break seeing what we could make in a week working together. The concept for the game was fleshed out here and there over the weeks leading up to the March Break, which was an interesting process in itself, being the first time any of us had brainstormed and then developed game concepts. When the March Break itself rolled around the 4 of us seperated out the tasks and tried hard to pretend we knew what we were doing. As it turns out, working with multiple people on a project is harder than it seems. In the end I did all of the programming for this game.

▶ Play the Game

Click on the game window in order to play! Use the keyboard to control your character.


▶ Watch the Video


▶ Download the Source