Unity Projects
Cutthroat Pong [November 2013]
C# Projects
Power Rangers: Heroes of the Grid [July 2021]
Tetris [December 2011]
Warbles [April 2010]
Space Towers [December 2009]
Inner Demons [April 2009]
Flat Red Pong [August 2008]
C/C++ & Qt Projects
ETC Eos Family Software [Ongoing: latest 2022]
C/C++ & OpenGL Projects
Halloween Tower Defense [April 2012]
AI & Collision Detection [March 2012]
3D Maze and Dungeon [February 2012]
Battleship [October 2011]
Block Breaker [October 2011]
Swimming Fish [December 2009]
Java Projects
Snake [June 2013]
Scheme Projects
Sudoku Solver [September 2008]
Videos
Developer Round Table
- Eos Apex Launch March 2022
My portion starts at about 35:30
Wisconsin Public Television
- Game Development Education August 2013
My portion starts at about 35:00
Wisconsin Game Developer's Summit
- Teaching Game Programming via C++ & OpenGL April 2013
Warbles
- May 2010
[I've been on working on it ~7.5 Years, but the first release was in 2016]
At my job at Electronic Theatre Controls, I'm part of the Entertainment Controls
department. Our primary focus on the software side has been Eos, which is used
to run large lighting rigs for theatrical/architectural installations, award shows,
theme parks, houses of worship, etc. We're a team of about 6 full-time engineers.
Most of my work has focused on the UI/UX/GUI side (including the major graphics
overhaul in 3.0.0), internationalization support, automating support tasks
(ex: creation/sending out build reports, making it easier to build a fixture
library, etc), improving the help system, and general bug fixes that arise
from having a +16 year old code base.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
My siblings and I were big fans of Renegade Game Studios' game,
Power Rangers: Heroes of the Grid, but we had a hard time playing it during
the pandemic since it's a miniatures game. We decided we would make an assist tool
to help address that issue. The tool allows you to play the game remotely as long
as at least one person has a physical copy of the game to handle deployment ordering,
enemy draws, but individual Ranger decks, the complete board, and even a full help
system are rolled in to the tool. The art assets were pulled directly from the physical
game. I wrote the majority of the code, designed how the mechanics would work in
a digital environment, implemented it all in Unity, and did the 3D modeling for
the map/tokens.
Note: I have no afiliation with Renegade Game Studios or Hasbro. This is just a fan project.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
For a project I was working on, I was given a programming challenge to
complete before being brought on. The requirements for the project were
to combine Pong and Discs of Tron, while using Magic: The Gathering cards to
represent the paddles. Additionally, I had to have the Card rip when
it was destroyed, damage counters flying off the Card when hit, the Puck
gainined strength with each bounce, and working audio. I was given two
weeks to complete it, and I finished it in under a week. I also wrote the
start menu and game over screen audio.
![]() |
![]() |
While teaching Object-Oriented Programming I at Herzing University's
Madison campus, I had my students implement the classic game Snake.
The purpose of the assignment was to gain experience working with
Java Applets, and detecting user input in real time.
This is my implementation.
While teaching Game Programming II at Herzing University's Madison campus,
I had my students implement a Tower Defense game. They were responsible
for all collision detection, path finding, textures, UI elements, and
gameplay mechanics.
This is my implementation.
While teaching Game Programming II at Herzing University's Madison campus,
I had my students gain experience working with AI and advanced
collision detection. For AI, they implemented Dijkstra's pathfinding
algorithm and implemented a type of AI Tactic (Patrolling, Guarding,
Pursuing, Fleeing, or Mirroring). For collision detection, they
implemented SAT.
This is my implementation.
![]() |
![]() |
While teaching Game Programming II at Herzing University's Madison campus,
I had my students implement a 3D Dungeon to explore. The assignment's goal
was to gain practice writing camera navigation code, picking up 3D objects,
applying textures to a surface, and creating a HUD.
This is my implementation.
![]() |
While teaching the C# Programming course at Herzing University's Madison
campus, I had my students implement the classic game Tetris as their final
project. The purpose of the assignment was to gain experience working with
simple collision detection, position, velocity, and acceleration.
This is my implementation.
While teaching Game Programming I at Herzing University's Madison campus,
I had my students implement the classic game Battleship.
The purpose of the assignment was to gain experience working with
simple mouse collision detection, basic game logic, and build a fully playable game.
This is my implementation.
While teaching Game Programming I at Herzing University's Madison campus,
I had my students implement the classic game Block Breaker.
The purpose of the assignment was to gain experience working with
simple collision detection, position, velocity, and acceleration.
This is my implementation.
FlatRedBall SDK
In order to alleviate intergalactic tensions, a tournament is held
that allows the dominant 16 planets to send a representative to battle
for the championship using warrior marbles. The warrior marbles are
giant metal robots that burst out of a marble shell when they
enter a battle.
For my Master's thesis, I wanted to create an exciting and
challenging game. From that desire, Warbles emerged. The game
is a combination of a 2D fighting game and a strategy game.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Players must place towers strategically to
defend their base from an evil, invading
energy-based force.
After playing some tower defense games online,
I realized how entertaining they were. I decided
to combine my love of Science Fiction and Game
Programming, and created Space Towers. This was
primarily being used as a test bed for some
Artificial Intelligence work I was doing at the time,
focusing on case-based reasoning.
![]() |
![]() |
![]() |
A guy who's down on his luck must journey through his mind
to vanquish his seemingly literal inner demons that have
manifested as phobias.
I've always really enjoyed action/adventure and platformer
games, so I wanted to create a game that combined them, but
with a much darker twist.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
In order to learn the FlatRedBall game engine, I decided to
pay tribute to one of the best-known games around - Pong.
It was a great way to get used to the engine mechanics.
For one of my first projects in OpenGL, I decided that I
wanted to create a small scene using a fish that I had
modeled, and explore the possibilities of animation in OpenGL.
Taking my love of Sudoku to another level, I decided to
write a command-prompt program that solves them. This was
a great exercise in determining puzzle-solving strategies.