Current Projects
Working on building a program that automatically uses a DSLR to take snapshots of a moving press based on an electronic pulse using an arduino. Unfortunately this project has been sidelined lately while I work on the 4200 project.
Mark Andy 4200 "Operating System"
Working with my father to build an "operating system" to replace a Mark Andy 4200 computer. This is my main project right now, and includes the use of my Arduino Input/Output Tester and Prototyper.
Writing a Short Story
I am working on writing a short story. Just for fun. To see if I can do it. DON'T JUDGE ME.
Doing some Bob Ross-esque playing around. Having fun! But I suuuuuck lol.
Project Ideas
Learning Unity
I have worked through some tutorials in the past but I lost my momentum. Hopefully this is something I can pick up again in the future!
Completed Projects
October 2016: BREAKOUT REVENGE (University of Saskatchewan Game With US GameJam October 2016)

My brother was putting on this event and I was visiting on the weekend. I didn't intend to participate, but that night we went out for dinner and I may have had a bit to drink. Knowing the theme was "You Are the Villain" I had the stupid idea that the "villains" in the classic game Breakout must be the bricks and the paddle the protagonist! So I made this game which allows you to play Breakout as the bricks! I recommend for single players trying the Chaos Mode (checkbox on the bottom left... will become active when Player 2 is connected by pressing A) which allows you to control the left half of the bricks with the left joystick on a gamepad and the right half of the bricks with the right joystick. XBox 360 controls for sure work, had mixed success with playstation style controls (some work, some don't ... not sure why!). Chaos mode puts you up against a Paddle "AI" I named Roger after Roger Cook from This Old House. No idea why I named him that, I just think Roger Cook is cool. lol. He's pretty good! He can figure out the distance between himself and the ball and powerups that are falling and, if it's safe to do so, he'll go for the powerups!

The other mode allows up to 9 players (1 paddle with the mouse, 8 brick players using gamepads), where each brick player controls two columns of bricks the same colour (one column per joystick). This is pretty fun, too! I didn't get a chance to fully test it due to gamepad availability, but I believe it should work!

This game won Best Theme and Community Choice at the GameJam, to which I am both shocked and humbled since I had no team and spent only a few hours on it. Thanks so much to anyone and everyone who voted for me! :D

Made in Construct 2, the assets for the bricks/paddle/ball/etc. are from here! (Thanks!)

Play Breakout Revenge!
Download BreakoutRevenge.capx
Watch the Breakout Revenge Trailer! (yes, it is amazing!)

July 2016: Alex Invaders 5000

Another construct 2 game, this time a space invaders clone complete with mother ships. And I added "suicide" invaders too that charge at you. Massively imbalanced according to its namesake! I didn't want my brother to be able to pass about level 4, so I was a bit cruel, haha.

Click here to play Alex Invaders 5000!
Download Alex Invaders 5000 .capx

July 2016: Alex Memory

First game made in unity! Whooo! Memory! Following a tutorial from "Unity in Action".

Click here to play Alex Memory!
Download Source

July 2016: ALEX BREAKOUT

Two guesses as to what game this is a clone of! Again with Construct 2. Followed a tutorial here!

Click here to play Alex Breakout!
Download Alex Breakout .capx (Construct 2)

July 2016: The Alex Jumper 5000 and Inverse Alex Jumper 5000!

This was a game I made in construct 2 for fun. All of the assets were made in mspaint over the course of about 5 minutes, and it shows! But the game itself I found surprisingly addicting. At the suggestion of my friend I made a kind of "Doodle Jump" clone...

  • The game speed increases slowly the longer you play
  • There are four different kind of platforms.
    • Blue - totally safe, totally boring
    • Red - kills you upon touch (you can jump through them, but not land on/touch the tops)
    • Orange - safe, but are destroyed after 0.25 seconds after touching them
    • Green - safe, but force you to jump into the air
  • All of the platforms except the red ones get slowly smaller as the game progresses
  • Touch controls are enabled on the bottom of the screen (identified by more of my amazing mspaint art) on mobile devices, but hidden on desktops. Use the arrow keys to play on desktop (up is jump)
  • My high score is 172 seconds so far!
  • The inverse Alex jumper game has inverted gravity for an extra challenge! But other than that the mechanics are the same.

Click here to play Alex Jumper 5000!
Download Alex Jumper 5000.capx (Construct 2)
Click here to play INVERSE Alex Jumper 5000!
Download Inverse Alex Jumper .capx (Construct 2)

March 2016: Arduino Output Grapher

This program was designed with the intent to work with version 1.3 of the Arduino Input/Output Tester and Prototyper program. Basically, it takes a text file (intended to be the text output by an arduino stating things like "Sensor reading: 45") and allows you to go through the entire text file line-by-line and search for strings of text ("Sensor reading: "), remove that bit of text from the string, and take the numerical values remaining and graph them against each other. Since we were looking at values that ranged from 0 to 0.05 and values that ranged from 0 to 5000 and wanted to compare relationships between the two, I added a "multiplier" textbox for each series that serves as a multiplier so that you can make things a bit more readable. You can also easily change the minimum/maximums/intervals of the graph axes very easily, allowing you to zoom in and out. Here is a screenshot (yes I am aware I spelt "sensitivity" wrong! Whooops!).

Note: when you insert the strings that you want the program to search for in the text file, you must include everything that comes before the number. That includes any punctuation and spaces! Also, there can be nothing after the numerical value on each line. So there are definitely some limitations... but it's fine for what I need! :)

Version 1.1 - I fixed a couple of minor bugs, made it a bit more user friendly, and added the ability to set the minimum value of the X axis.
Version 1.2 - I added a label to the top of the window that shows the file you are currently looking at, and fixed the tab order since it was driving me insane!
Download version 1.2 (Visual C# Express 2013)

February 2016: Machine Speed Logger
This program uses an arduino uno with an ethernet shield hooked up to a proximity sensor to count gear teeth. That number is used to calculate the feet per minute (speed) that the press is running at, and sends this information to a PHP page hosted on the network which in turn writes it to a MySQL table. Finally, I also built a C# program that graphs the speeds of up to 4 different machines in real time, allowing you to compare press speeds throughout the day and also compare the performance of your press operators. I'm extremely proud of this project! :D
September 2015 - January 2016: Arduino Input/Output Tester and Prototyper

This is a simple program that sends customizable outputs to an arduino (that can be sent individually or "held" to be sent every time a timer ticks) it also simultaneously monitors the inputs from an arduino (from the Serial.print commands in the arduino sketch). It is called the "4200 prototyper" because it is a program my father is using to test various boards from a Mark Andy 4200 press. I tried to build it to be as flexible as possible (up to 16 different outputs so you don't have to keep changing a single one, or can send multiple outputs at once), the user is able to change the COM port and timer interval, and so on. I am continually updating this program and adding features as my father progresses on the hardware/sketch side of things.

Version 0.4 - Original version, has 16 possible outputs, can send or hold (continuously send) a command.
Download version 0.4 (Visual C# Professional 2013)

Version 1.0 - 32 outputs, two different hold modes - one like the original, and one where the program sends a secondary command upon releasing the hold button (to simulate a printing press advance/retard button press and hold situation).
Download version 1.0 (Visual C# Professional 2013)

Version 1.2 - Fixed a couple of bugs and also added a checkbox that adds a non-integer value to the end of each command to be used as a "stop" signal in the Arduino sketch we are currently using with this program. Also added a save/load feature so you don't have to manually fill in all the values again if you accidentally close it!
Download version 1.2 (Visual C# Express 2013)

Version 1.3 - Only one change in this version. I added the ability to save the log from the arduino to a text file for later use. That's all!
Download version 1.3 (Visual C# Express 2013)

July 2015: Server/Client for SNES Controller Emulator
See the previous project for more information. I made a server than can run on one computer and a client that runs on a second, and they can communicate (via TCP) so that you can play your SNES remotely with the rest of my SNES controller emulator setup! My brother successfully played my SNES in Vancouver from Saskatoon!
A much improved version of the previous project! I ditched the board in the SNES controller in favour of a couple of shift registers, updated the program and made it more flexible, AND added a server/client so that you can play your SNES remotely!
To be clear, I do not mean using a SNES controller to control an Arduino or my PC. I mean using my PC to mimic a SNES controller to control a SNES! Not a lot of resources on the internet it seems... the idea here is that by using remote desktop to click buttons on a C# form on my computer (and by using a capture device such as a Diamond VC500 to see what's going on in the game) theoretically my brother could play a game on my SNES a 16 hour drive apart!
July 2015: Total Inkventory

This program, written in C#, interfaces with a USB scale and makes taking inventory of printing inks much easier. You place a jug on the scale, click the button that best describes the colour, and it adds up the masses. I also added a save/load feature so you can backup/edit your work or load inventory counts from the past.

July 2015: Arduino Tests
Playing with an arduino MEGA and a breadboard!

I wrote a series of tests using Visual C# 2010 Express to connect with a webcam (Logitech c525). I just felt like playing around with webcams! A silly goal I set for myself was to mimic taking "snapshots" of video at user-defined intervals. This was more challenging then you might think, as many webcams do not actually have the capability of taking pictures/snapshots, they can only take continuous video.

The end result was a Webcam recorder. This simple program connects to a webcam on your computer, allows you to set your desired resolution, and records .avi video using AForge.NET and C#.

March 2015: Total Colourbook

Wrote a program using C# and Visual Studio for helping to mix PMS colours to be used in flexographic printing. The program interfaces with a Dymo 25 lb. postal scale, but has the capacity to interface with a variety of other scales as well.

A simple little console program written in C# that interfaces with a USB Scale (a Dymo 25 lb. postal scale in this case, although I believe many other scales would be supported by this program simply by changing the vendor/product IDs in the code) and reports the current mass on the scale every second. This was the first step for my Total Colourbook program!

Download the Source/Project Files (Visual C# Express 2012)

February 2015: totallabel.ca

Designed a simple responsive website using Bootstrap for Total Label Inc.

February 2015: keywordgenerator.c

Wrote an old-school console program in C that generated all possible combinations of keywords from three texts files (prefix, middle, and suffix) and generated a 4th and 5th file will these combinations (seperated by commas and with each word on its own line, respectively). Unfortunately, shortly after this project my SSD failed and I lost the source code. Thankfully, I found the .exe! This event of losing my source code is what lead to me creating this series of webpages complete with download links. A backup!

keywordgenerator.c Executable Download

August 2013 - June 2014: lagservVODs YouTube Channel

A YouTube channel containing VODs of Quake Live matches. After a major tournament I scour the internet looking for the demo files for each game. The problem with demo files is that you need special software to watch them which can be inconvenient (especially as they lack the ability to fast-forward and rewind effectively). YouTube videos of these games are much more convenient and easier to navigate. My brother wrote a Python script that would work its way through labeled demo files organized into a heirarchy of folders and, with OBS (open broadcaster software) and Wolfcam (a program used to view Quake Live demos) recorded sets of demos into videos (for example, 5 demos might make up 5 different maps in one match of 2 players during a tournament). With a powerful enough computer we would run the script, leave it for several hours, and come back to a folder full of .mp4 files that we would then upload. This channel has done fairly well, and we've received a number of comments thanking us for the videos.

August 2012 - May 2014: lagserv.net YouTube Channel

My brother and I created a YouTube channel to accompany our website, lagserv.net. The channel's popularly skyrocketed (relatively speaking) in September 2012 when I uploaded a series of several short videos showing how to find particular hidden locations in the game Guild Wars 2. The channel's popularly died down as we tried our hand at recording "Let's Play" videos, however we gained a new following several months after the Guild Wars 2 success by uploading shoutcasts of Quake Live games, some of which had views similar to the most popular Guild Wars 2 videos. We consider this channel to be a moderate success but eventually stopped uploading videos when he moved to Saskatoon to begin work on his master's degree and I moved into full-time employment at our family's business.

2008: Label Printing Program

Used Delphi 5 and object Pascal! This program was used by a local company to print custom labels on a small zebra printer. They would type in the code for the product they wanted to print labels for, and the program would look up that value in a table, fill some blank spots on a report with the rest of the values in the table, and then ask for how many labels to print out. This is one of the only projects I have ever been paid for, and unfortunately I cannot share the source code as it contains sensitive information.

2005: Quote Decompiler

Written in Visual Basic, this program broke down competitor's quotes for labels.

2005: SNALA.c

While not really a big deal, SNALA.c was a big personal win for me. SNALA, or SNakes And LAdders, was a game that ran entirely in a console window that I had written in C. I drew a game board in mspaint to go with the game to help with the visual element. The game was playable in single player or multiplayer - the "AI" wasn't exactly hard to figure out for single player! I was very young when I completed this project, and have unfortunately lost the source files since, but it was probably my earliest programming success.