James King's Portfolio

I'm not going to pretend this isn't using a template

View the Project on GitHub Metapyziks


I'm a programmer and Computer Science graduate (BSc) focussing on video game, AI and computer graphics related things.

Here's a selection of things I've worked on recently.


Work in Progress

Level Design

Sphaira (2014)


A quick hobby project with the goal of rendering a perfect impostor sphere of arbitrary size that a player can walk upon. I have some plans for a game built on top of this technology, but that will probably have to wait until I've completed my degree.

It's written in C# using the OpenTK bindings for OpenGL, using custom GLSL shaders for rendering the sky, sun and sphere. Everything is procedural, with no imported texture assets.


Visual Language Prototype (2014)

Visual Language Prototype

This is a quick prototype of a flowchart based scripting language that will be integrated with Sphaira at some point. The system allows for loops, working variables and recursion purely through the simple set of rules that govern how signals propagate through each script diagram.

It's written in C#, using WinForms for the prototype's GUI.


Final Frontier (2012-2014)

Final Frontier

Built on top of the game Garry's Mod, Final Frontier aims to be a multiplayer space combat sandbox. The game is inspired by Subset Games' FTL: Faster Than Light, but with the key difference that each player controls a single crew member, allowing for many players to cooperate in the operation of a space vessel.

Despite how early in development the project currently is, it has been spotted by many games journalism websites including RockPaperShotgun.com and PC Gamer. The game is also open source, and is open to contributions.

The game is a gamemode for Garry's Mod, scripted using Lua. All code apart from some recent contributions was written by me, along with some art assets and the level design. The remaining art was created by a friend (GitHub profile here), who also assisted with some game design and features in the developer walkthrough video series.


Zombles (2012-2014)


Zombles will be a real-time strategy game built on top of a zombie apocalypse simulation, and designing the AI for this project was the subject of my final year dissertation at university. It currently features a procedurally generated city environment, supports hundreds of survivors and zombies simulated in real-time, and a unique art direction (although perhaps not an entirely unique setting!)

Built in C# using OpenTK's OpenGL bindings, Zombles is developed on top of its own game engine. All code and art was produced by me.


SpelunkyExplorers.com (2013)


This project is an unofficial online live leaderboard for the Daily Challenge feature in Mossmouth LLC's recently released game Spelunky.

Previously, the only way to view the daily leaderboards was in-game, and only the previous week could be seen. However, SpelunkyExplorers.com archives all daily leaderboards, which can be browsed all the way back to release day. The website also allows players to share links of individual leaderboard entries with friends, something that could only previously be achieved by taking a screen shot of their entry in-game.

Players can also sign in with their Steam account to view all of their entries, and link YouTube videos or attach comments to them.

I'm hoping to expand the project by providing stats, graphs, and possibly achievements awarded for achieving certain goals related to leaderboard entries. Mossmouth have also expressed an interest in the project, and have mentioned they would like to provide more data about each entry to be viewed on the site.

The server portion of the project is written entirely in C# by me, on top of my web server library which can be found here. It also makes use of my database management library, found here. The pages use jQuery for asynchronous stuff, and jQuery UI for the buttons and calender control. Most of the images used are from Spelunky, for which I have received permission.


Durham University Oberon-2 Compiler (2013)

Logic Sim

During the Summer of 2013 I was awarded a research bursary to support a project assigned to me by a lecturer at my university; to write a modern compiler for Oberon-2. This would be one of the more difficult programming tasks I have attempted, but I managed to complete the required objectives ahead of schedule. During the 10 weeks of the project I produced a functioning compiler that supports the major features of Oberon-2, and extended the language with support for interfacing with native libraries and the ability to use vector arithmetic when supported.

The compiler is written in C#, and makes use of the LLVM toolchain for optimisation.


Logic Sim (2013)

Logic Sim

This web application is a logic circuit simulator, built for a lecturer at my university to use when tutoring computer architecture. It features the ability to create your own integrated circuits as components to re-use, and share your circuits or save them to be edited later.

The project is written entirely in Java Script, using HTML5's canvas element.


RaspberryPi Stuff (2013)

RaspberryPi Stuff

In late 2013 I won a RaspberryPi in a programming competition, and had some fun writing a basic procedural Pokemon-style level generator and renderer to output on an LCD-PI32 display.

This project is written entirely in C, and runs on Windows as well as the RaspberryPi.


Computer Graphics Coursework (2013)

Computer Graphics Coursework

For my second year Computer Graphics assignment at university, we were tasked with creating a scene involving a boat travelling across a body of water with some player control, using OpenGL for rendering. I took the opportunity to learn about frame buffers, which I have used to simulate the water's movement and reactions to the ship.

The project is written in C#, using OpenTK for OpenGL bindings. The boat model was created by me in Blender, and the sky and boat materials were found online.


GTA:SA World Viewer (2012)

GTA:SA World Viewer

This tool lets you fly around the world of Grand Theft Auto: San Andreas, dynamically loading in models straight from the game's data archives (the program must be placed in the root directory of a GTA:SA installation to work). It's written in C#, and uses OpenTK.


Pirate Launch (2009)

Pirate Launch

Pirate Launch is the result of a collaboration between the artist Noodle and me back in 2009. All ActionScript programming was produced by me, with Noodle contributing the game's art along with coordinating the project. The completed game seems to have been relatively well received, achieving a sponsorship from Armor Games and a Daily Feature award on Newgrounds with a score of 4.25 out of 5 stars. In total it's been played over 6 million times across dozens of hosting sites as of June 2014.


Assorted Source / UT99 Maps

ttt_concrete (TTT, 2011-2012)



ctf-brainfreeze (UT99, 2010)

Brain Freeze

Brain Freeze

Back to Top