Welcome!

My name is Caleb Compton. Nice to meet you! I’m currently finishing up my Master’s degree in Computer Science, and am excited to begin a career designing and developing games!

Professional Projects

Game Development Intern – Rooster Teeth

May – August, 2019

Vicious Circle

Vicious Circle was an “un-cooperative” first-person shooter game, developed using the Unreal Engine and released on Steam. By the time I arrived on the scene the majority of the game had already been completed, so my contributions were mainly in the form of play-testing and quality assurance. I also demoed the game at RTX (Rooster Teeth’s annual fan convention) and promoted the game by writing about it for sites like Gamasutra (Article Link).

Death Battle: The Game

The Death Battle card game is based on the popular Death Battle YouTube series. In this game you build a custom fighter by selecting their weapons, armor and skills from the cards in your hand, and pit your fighter against your opponent’s in a fight to the death. This game was nearly entering production when I joined Rooster Teeth, and I assisted with proofreading the game rules and components, ensuring quality of physical components such as the box and dice, filming the game trailer, and demoing the game at RTX.

Personal Projects

Dragon Riding VR Experience

Tools: Unity, C#, Blender

This project was created because I wanted to do a twist on the countless roller coaster experiences that can be found for VR headsets. I accomplished this by replacing the roller coaster with a dragon, who flies the user around on its back. This project was created entirely by myself, with the exception of a handful of free assets from the Unity asset store (such as the trees and buildings). The dragon itself was modeled, textured and animated by me.

Game Engine Design Project – “Studious Invention”

Repository – https://github.com/CIS585S2018/studious-invention

Tools – Godot Game Engine

This project is a group project I worked on for my game engine design course. In this course learned about the inner workings of game engines by developing a game using an open source engine – in this case, Godot. In this game, the player is inside a spherical shape made up of hexagons and pentagons, and must travel from one end of the sphere to the other. Along the way, the player will have to navigate algorithmically generated mazes, fight enemies, and solve hand-crafted puzzles.

As for my contributions to this project, I used a hexagonal variation of Prim’s Algorithm to generate a hexagonal maze which can be used to populate the inside of the hex-sphere. I also modeled a platforming area based on a large dead tree, in which the player must climb ladders and hop from branch to branch to reach the top and open a chest, as well as a pyramidal level in which the player must solve three puzzles to correctly make it to the end of the level.

Inverse Kinematics Projects

Repositories:

https://github.com/Cwalrus96/PhysicsWalkingHumanoid

https://github.com/Cwalrus96/BoneheadGeckoGradientDescent

https://github.com/Cwalrus96/KinematicOctopus

Tools: Unity, C#, Processing

I developed these projects as part of a study in procedural animation. I started by building the 2D octopus as a way of getting my head around the concepts before moving on to 3D. The 2D gecko was inspired by a tutorial on Weaverdev.io, but my implementation is unique and does not follow the tutorial. I then applied the Inverse Kinematics system I developed for the Gecko to a humanoid figure to create a walk cycle.

Pokemon Emerald AI Agent

Repository – https://github.com/RemptonGames/PokemonEmeraldAI

Tools – Python, Open AI Gym Retro

This project was developed as a final project in an artificial intelligence course, and the goal was to develop an agent that could play Pokemon Emerald autonomously. Looking back, I may have been biting off a bit more than I could chew, but I did at least end up with a navigation system that I was pretty satisfied with. I created this project alone, primarily using the Open AI Gym Retro framework.

Senior Game Project – “Rune Battle”

Repository – https://github.com/Cwalrus96/SeniorProject

Design Document – https://docs.google.com/document/d/1qHFAG_bHSyQkL5Y2VE48dOHbSlwKk2sOiUjQ4mJCcC4/edit?usp=sharing

Tools – Processing for Android, Java

This project is an RPG style game with connect-3 puzzle style combat. Where Bejeweled has jewels and Candy Crush has candy pieces, this game uses magical runes. Instead of having a constant number of pieces and swapping them, in this game the player must control falling runes and place them into the correct positions. Different combinations of runes create different spells, which use up the player’s energy, as well as causing various effects. The player must defeat their enemies while maintaining their energy watching out for their opponent’s attacks.  This project was built entirely from scratch using the Processing development environment, specifically Processing for Android. I developed this project alone, and was advised by Professor Nathan Bean.

Implicit Surface Projects

Repositories:

https://github.com/Cwalrus96/MarchingCubesMetaballs

https://github.com/Cwalrus96/Metaballs2D

Tools: Processing, Unity, C#

I began exploring implicit surfaces as a form of procedural content after learning that Metaballs were used to generate the creature meshes in Spore. I first created a 2D implementation that generates areas of color as a function of a 2D particle system. I then made a 3D implementation of Metaballs in Unity C# that uses the Marching Cubes algorithm to generate the actual mesh. The initial Marching Cubes implementation was taken from https://github.com/Scrawk/Marching-Cubes, and slightly adjusted by me to allow meshes of varying resolutions.

Resume