Self-Portrait of Ben Codrington.

Ben Codrington

Paintbrush Icon. Designer

Programming Icon. Developer

Wrench Icon. Projects

Phanary

JS (jQuery), HTML, CSS (PostCSS).

Node.js, MongoDB, Express, webpack, gulp.

Released July 2017 [development ongoing]

Phanary is an in-browser utility that excels at playing sound effects and ambient music quickly and smoothly. Optimized for use in fantasy role-playing games like Pathfinder and Dungeons & Dragons, the site allows the user to create custom sonic atmospheres within seconds. Users can adjust relative track volumes, and seamlessly transition between soundscapes at the click of a button.

Using Phanary on desktop.

The site runs smoothly on desktop and mobile, with a responsive and elegant front end design that promotes speed and customization, lovingly constructed with gulp, webpack and PostCSS.

The Phanary 'Atmospheres' tab on mobile. The Phanary 'Tracks' tab on mobile.

This project gave me experience with Node.js, MongoDB, and building a progressive web-app from start to finish, while also refining my front-end skills. Working on Phanary really helped me solidify my workflow and git integration. After posting about the app on reddit, the D&D community responded with enthusiasm and suggestions that I utilized to add user-requested features like permanence across sessions. To achieve this I researched and implemented the use of browser local storage.

I continue to maintain and update Phanary for my own D&D sessions, and for the users around the world who regularly put it to good use.

WAMSIT: Which Actor/Movie/Show Is It?

JS (jQuery), HTML, CSS (PostCSS).

Node.js, MongoDB, Express, webpack, gulp, Microsoft Azure Face API.

September 16-17, 2017

WAMSIT: What Actor/Movie/Show Is It? is a project I built with a partner in 36 hours for Hack The North 2017. It's a website that takes the URL of an image, identifies any faces in the image using Microsoft Azure's Face API, and attempts to identify the faces by comparing them to its MongoDB database of actors. WAMSIT then searches TMDB, finding a list of movies and shows that each actor appears in, then cross-referencing them to try to guess which movie or show the image is from.

Using WAMSIT to identify a still from Crazy, Stupid, Love.

Despite the time limit, we were able to add a layer of polish to the site, like the ability to open the TMDB page for the actors/movies/shows that WAMSIT displays directly by simply clicking the result. The site was designed responsively to look great on desktop and mobile using gulp, webpack and PostCSS.

This project gave me experience with using external REST APIs and I learned valuable lessons about scope when paring down features and stretch goals to meat the strict 36-hour deadline.

Wyrmling: First Hunt

JS, HTML, CSS.

Phaser, Pyxel Edit, Bosca Ceoil, webpack, gulp.

August 11-13, 2017

Wyrmling: First Hunt is a reaction- and strategy-based infinite sidescroller created in two days for #LOWREZJAM. In Wyrmling, you play as a baby dragon sneaking his way through the forest trying to avoid the pesky wolves and traps that make eating birds and their eggs so hard to do.

An example of Wyrmling: First Hunt gampeplay.

I've always found that learning programming languages, tools, and frameworks is entirely on a students shoulders. If you want to have broad experience with a number of these, you have to learn of your own accord at every opportunity. I took this opportunity to go from having no experience with the Phaser JavaScript game framework, to 48 hours later having completed a game with it.

The Wyrmling: First Hunt main menu. The Wyrmling: First Hunt 'game over' screen.

This project was a fun way to keep my game development skills sharp, learn a new framework, and do some pixel art!

ScribbleHead

C#, ShaderLab.

Unity, Photoshop.

January - April, 2017

ScribbleHead is a stylized puzzle platformer where you play as an illustrated character who uses tools of his medium to avoid or sneak past obstacles and enemies.

In ScribbleHead the player must move from the left side of the map to the right side in order to proceed. Each level is made up of a series of discrete yet interconnected puzzles and challenges that incorporate two main mechanics for the player to use.

ScribbleHead using the chalk mechanic. ScribbleHead using the sketch mechanic.

My two teammates and I wrote this game for our second-year game design course, and presented it at the Queen's Creative Computing Show in April, with an overwhelmingly positive reception.

ScribbleHead using both mechanics.

This project challenged me to learn best practices for important components of game development, such as enemy AI, shaders, and team collaboration.

SixSixSixFlags

Python.

January, 2016

SixSixSixFlags is a text-based adventure game I wrote as an assignment for one of my first-year computer science courses. I'm pretty sure the assignment required that the game have four two six rooms -- I got a little carried away and gave it ~16 different areas, depending on whether or not you count the secret passageway and boss fight.

The SixSixSixFlags lottery vendor is known for his fabulous mustache. All park visitors are required to read the rulebook.

This was one of the first games I ever wrote from scratch, and while the code itself could be refactored and improved with the knowledge I've gained since then, at the time I really pushed myself to see how complete and entertaining of a game I could create with my then-limited toolset.

The park employs workers of all types: men, women, robots, etc.

This project challenged me to form a scalable architecture before I knew what an 'architecture' was, what 'scalable' meant, or what 'objects' were for. I had to creatively overcome obstacles, and did so, propelled purely by self-motivation.