Code Samples

Here are some code samples, showing off some of my best work in some of my best languages.

C#

Eruption is my greatest game to date, and I’m proud of a lot of the code that I wrote for it. Here are a few samples.

Main game controller

Procedural level generator

Villager AI

Giant Rock AI

Flammable (what allowed things to be killed by the volcano)

Minotaur procedural maze editing tools.  You can read more about this project here.

3D rendered level builder

Maze editing tools

C++

Recursive Tic Tac Toe implementation, for the second attempt at making my game X’s and O’s and Black Holes.  Output from this version is the second group of images on that page.

Tic Tac Toe Board (CPP | HPP)

Recursive Extension of that Board (CPP | HPP)

Getting back to fundamentals, I spent some time doing basic data structures in C++.

Hash Table

Double Linked List

Array List

Ring Buffer

Java

Here is an implementation of my Recursive Tic Tac Toe project, using the Processing variation of the Java language.  You can view what it looks like as the first image on this part of my portfolio.

Recursive Tic Tac Toe

Advertisements

Bar Crawl: A Night to Forget – 2014

Bar Crawl: A Night to Forget was the game developed to finish off my capstone project for my B.S. in Computer Science: Computer Game Design.  I served as the lead designer for this project, and made the final call for all design decisions.  I also worked with the producer to create and assign tasks and keep the scrum board up to date, with the developer to create a clean and extensible code architecture (it was built in Unity 2D), and with our lead artist to make sure the art was produced on schedule and it all matched stylistically.  We got a late start on the project as this only happened because the “It’s Not the End of the World” project was cut (see below), so we had to do this in about 13 weeks.  By the end of the project, I was overseeing 7 programmers (not including myself), 5 artists, one musician, and one voice actress.  I also programmed in the scene transitions, most of the user interface, and I was often the first person to add a new feature, and I would lay down some skeleton code that would be handed off to another team member to expand upon.  Bar Crawl: A Night to Forget was entered in the 2014 IndieCade festival and the UC Santa Cruz Sammy Awards.  It is available on Google Play and the iOS App Store for free, and has a website as well.

Unreal Development Kit – 2014

As part of my game engines class, we made a level in UDK as well as a weapon mod using wotgreal.  Below is a video showing them both.  The level is named Counter-Clockwise, as it is two large rooms connected by two hallways, with triggers to open a door in one hallway that closes the door in the other, as such you can only move through it in a counter-clockwise direction.  Also demonstrated in the video is our weapon, the Fibonacci Bomb.  It is a modification of the shock rifle.  We modified the alt-fire to shoot a bouncing electric ball, in clusters according to the fibonacci sequence.  For example, the first two shots are just a single projectile, but then it shoots 2, 3, 5, 8, 13, 21, and finally 34 projectiles at once.  The bouncing has been modified so that there is some variation, that way the cluster gets more and more spread out the more it bounces.  The weapon is absolutely deadly in tight hallways.

Leprechaun Tears – Game Engine – 2014

Leprechaun Tears was the name of the game engine we developed in our Game Engines class, named solely so we can make the bad joke that our game is powered by leprechaun tears.  In this project, I was responsible for the overall architecture of the engine and mini-golf game that it was running, as well as all of the rendering, while my partner Kyle did the physics and file I/O.  Near the end, we began work on a procedural mini-golf course.  I took inspiration from my It’s Not the End of the World terrain generator and tried to make it perlin noise based, however it didn’t come out as fancy as we would have liked due to having only one week to work on it, and that week was also the final push for our Bar Crawl project above.  Attached is the source code (with visual studio solution) and a video showing a few levels.  For the source code, wrote most (or all) of every file except for Ball.cpp.

It’s Not the End of the World – 2014

It’s Not the End of the World was a game started for my senior capstone project. I served as lead developer for this project.  I designed up the architecture of the game, and designed the skeleton whenever a new feature was about to be introduced that my team mates would fill in with more specific code later.  My greatest personal achievement out of this project was my procedural terrain generator based on Perlin Noise.  The mesh generator and the desert generator are linked as a sample of my coding abilities.

Note: weird green and purple lines in the images are Unity artifacts.  They did not render in-game.  Also, the lighting is a little off as these are not in-game shots.  They are zoomed out views, and the light is from a point light that followed the player around.  The speckles are trees, rocks, and other decorative objects that made the terrain seem more realistic.

Samples of terrain generated by some of the code linked above:

sample_Desert sample_Desert2 sample_volcano sample_volcano2

Dungeons & Dragons scenario designer – 2010 to Present

Shortly after starting school at UC Santa Cruz, I started playing Dungeons & Dragons.  Between late 2010 and early 2014, I have written and been the game master of 4 separate campaigns.  They have taught me a great deal about game design in general, as well as how to judge player reactions and anticipate what they want, as well as how to adapt quickly based on how players react or what they want to do.

OpenGL programming example

Included here is an example of my graphics programming abilities.  This particular project was programmed in C++ using OpenGL and GLUT.  The terrain is generated from a height map and diffuse texture that were provided by the professor, but the snowmen are being generated using GLUT function calls; it uses no pre-built models.  This is not a demonstration of artistic ability, just of coding.