Earl vs. the Mutants is a post-apocalyptic top-down survival roguelite, where you play as Earl, an exterminator on a mission to save humanity from
never-ending waves of mutants! As you drive your car around the map with a turrent gun mounted on the roof, you destroy the hoards of mutants
that are trying to attack you. Edna, the sassy upgrade shop owner, sends drops that will help you survive the onslaught. If you can survive for
10 minutes, the level's boss will spawn, and upon defeating the boss, you will clear the level and unlock the next vehicle.
This game is not for the light hearted! Even on Normal difficulty, the hoards vastly outnumber Earl, and it's a challenege to make it to the end
of the level. Earl vs The Mutants has a demo available for free, which can be found on
Steam.
Aaron's Airrun Adventure
Aaron's Airrun Adventure is a wing suit themed racing game where players have to avoid bombs, fly through rings for a speed boost, and
run through air currents to get a height boost. The game is a balance between the falling rate vs speed, so the faster you fall, the more
speed you will gain, but flying too close to the ground poses the risk of smacking into the ground. It is designed to use the phone's
accelerometer for controls, meaning tilting the phone controls how the player flies through the course. There are two flying modes - Fly solution
and Fly Together. In the Fly Solo mode, you can practice the course alone to get familiar with it and improve your time. After you feel confident,
you can Fly Together with another human player as long as you have internet.
Aaron's Airrun Adventure was a pitch that I presented for a gamejam week for the company I was working with at the time, and after a company wide vote,
this game was selected as one of five games to implement. I was given a small team of artists to create the assets for the game, and between them and me
as a software engineer, we were able to create this game in 5 business days. The game features characters, animations, levels, terrains, course interactables,
multiplayer networking, sound effects, and music. It has a WebGL build, meaning that you can play the game right now by clicking on the button below.
Exploding Kittens Digital Party Pack
During my time at Exploding Kittens, I led a small team of engineers and artists to rapidly develop prototypes for a series of potential mini-games
that would belong to a digital party pack similar to Jackbox games. The core mechanic of each game was that users could log in to a website and use
their phone as a fancy input device to control the game, which was displayed on a central main screen (like a TV). Over the course of a year, I was
able to prototype 12 games and create 1 vertical slice of a production version of one of the prototypes. The vertical slice, called Take a Stab, is
a classic trivia game in which the questions are themed around pin placements on a map, but instead of placing pins, the players throw axes and other
various pointy objects to mark their answers. A breif video of Take a Stab is included here. On top of the core mechanics implementation, I also hooked
in the art, created various animations, hooked in the music and sound effects, and created tools for the art team to use to tweak the throw animations to
their liking.
One of the rapid prototypes that I created was a digital version of Exploding Kittens' Mantis game. This is a card game for 2 - 8 players in which
the players are trying to score points by matching cards that they draw with cards in their hand. The video shows a quick game session with 2 players,
but the game engine itself was able to handle up to 8 players. The unique thing about this prototype is that I was able to create the entire prototype
within five business days. The only parts of the prototype which I did not create myself were the art used on the cards and the music. Everything else
was entirely my creation.
Jumping Jack Remake, Phantom Bros
Jumping Jack Remake is a game jam that I did in which I recreated the classic game from the ZX Spectrum/Atari in 1983. There are two modes, one which tries to recreate the original game as much as possible in Unity (which I am proud to say is pixel perfect, that was not easy), and the other
that recreates the game concept in 3D. I've included a link to my company's Itch page, which includes a playable WebGL version of this game and another game jam called Phantom Bros. Both projects took about a week to complete,
but Jumping Jack was primarily my creation while Phantom Bros was a combined effort between myself and two other engineers. I've also included a YouTube video of the Jumping Jack gameplay if you would rather look at that.
Laser Corps
Laser Corps (working title) is a 3D puzzle game in which the user must manipulate laser beams to activate all crystals and clear the level. Each laser beam is colored, and through the use of components that can mix, split, and
flip those colors, a wide variety of puzzles arise. Users earn stars based on the final complexity of the system, and these stars can be used to unlock more levels. As the game progresses, more components can be discovered
to give the user the ability to solve puzzles that couldn't be solved before. This game is an exciting take on a classic logic gate puzzle, and with the ability to compete with others in a fast-paced multiplayer environment
(coming soon), it's a great way to have fun.
One of the more interesting and difficult features to implement was the fluid mechanics nature of the laser beam movement. Since lasers flow through the system of components in which each component can have more than one input laser and
more than one output laser, a complex graph is formed just by tracing out the laser paths. Even with the restriction of keeping the graph acyclic, it's still difficult to get the correct data structure in a way that maintains the natural
flow of the system. Add to that the difficulty of wanting to animate the laser beams as they grow and shrink, it soon became a very complex problem that has taken a couple of tries to get right. In the end, both problems were solved
by using ray tracing along each laser beam to find relevant collisions and using a finite state machine to identify if a laser should be static, growing, shrinking, or moving based on whether it is colliding with an object and whether
the laser is still connected to the source lasers.
Feral's Gliding System
Feral is an interactive social environment in which users can customize their avatars and explore fantasy worlds together. One of the unlockable customizations is the wings, allowing their characters to glide around the world and
catch updrafts to reach new areas. With the wings, characters can gain entrance to unique shops and play special minigames in which the wings will be needed to complete the puzzles. Additionally, players can glide together
to increase multipliers on collectables throughout the world.
The gliding mechanic idea started as an innovation day project submission. Wings existed at the time of the submission, but they were for cosmetic purposes only. With the innovation day submission, the idea of gliding and updrafts was
born. This video shows various stages of creating the gliding mechanics, including the accidental wacky physics in the beginning in which the character gets shot through the sky and caught in an infinite trajectile that required a
restart of the game in order to be fixed. Towards the end, the final version of the gliding mechanic with updrafts is shown, allowing the design team to play updrafts at any angle.
Feral's Free-look Camera System
As Feral was starting to take shape and the initial beta release was approaching, it became important to consider making a trailer for the game. In order to create the best shots possible, a new camera system needed to be created
that allowed for mouse and WASD controls in a free-look system, and the motion needed to be smooth. Before long, the new system was created, and it resulted in several trailers for the game in which the camera shots used can
best be described as glass - smooth, polished, and refined. Here’s a video that describes how to use the system.
In order to create the smooth camera movements, a variety of techniques were used, including a rolling average of the camera's position and rotation values. By increasing the number of frames to be included in the rolling average
calculation, the resulting shot is smoothed much more at the expense of a less responsive control system. The minimum value of 1 would result in the same movement as a typical free-look camera system, and the maximum value
of 100 would result in incredibly smooth frames with roughly one second of latency from mouse movements to camera movements. After a couple of minutes of practice with using high smoothing rates, cinematic shots were easy to
capture. This resulted in the following trailer for the game, in which about 90% of all of the shots used this unique camera system.
Live Stream on Feral
Another big event at WildWorks was the day that I appeared as a guest for a live stream event with the community manager. During this live stream,
KitSenDragn and I toured the world of Feral and interacted with the players who were online at the time. It was a way to promote the game, and to
show off some of the new features the team had been working on while getting some insider info on how the game comes to life. One of my favorite
moments in the stream happened at timestamp 35:00, in which I shared my joke about why the pickens cross the road. The entire stream is here for
the interested viewer.
10 Minute Sudoku
This is a classic Sudoku game that features a variety of hints and solving features to help players win each puzzle. The game is available on iOS and Android platforms, and it’s the first title that was launched by Gamehog Studio.
Players can select their preferred difficulty level and see instantaneous puzzles that are generated on the fly. As players beat levels, they can earn coins that can be spent on hints for future puzzles and special customizations
like the dark theme and additional music for the game. 10 Minute Sudoku is ideal for the casual player that is looking to kick back and relax while enjoying this mentally stimulating game.
Engineering the Sudoku game was no easy task. It’s a game that looks simple to create, but as the engineer begins, it quickly turns into a very complicated problem with solutions that are not straightforward. The main problem is trying to generate a board
of a certain difficulty. The process is to start with an empty board and try all combinations of random numbers in random cells (brute force style) and attempt to solve the board with each step. If the board is unsolvable,
meaning more than one solution or creating a contradiction while filling in the remaining board, that combination is discarded and the next combination is attempted. Eventually, the board becomes entirely filled, and at this
point, numbers are removed until the appropriate difficulty is reached or the board is no longer solvable. This produces a specific list of solving techniques that must be used in order to solve the puzzle, and if these techniques
are given a difficulty score, then adding up all of the difficulty scores produces a general idea of how difficult a puzzle is. This process can take a long time, especially for the more difficult puzzles. However, one major
accomplishment of this app was that there is no wait time to generate the next puzzle. While the user is working on solving the current puzzle, the next puzzle is being generated in the background. In the situations where the
next puzzle isn’t ready, the algorithm will take the existing puzzle and quickly modify it so that it appears different, but it is still technically the same puzzle. This allows for the user to continue playing without waiting
for the next puzzle to be generated, and it also eliminates the need to ship the game with pre-generated puzzles so that each user has a completely unique experience.
View My Code
Please download and view a bit of my code. This project was completed within a week and is a great representation of my skills as an engineer. The project itself is a direct recreation of the fundamental gameplay mechanics for the hit mobile
game, Two Dots.