Defend The Castle

Written in JavaScript

Defend the Castle is a fast-paced arcade-style video game, with a twist on the classic tower defense genre. The engine and game were written from scratch for a Nashville Software School front end capstone project, and it runs right in your browser (tested on Firefox and Google Chrome).

I wanted to create this game from scratch, to better understand how game engines work under the hood. The biggest challenge surfaced when I discovered that the tutorial I was following didn't actually bring the game to a basic completion. The series had left me with a solid foundation, no doubt, consisting of a tile map loader, a game camera, keyboard input and a hero to control, some basic collision detection, and some entity handling. The rest was up to me. Did I really want to stick this through, knowing it would be extremely challenging? In the end, I had to fully immerse myself in to this code base, and really learn how it worked in order to achieve the results that I desired. It was a wonderful learning experience.

Me, Myself, and i

Written in JavaScript

Me, Myself, and i was written for the yearly code-golfing competition js13kgames, running from August 13 2017 to September 13 2017. The goal of this competition is to submit a full game made within a month, with all assets, libraries, etc coming in at under 13Kb compressed and able to run off-line. The theme of this competition was "Lost". In this game, you awake in a strange maze. You struggle with your inner thoughts and other voices that make themselves known. You wonder why you are here, how you will ever escape, and who is doing this?

I learned the term "code-golfing" during this competition. I really wanted to explore what it means to develop narrative within a game. I coded this game by refactoring the engine written for "Defend The Castle" to ES6 using classes and webpack to compress it for the final submission. I worked on the narrative with my friend, Keith Davis, who wrote most of the dialogue within the game. All in all it was a very fun competition, and I really appreciate all the hard work that went in to it by the staff!

Waves '87: Business Cruizin'

Written in Python with the RenPy scripting engine.

Made in 48 hours with a five man team. Waves '87: Business Cruizin' is a graphic novella chronicling the adventures of a Kawa, a businessman loathed by his peers and about to be fired from his job. A chance encounter with pirates may just turn his life around...

I was very excited to hear about Global Game Jam 2017. I have wanted to participate in a game jam for years, and this one was local. My team consisted of myself, three of my Nashville Software School classmates, and two new friends who caught our attention with their unique art style. Having only 48 hours to attempt the planning and completion of a game quite the struggle. We spent that Friday evening planning everything out as far as we could imagine, and the following Saturday and Sunday morning coding, recording the sound and music, and bringing it all together. It was not only a wonderful experience working on a project outside of school with my classmates, but it was great to get to know them a bit better as well. My contributions to this project include some scripting on scenes 3, 4, and 6; the music for the title screen, cruise theme, and tough cruise theme; making sure the artwork coming in was formatted correctly for our project; scripting for the battle scenes; building distributions for Windows, Linux, and Mac; and recording sounds including barking like a dog, growling, seagull noises, and ocean waves.

Web Apps

ToDon't List Client

Written in JavaScript with the REACT Framework

This is the front-end of the ToDont' List app. I wanted to branch out and use a framework, like REACT, that I was a little less familiar with.

During this project I learned a bit more about REACTs lifecycle hooks, and how to deploy a REACT app to Github Pages as well.

ToDon't List API

Written using NodeJS, the MongoDB, Express, and mLab the database-as-a-service

This is back-end of the ToDon't List app. As with the front-end, I wanted to branch out and work with some technologies that I was less familiar with, like the MERN stack.

During this project I learned about using a database-as-a-service system like mLab, and how to deploy a node app to Heroku as well.

Battle Bots

Written in HTML5, CSS, and JavaScript using Grunt, Browserify, and jQuery.

Two player battle to the robot death. Each player chooses one of six classes (Johnny5, Wall-E, R2D2, R2BRO2, Bender, Baymax). This project was a quiz for Nashville Software School testing mastery of prototypal inheritance.

Being a quiz on prototypal inheritance, I think that it's pretty awesome we were given a robot death battle. For class choices, I added five of my favorite all time robots, and a sixth hilarious version of R2D2 that I stumbled across while googling R2's image. This was a pretty difficult quiz. Having some previous coding experience before NSS, I was feeling pretty good about my quick comprehension of the curriculum up until this point. But OH boy, prototypal inheritance really threw me for a loop. Overcoming that hurdle was extremely challenging, but equally as rewarding. I had to tackle this quiz through some extreme perseverance, and eventually a very satisfying comprehension of prototypal inheritance, but it paid off big time when I started working with Class.js in my front end capstone (Defend The Castle).

Bangazon CLI Tool

Written in Python using unit testing and SQL commands.

The Bangazon CLI tool was a group project assigned to five member teams at Nashville Software School. The CLI tool is a command line interface that allows the creation and storage of customer accounts, payment options, and orders, the storage and adding of products from the database in to the active order, the completion of an order after adding products and selecting a payment option, and a display of the current product popularity rankings by revenue generated.

This project allowed us to take a break from Django, and really dig in to SQL and Python from a different perspective. The SQL commands are all issued from within the Python environment. My contributions to this project include the ERD, the payment option class and unit tests, the refactoring of said class and tests, and the SQL database interactions for order and payment option models.