Hi, I’m James. I’m a programmer, and have worked in the games industry professionally for over 11 years. I currently work at Bandit Island Games as a Senior Developer, where I lead the programming team on one of our games.
Who am I?
I got my start in the industry through making mods for games, and over the years I’ve worked with indie and AAA studios on projects big and small for PC, console, and mobile; with team sizes ranging from only four people to over a hundred. I’ve worked extensively with Unity over the years, but have shipped games using Unreal Engine and custom game engines as well.
Over the years and projects, I’ve worked on a lot of different aspects of programming games. While there has been a lot of core gameplay programming, with my work mainly being character, controls, and camera; I’ve spent significant time working on editor tooling, AI systems, networking, animation, performance and optimization, certification and releases, design, and more.
I currently work at Bandit Island Games, I’m a Senior Developer there and currently lead the programming team on one of our games. I work on all parts of the game as required, which is mostly networking related lately; but I also provide assistance to the other programmers if they need it.
s&box
I’ve been following s&box’s development for a long time and have made a few things for it since getting access. Here are a few of the things I’ve released, but I’ve worked on a bunch of other prototypes using s&box too.
Triggernometry
Triggernometry is an arcade twin-stick shooter inspired by Geometry Wars. It has a couple of game modes to play, and a few different weapons and companion drones to take into battle. It’s released to the public to play, but I’m still working on new updates for it.






Procedural Biomes Tool






The Procedural Biomes Tool is a tool for creating natural looking landscapes quickly. It uses hierarchical rules that determine how a biome should look, and then allows you to paint them directly onto terrain. It was released as a library so that everybody in the s&box community can make use of it.
This was created as an entry into the s&box Tech Jam and won the Best Procedural category.
Fourtris
Fourtris is a Tetris: The Grand Master inspired block dropping puzzle game. The goal is to hit a set end point by clearing enough lines while hitting certain score and time requirements along the way in order to raise your given rank.






GarryWare






A remake of GarryWare, a multiplayer party game featuring series of rapid fire minigames that was originally a gamemode in Garry’s Mod. Players are given minigames with simple objectives and tasked to complete them before a short timer expires.
I worked on this as my first project after getting access to s&box in 2022. It was built on the original Entities system before it was superseded by the new GameObjects system. Fixing up the game so that it works with the latest updates is one of my planned projects.
Professional Projects
These are a selection of the games I’ve worked on over the years that have been released.
Greedy Wizards: Battle Games
Studio: Bandit Island Games (as 8 Bit Bandits)
Engine: Unity
Languages: C#, Go
Greedy Wizards is a co-op dungeon crawler made for mobile. Players fight through semi-randomly generated dungeons filled with enemies, collecting loot and treasure as they go.
I worked on the gameplay side of Greedy Wizards, implementing the characters and their abilities, enemies and their attacks, bosses and more.
During this time a large part of my focus was on the networking, ensuring that all of these systems and features worked in real-time and reliably across a variety of mobile devices and internet conditions. We worked with Unity and their Netcode for GameObjects package, adapting it to suit the network conditions we would see in the real world on mobile devices and dealing with latency, packet loss, and reconnection issues; as well as adapting it to work with an authoritative server to prevent cheating.






Crash Bandicoot: On the Run!
Studio: King
Engine: Unity
Languages: C#, Java
Crash Bandicoot: On the Run! is a runner game for mobile. Players dodge obstacles and enemies while attempting to make it to the end of a level.
On Crash, I was responsible for a wide variety of gameplay systems on the runner side of the game. I worked on the main character, controls, camera, cosmetics, enemies, obstacles, and the level design tools.
Post-release, I led the work on a total refactor of the games runner side to accommodate a change in game direction. We simplified many gameplay systems to run more efficiently on mobile devices, rebuilt the level design tools to be faster and easier for the designers to use, and reimplemented the game’s custom level formats to be simpler, smaller, and load faster; all while maintaining backwards compatibility with all the content that was created before the refactoring work.






HELLDIVERS 2
Studio: Arrowhead Game Studios
Engine: Stingray
Languages: C, C++
HELLDIVERS 2 is a third person co-op shooter where players attempt to complete missions on hostile alien planets.
During my time on Helldivers 2 I was a part of the core gameplay team, working on the Helldivers themselves as well as all of the equipment they are able to use. I helped develop the character movement, controls, and camera. I worked directly with the designers and animators to ensure that the characters acted according to how the game director envisioned.
Weapons, projectiles, call-ins, air-strikes, and vehicles were also a large part of the workload during the project; I worked together with other members of the core gameplay to create dozens of unique pieces of equipment between us all.






PAYDAY 2
Studio: Starbreeze Studios
Engine: Diesel
Languages: Lua, C++
PAYDAY 2 is first-person co-op shooter where players rob banks and pull off other types of heists to steal money and loot.
I joined post-release and helped keep the DLC release cycle for the game running smoothly, working on new heists, characters, weapons, enemies, and gameplay features. During this time I also helped improve the level editor, adding in new features and fixing old issues as needed by the level designers. As the game was frequently updating, I also helped to optimize the build process and speed up build times for the game; and created automated tooling that allowed the art team to release new cosmetic loot boxes with minimal programmer assistance.
I also worked on large networking and animation refactors. The networking refactor was a solo effort which generally improved the player and enemy syncing and introduced better handling for desyncs, disconnects and reconnects, and small duration timeouts.






Other and Older Projects
Engines: Unity, Unreal, Diesel
Languages: C#, C++, Lua, Java
I’ve worked on a bunch of other projects during my time in the industry, some of them are fully launched games and some of them only made it to public playtesting before being canned.
If you’d like to view my full history, you can find them on my dedicated work history page.






Personal Projects
I’m always working on extra little things outside of my professional work, programming and tinkering away on things. Not all of it gets to see the light of day, but there’s always something in the works. These are some of my non-s&box related things.
BeatBox
Engine: Unity
Languages: C#
My recreation of Jubeat, an arcade rhythm game.
For this project I built the game side of things in Unity; loading the song audio and note chart from game files on disk, without having to bundle them with the game itself. Visuals like the markers (the things the players see that tell them where and when to tap) were also created in Unity but shipped as asset bundles so that new ones could be created and shared without having to rebuild the game.
The controller side of things was designed from scratch using custom PCB’s and a 3D printed frame and buttons.
I’ve written a fairly in-depth post on it, which you can read here.






Titanfall 2 Modding
Engine: Source
Languages: C++, C#, Squirrel
I worked on a bunch of things for Titanfall 2; a C++ modding SDK, a mod injector, a sandbox mode mod, and a website for people to upload their own mods to.
The modding SDK hooked into the Source engine used by Titanfall and allowed us to modify existing scripts and inject new ones into it’s existing Squirrel scripting; as well as enhancing its asset loading system to allow us to load arbitrary assets at runtime. The sandbox mod was then mostly written using Squirrel where possible.
I even started building a rudimentary level editor using a fork of GTK Radiant to attempt to create custom levels, but this idea was abandoned in the end.
You can read more about the mod SDK and sandbox mod, or the mod website itself.



Payday 2 Modding
Engine: Diesel
Languages: Lua, C++
Payday 2 started off with making a couple of simple gameplay mods, which turned into writing a whole new mod injector for the game, and eventually a job with the game’s developer Starbreeze. The Payday 2 BLT was the mod injector I created with my friends Tim and Will, which became the de facto modding tool for the community. During my time working for Starbreeze, the majority of my gameplay mods were incorporated into the game proper.
If you like, you can read more about the BLT, the mods themselves, or the website we made to distribute them.






Apex Legends Interactive Map
Engine: Diesel
Languages: Lua, C++

This was a small project to be able to visualize the entire Apex Legends map in the browser and see all the important things around the map at a glace, weapons, loot locations, balloons for escaping.
The data as accurate as can be, as it was pulled directly out of Apex’s game files using the knowledge I’d built up building the Titanfall 2 mod SDK. I wrote a simple parser for the game’s BSP files, selected the entities that were relevant and dumped them into a json file that could be read by the browser to populate the map.
More information on the Apex map is available here.
Garry’s Mod Stuff
Garry’s Mod and Counter Strike Source were my original foray into modding games, and are what ultimately sent my career the way they went. I spent hours and hours learning how other peoples gamemodes and maps worked, figuring out how everything was put together, and why it was put together that way. I’d try and iterate on other people’s gamemodes, testing out the changes on our servers to see if people liked the changes, or if they hated them and why.
Unfortunately, nearly all of my Garry’s Mod stuff has been lost to time, as none of it was never released publicly.