Jonathan Holmes

Software Engineer

Game Designer

Web Developer

Chicken Expert

Resume

Jonathan Holmes

Software Engineer

Game Designer

Web Developer

Chicken Expert

Resume LinkedIn

Circuit Dude

PC, macOS, iOS, Android, PS Vita, Nintendo Switch

Circuit Dude is a puzzle game with 120 levels that I designed and programmed for PC, macOS, iOS, Android, and Nintendo Switch.

The gameplay is fun and simple: Help Circuit Dude build an awesome invention by leading him through the first 100 levels, completing circuits and plugging in microchips. After all chips are inserted into their sockets, the exit will activate and you can advance to the next puzzle! What kind of secret invention is Circuit Dude building? Complete those levels to find out!

But, if you're feeling creative, you can take a shot at creating your own levels and even upload them onto the internet to share with your friends!

GML Level Design JavaScript C/C++ Pixel Art PHP Windows macOS iOS Android Nintendo Switch PS Vita API Design

Fiend Blaster: Robot Journey

PC (1.2)

You're a robot, sent from the future to the medieval ages to fight terrible monsters and demons that are trying to change the course of history! Destroy them with several weapon types before they rewrite history! Be careful, though, because ammo is limited and it's quite dark!

Features include a unique and cool selective coloring art style, survival game mode (endless waves of progressively-difficult enemies), waypoint game mode (time-based scavenger hunt), online high scores for both, 4 weapon types, and 5 enemy tpes.

This game was created for the DSOP Cartridge Jam #3, 2020. Music was created by Greycove and many models and some code was made by Lowlande52.

Unity Level Design C# Rendering Pipeline Windows

Treasure Chasers

PS Vita, BittBoy, PocketGo, LDK Game, RG-350, RetroFW, OpenDingux (1.0)

Treasure Chasers is a pirate-themed game, where you navigate through procedurally-generated islands, picking up cargo and delivering to other ports to sell. Besides the whirlpools, there are also pirates that are out to get you! Either avoid them or shoot them with your cannons to survive as long as you can.

This game was created for the PS Vita KyûHEN homebrew contest and won 1st place in its category (new game, no game engine)! The great music was created by Steven Wahl, and the beautiful pixel art was made by @apoonto.

Treasure Chasers is based off an early fork of my proprietary, multi-platform game engine, Froggy. Later, it was remade for the Playdate from scratch! If you've played the other versions, you might notice some better gameplay balancing and polish in the Playdate version.

C/C++ Proceedural Generation PS Vita BittBoy PocketGo LDK Game RG-350 Linux Playdate SDL Froggy

Kogre's Mountain

PS Vita (1.0)

Kogre's Mountain is a wholesome, family-friendly digital board game. The first player to reach the top of the mountain with all four of their knights wins!

However, watch out for falling rocks! If the spinner lands on a gate icon, all the rocks will roll down the mountain- Getting hit by one will send your knight back to the bottom, so strategize by hiding your knights behind obstactles and other players.

This game was originally greated with some friends, but after losing the source code, I decided to completely recreate it. Music was created by Greycove and joyrok helped spruce up the models with cool materials and shaders.

Unity Level Design C# PS Vita

Circuit Dude

Arduboy (3.2)

Circuit Dude is a puzzle game with 75 levels that I designed and programmed for the Arduboy in C/C++. This game has been really well received and even recently polled as the best-rated Arduboy game.

To help design this game, I also created a web application to help generate levels and convert them to raw C/C++ code as well as designing all pixel art for the game.

The gameplay is fun and simple: Help Circuit Dude build an awesome invention by leading him through 50 unique levels, completing circuits and plugging in microchips. After all chips are inserted into their sockets, the exit will activate and you can advance to the next puzzle! What kind of secret invention is Circuit Dude building? Complete all of the levels to find out!

I also created an in-game level editor!

C/C++ Arduboy Arduino Pixel Art

Circuit Dude Level Tool

PC (1.0)

This program allows you to load and edit .DUDE files that contain custom Circuit Dude levels. These files can be read from the Arduboy or be sent directly to the Arduboy, as well as be added to the BittBoy, PocketGO, and LDK Game version of the game.

C# Arduboy Arduino Serial Communication Windows

Circuit Dude

BittBoy, PocketGo, LDK Game, RG-350 (1.0)

Circuit Dude is a puzzle game with 75 levels that I designed and programmed for the Arduboy in C/C++, but ported to the BittBoy, PocketGo, and LDK Game, using an SDL wrapper that I wrote.

The gameplay is fun and simple: Help Circuit Dude build an awesome invention by leading him through 50 unique levels, completing circuits and plugging in microchips. After all chips are inserted into their sockets, the exit will activate and you can advance to the next puzzle! What kind of secret invention is Circuit Dude building? Complete all of the levels to find out! This version also includes the built-in level editor.

C/C++ BittBoy PocketGo LDK Game RG-350 Linux SDL Pixel Art

Midnight Wild

BittBoy, PocketGo, LDK Game, RG-350 (1.0)

Something's gone awry out West! Help Dusty Argile adventure out and defeat the baddies who are causing a commotion and stopping him from getting a good night's rest. Put them to sleep with your handy lasso and rack up as many points as you can, but watch out for falling barrels, cacti, whirling tumbleweeds, snakes, and coyotes! Most of all, watch out for the mad bull and crazy Texan twister!

This version features multiple color modes, including the new Full Color mode, GB DMG, CGA, and original Black/White Arduboy mode.

C/C++ BittBoy PocketGo LDK Game RG-350 Linux SDL Pixel Art Music Compesition Proceedural Generation

Midnight Wild

Arduboy (1.2)

Something's gone awry out West! Help Dusty Argile adventure out and defeat the baddies who are causing a commotion and stopping him from getting a good night's rest. Put them to sleep with your handy lasso and rack up as many points as you can, but watch out for falling barrels, cacti, whirling tumbleweeds, snakes, and coyotes! Most of all, watch out for the mad bull and crazy Texan twister!

This is the original version of the game, created specificially for the Arduboy, featuring music, sound effects, parallax scrolling, and procedurally-generated levels.

C/C++ Arduboy Arduino Pixel Art Music Compesition Proceedural Generation

Arduboy Video Player & Arduboy Video Converter

Arduboy FX (1.1), Node.js (1.0)

The Arduboy Video Player is a video player program that can be put onto your Arduboy FX in order to play videos! I've also created the Arduboy Video Converter to convert any video file you want into the correct format for the Arduboy FX to play!

I released this as my entry into the Arduboy FX Meme Jam... Despite it not necessarily being a game and not necessarily being meme-specific, I did think that making a video player would allow all sorts of memes to be added to the Arduboy. Of course, you could add a classic to Rickroll your friends, but you but you can also use the looping feature to have a very short video (such as Hypno Toad) repeat without having to manually code it and convert so many bitmaps. Also, the icon for the app is a cute doge. That’s gotta count for something, right?!

C/C++ Arduboy FX Arduboy Arduino Node.js JavaScript ffmpeg Pixel Art

KPA Quest

Arduboy (1.0)

Navigate through 10 levels that range from easy to incredibly difficult in this fun retro puzzler. Push the letters 'K', 'P', and 'A' to their destinations to advance to the next level, but avoid pushing them into corners or against the walls. If you are getting stuck, you can even push multiple blocks at the smame time!

KPA Quest is a puzzle game that I designed and programmed for JXM, a full-service digital agency located in Massachusetts, for a marketing push. The goal of the game's design was to feature the letters 'KPA' in an approachable and easy-to-understand puzzle game. I designed this game to be similar to Sokoban, so most players can instantly be familiar with it from the start, but there are some fun twists: You can actually push multiple blocks at the same time. Plus, each 'block' is marked with a specific letter that corresponds to a specific destination. These small changes really worked to make this game quite different than Sokoban, allowing me to design levels that you can only find in this game.

C/C++ Arduboy Arduino Pixel Art

Festive Fight

Arduboy (1.1)

Holiday mascots from throughout the calendar must fight in order to compete for the affection of the children throughout the world for some weird reason. This game includes single and multiplayer support. To fight, you have two options: Attack and Retreat. Each match, you have 5 hearts. Getting punched causes you to lose 1 heart. Lose all your hearts, and you’ll lose the match, so make sure you retreat often to dodge oncoming attacks. Different characters have different stats. Some are harder to use than others, so try them all out! This game was created for the second Arduboy Game Jam.

C/C++ Arduboy Arduino Pixel Art

Arduboy Manager

PC (2.25)

The Arduboy Manager is a simple program created by Jonathan Holmes (crait) that allows you to quickly download and install games onto your Arduboy without any programming experience! Just run the program and it will automatically connect to my server and download games for you. Turn your Arduboy on and connect your Arduboy through USB and it should be automatically detected. From there, simply select the game you'd like to install and click Transfer Other features include serial screen mirroring, serial terminal, and alternate repository pulling.

C# Arduboy Arduino Serial Communication Windows

Insane Skulls

Arduboy (1.0)

Long ago, the Greeks and Romans would play a game called, "Astragalus," which evolved into what Americans call, "Jacks." There have been several variations of this game over time, but it started out being played with small, dried animal bones. In the 90's, there was a major Crazy Bones crazy, a game based off of astragalus with plastic figurines with weird and odd shapes, sizes, and faces.

Insane Skulls is based off of games like astragalus and Crazy Bones, where a player picks a team of 4 characters (or skulls), all with different stats and properties. Players take turns flicking their skulls at the opposing skulls, carefully aiming, giving a nice amount of upward or forward force, in hopes of knocking the other player's skulls over.

Insane Skulls has 16 different characters, including guest characters like Circuit Dude and Dusty Argile, and supports either a single player mode against the CPU or head-to-head mode against another human.

See how many times you can beat the CPU in a row with the team you make to beat the high score!

C/C++ Arduboy Arduino Pixel Art

Roo Run

Arduboy (1.0)

The zoo had to close and now all the animals are trying to escape! Help the kangaroo run away from the animal control who's trying to catch him. Push A and B back and forth as fast as you can to run faster. This game was created for the first Arduboy Game Jam.

C/C++ Arduboy Arduino Pixel Art

Vampire Dance Party

PC (1.0)

Play as a vampire in this game, going from night club to night club, trying to drain the blood of all of the dancers. Don't arouse people's suspicions, though! Dance with the ASDF keys to fit in and to increase your illusion meter. Sneaking around and sucking blodd depletes it, so make sure you are watching that meter!

Vampire Dance Party is a game jam game created as a part of the Dallas Society of Play's 2nd Cart Jam. This game is for Windows and can record your high score.

GML Windows

Loop N' Moove

PC (1.0)

Loop N' Moove is a sidescrolling wrangle 'em up game inspired by Texan culture. Take control of your 10 heads of cattle and drive them as far as possible, round them up when they try to run away and protecting them from wolves. Whenever you lose all of your cattle, your game is over.

Use the mouse to aim your lasso, and left-click to power it up. When you're ready, left-click again to throw. Once you've snagged a bovine, slowly pull them in automatically, left-clicking again to cancel. Use the W, A, S, & D keys to move your horse around.

This game was created during the SGDA Game Jam, 2017.

GML Windows

The Cockpit

PC (2.1)

The Cockpit is a retro-style game that pits a lone chicken against raging traffic. The player navigates the busy streets in order to reach the hen on the other side. This game also supports 2-players where the first player to reach the hen 6 times wins- But don't be fooled! This game isn't as easy as Frogger or Crossy Roads! Cars are insanely fast and frustratingly hard to predict. There are explosions all over the place and even cars crashing into each other!

The left player controls their green chicken using the standard arrow keys on the keyboard while the right player controls their orange chicken with WASD.

This game's retro look and playstyle was inspired by older games such as Frogger and Dig Dug. I made this for Windows in GM to perfectly fit my personal arcade machine's asthetics and theme.

GML Windows

The Cockpit

Arcade Machine

The Cockpit is an arcade cabinet created from the shell of an old Golden Tee cab. I created custom decals as well as inserted a converted CRT TV. The control deck was fabricated from scratch with new buttons/joysticks from Tornado Terrys.

The internal components have been replaced with a Windows PC that can emulate other consoles as well as play the custom game I've made of the same name.

So far, The Cockpit has been shown off at Texas Pinball Festival 2016 and 2018.

Graphic Design Fabrication

Chicken Launcher

PlayStation Vita (1.0)

Chicken Launcher is a fun lil' game I made for the Playstation Vita after making a version for the Arduboy, which was inspired by Kitten Cannon, where you shoot a chicken as far as you can. Try to hit springboards and TNT to give you a big boost, but watch out for spikes! Your high score is recorded and saved. If you think you get a big high score, tweet me a pic!

C/C++ PS Vita

Chicken Launcher

Arduboy (1.1)

Chicken Launcher is a fun lil' game I made for the Arduboy based off of Kitten Cannon. Shoot a chicken as far as you can, trying to hit springboards to give you a boost, but watch out for spikes! Your high score is recorded and saved. If you think you get a big high score, tweet me a pic!

C/C++ Arduboy Arduino Pixel Art

Train Dodge

Arduboy (1.1)

Who's brave enough to play chicken with a train? Stand on the track as multiple trains come at you full-speed... The closer they get to you before jumping off the tracks, the more points you'll rack up. (You'll also lose points for jumping off of the track too early.) Dodge as many as you can, but beware! If you don't jump off in time, you'll be hit!

C/C++ Arduboy Arduino Pixel Art

Suit Shooter

Arduboy (2.0)

Launch suits of cards at falling cards in order to create matches and score points. Watch out, though! Missing cards will hurt you! The cards start out falling slowly, but get faster as you score more points and regain health.

C/C++ Arduboy Arduino Pixel Art

Arduboy Assistant

Arduboy (2.0)

Arduboy Assistant is a program that allows you to manage an Arduboy's EEPROM as well as test several hardware and software components. You can view raw EEPROM data, back it up through the Arduino IDE's serial monitor, restore EEPROM data the same way, and even clear the entirety of the EEPROM data. Additionally, you can do a button test, LED test, sound test, serial test, and screen test.

C/C++ Arduboy Arduino Pixel Art Serial Communication

LemonLight

PC (2.0)

LemonLight (previously LimeLight) is a program designed as a Apple's Spotlight clone for Windows. You can set custom shortcuts, search Google, run other processes, and so much more quickly from any other window.

Customize the shortcuts file and drop in some images and you can run all sorts of cool stuff!

C# Windows

Image Regradiater

PC (1.0)

This is a program that I made in order to test a new image processing and masking technique that I created called regradiation. In order to use this program, you must input both a source image, and mask image. Both images will have all of their pixels sorted, retaining the location data for each pixel. The gradient mask's color data is swapped into the source image's data, and the pixels are sorted back to their original location, leaving very beautiful results. Images with very similarly-shaped curves tend to have the best results.

Regradiation can look very similar to pallet swapping, but it is actually a new technique. Results can vary greatly depending on the difference between two images' curves. If the curves are 1:1, regradiation is pallet swapping, however the more the curves mismatch, the greater the difference in application will be.

Note that when running the program, the images must both have the same amount of pixels. Usually, this means that the resolution of the two images must match exactly.

Image Processing C# Windows

PokéFace

Pebble (2.0)

This is a watchface that I created for the Pebble smartwatch using C/C++ with the CloudPebble IDE. It is a recreation of the popular Pokémon Blue/Red title screen for the Game Boy. Like the original title screen, it features monsters being swapped out by sliding out and replacements sliding in. Due to the limitations of the Pebble smartwatch, I had to recreate a lot of sprites in a monochrome format while still retaining their original artstyle. Pokémon featured in this watchface are: Arbok, Arcanine, Blastoise, Bulbasaur, Charizard, Charmander, Gyarados, Hitmonlee, Kedabra, MewTwo, Nidoqueen, Squirtle, and Venasaur.

C/C++ Pebble Pixel Art CloudPebble IDE

Pebble Transporter

Android (1.0)

This is a simple Android application that opens the camera on a device and actively searches for a QR code. (The user can optionally upload an image they have on their phone.) The program takes the QR code, downloads the Pebble application or watchface from the internet, and passes the file directly to the Pebble Android application.

This application was designed for developers who use the CloudPebble IDE to compile their code. It cuts out the steps of having to compile the application locally, connect their device through USB, use a compatible Android file browser to find the specific file, then launch with the Pebble application intent.

MIT App Inventor 2 Pebble Android

FanMate

PSP (1.0)

FanMate is a remake of a popular program for the ol' Palm Pilot, originally created by PalmMate, with the same name. The software is a quirky joke program that is described as "an application to keep you virtually cool... as the hot days of summer approach..." My recreation for the Playstation Portable is virtually identical.

This program has almost no functionality, but it's one of the first applications I created, so it deserves a special little place in my heart.

If you have a Sony PSP on 3.XX custom firmware, you should be able to download this .ZIP, extract the EBOOT.PBP file, and run it. (Extract the contents of the .ZIP file into X:/PSP/GAME/) If you are using a newer version, you'll have to pick up a self-signer. Have fun and stay cool!

C/C++ Pixel Art PSP

Personal Portfolio

If you're on my website, looking at my portfolio, then odds are, you don't really need to read this entry. If you're interested in what it took to make this page, then go on ahead!

This page is a single page, based off of Bootstrap 3.3.6 for responsive theming, and uses jQuery and Javascript to handle delivering different sections and data. There's a lot of basic custom work put into this. Go ahead and look at the source code to see for yourself!

JavaScript jQuery Bootstrap PHP CSS HTML Bootstrap Font Awesome