This website requires Javascript to function fully. Please enable Javascript in your browser.

Hi! It's nice to meet you.

My name is Louis. I'm an experienced programming hobbyist and high-achieving game development student based in the UK.

I've created online multiplayer games, development tools, shaders and much more in several languages. Check out some of my projects below!

I graduated in 2020 from the heavily team-focused Computing for Games course at Falmouth University. I am now happily employed in a creative, motivated game development team!

Want to chat? Send me an e-mail at


Rana: A Ribbiting Adventure A platformer where you play as a frog with a highly versatile tongue
Team size
11 students
Dev time
8 months


A hoppin' good old-fashioned platformer where Rana, the handsome frog prince, must recover his kingdom from the menacing Mega Kitten! Ctrl+Alt+Squid's six-month prototype comprises one highly polished level culminating in a battle with the aforementioned kitten of doom.

Rana aims to refine the spirit of the 90's platformer in a fun, concise and silky-smooth gameplay experience. It features about 30 minutes of speedy tongue-swinging, wall-jumping, melee sword combat and more!

Rana was developed by Ctrl+Alt+Squid and was released on in February 2020.

My responsibilities

  • Scrum master for initial three sprints
    • Monitoring attendance
    • Setting up meeting times
    • Moderating brainstorming meetings and sprint planning sessions
    • Owning, touching and organising the mighty scrum board
    • Writing version control tutorials for team
  • Gameplay programming
    • Player character locomotion
    • Player abilities incl. tongue swinging, tongue pulling, wall jumping, swallow and deflection, hop, squash-jumping
    • Tongue targeting and autotargeting
    • Player camera control
    • Checkpoints and death management
    • Sound system incl. animation-triggered effects and pitch randomisation
    • Dialogue system with text parser
    • Refinements and polish
  • Shader & tools programming
    • Procedurally-generated grass brush tools and shader
    • Pickup placement tools (lines, arcs, etc)
    • Real-time synchronised moving platform visualizer
  • Sound design and implementation (excluding music and the realistic cat noises [that was our writer's cat])
  • Stand-up presenter at E3-style university event
Critical Critters A chaotic multiplayer third-person shooter featuring adorable animals
Team size
upon request
Dev time
9 months


A multiplayer animal third-person shooter featuring a static-electric, wall-running rabbit and heroic, TNT-equipped kamikaze pigeon.

This was my final year college project. I was in charge of everything from design to art to implementation; and crucially, planning, scheduling and execution. This high level of ambition was self-motivated, and I was easily able to meet the flexible brief, which requested a game development-related portfolio asset.

Made using Visual C++ Express, Photoshop CS6 and 3DS Max 2013.

My responsibilities

  • Project concept and design proposal document
  • Scheduling and pre-planning (including Gantt charts)
  • All programming including...
    • Portal renderers (see the doghouse/team base)
    • Animation and blending systems
    • Quantised and interpolated online synchronisation with WinSock
    • Special effects and particle renderers
    • Character locomotion and physics, including bunny wall-running and pigeon flight
    • Procedural rainbow generators
  • Modelling and animation of all assets in 3DS Max/Maya
  • Texturing of assets using Adobe Photoshop CS6
  • Regular gameplay testing and iteration
Invisible Snow Battle An online snowball fighting game with a twist

Credit to Kenney's Assets for the visual assets shown and used in the game.

Team size
available here
Dev time
4 days


Invisible Snow Battle is an online action-party game for up to 8 players. It's a snowball battle, except everyone's invisible. Look out and listen for other player's footprints whilst hastily rolling your own snowballs for ammunition. The player who makes the most hits before time runs out wins!

Invisible Snow Battle was developed in 4 days, and was a random passion project by me and a friend through the Christmas 2018 holidays. We worked remotely, employing a loose agile workflow using Trello, and using playtests effectively to iteratively develop the game to a playable and fun state.

Made with my friend and co-developer Sam (see his work at!)

My responsibilities

  • Initial idea
  • Multi-player gameplay programming with UNet
  • Programming the 3D imprint shader for footprint visuals
  • Developing the PHP server list and its interfacing with Unity
  • Trailer recording, editing with Vegas Pro, and singing!
  • Sound implementation
  • Collaborative work:
    • Miscellaneous gameplay programming, design, and balancing
    • Regular playtesting
Genesis A personal 3D modeller side-project with live real-time editing on supported applications
Team size
available here
Dev time
~2 years


Genesis is a 3D modeller passion project on hiatus. I developed it in C++ and intended it to be a tool for collaborative game development. It features live editing over a network, which can be supported by any application that implements the GenLib library.

It currently includes classic hard-modelling tools such as extrusion, splitting; transformation tools for scaling/translating/rotating; modifiers for effects such as Mirroring; and multi-editing of several selected instances.

Once of its uses was for my Spyro the Dragon(tm) modding passion project, SpyroEdit, where it can edit the level geometry and object positions.

Developing this project allowed me to push my 3D math skills, learn HLSL shaders, explore the usage of flexible file formats over a lossy network and deepen my understanding of mesh manipulation.

My responsibilities

  • Design and implementation of GenLib library
  • Programming of all components including:
    • Vector and matrix math libraries
    • Hybrid GenState and .gen file format
    • Network synchronisation with sockets (WinSock) ('LiveGen' integration)
    • D3D11-based renderer
    • HLSL shaders
    • Mesh modifier stack
Planetary Pest Control A two-player buddy co-op bug extermination game
Team size
14 students
available here
Dev time
7 months


Planetary Pest Control is an asymmetrical co-op game featuring E.V., a powerful robot, and her engineer Wrench. Fight through hordes of bugs using E.V's raw power while Wrench clambers to keep them both alive!

Planetary Pest Control was developed by DangerZone, a massive student team including three programmers. My role on this project was broad, and I prototyped and created multiple iterations of key features under the direction of the creative director and designers.

In this project I was able to demonstrate my speed and efficacy in iterating features, working within self-assigned time estimates on the team's HacknPlan board.

This project was highly iterative and its requirements changed over time, sometimes significantly. Due to this, some of my contributions did not make the final cut. These are marked with an asterisk (*).

My responsibilities

  • Programming
    • All major monkey abilities including
      • Locomotion, jumps, and dives
      • Pole acrobatics (*)
      • Wrench attacks
      • Player and enemy knockback
      • All major animation implementation (+sound triggers and combat)
    • Some mech abilities including
      • Healray and rocket weapons
      • Model and animation implementation (3rd/final model iteration only)
    • Online play with the Photon Networking API (*)
    • Audio system and implementation using FMOD
    • The final boss battle (with two major revisions)
    • Combat interaction system including knockback and visual feedback
    • Bulk item pickup/replenish system
    • Monkey-mech interactions (climbing, healing)
    • Dialogue system
  • Prototyping tidbits
    • Placeholder particle systems for improved game feel and feedback (such as rockets and the heal ray)
    • Placeholder animated boss enemy blockout
    • Placeholder wrench attack animations refined to achieve a good game feel
    • Several placeholder sound effects made using Bfxr
  • Team workflow
    • Regular HacknPlan board maintenance and time-keeping
    • Usage of git branching when applicable
    • Assisting team members with occasional rogue version control issues
Handzer A hands-on gaming experiment using a custom Arduino controller
Team size
Source code
Dev time
3 months


Handzer is an experimental C++ game using a custom Arduino controller fastened to the player's hand. It tests the theory that the human hand would be much cooler if it could shoot rainbow lasers. Initial tests showed promising results.

The game is controlled entirely with the right hand. Bouncing it up and down at various speeds moves Handzer forward or back (depending on tilt), while opening your hand activates his rainbow laser breath.

It was developed in three months as part of a university module. My favourite challenge was in using an accelerometer to measure both direction and speed of the hand. This was naturally difficult, as gravity constantly influenced the sensor, which was further influenced as the player bounces their hand.

My responsibilities

  • Programming
    • Layered quasi-3D parallax engine rendered with the SDL library
    • Hand sensor integration
    • Hand motion detection including conversion into character speed and jumps
    • Example enemy and healthbar
    • Laser effects
    • Procedural googly eye simulation engine
  • Sound effects and editing
  • Photographed sprites and editing
  • Arduino assembly programming
Demiurge A top-down, karma-based shooter
Team size
upon request
Dev time
5 months


Demiurge is a top-down arcade shooter by Team Duo, a student team Falmouth University. I was one of three programmers working in Unreal Engine for the first time. The game's core mechanic is karma-based shooting, where deflecting enemy shots increases your power.

You play as the human who has crash-landed on an alien planet inhabited by primitive beings. These beings worship a technologically superior figure known as 'Demiurge'. As you progress, you quickly learn you weren't the first human to arrive here.

The team was selected by staff and we concepted and developed the game across about 5 months. Beyond programming, I also created the soundtrack for the game and trailer, and acted as scrum master across development.

My responsibilities

  • Scrum master duties
    • Sending scrum board reminders to team
    • Moderating the Trello board
    • Setting up regular sprint meetings
    • Ensuring game is on track for deadline
  • Programming
    • Shield deflection mechanics
    • Dialogue system in C++
    • Programming of various mechanics
    • Audio implementation
  • Audio
    • Sound design using LMMS
    • Music composition using LMMS
PCSX2dis A real-time assembler and debugger for the PCSX2 emulator inspired by hanimar's ps2dis
Team size
Dev time


PCSX2dis is a MIPS assembly debugger extension to the open-source PCSX2 emulator. It features real-time MIPS instruction replacement, code analysis, reference tracing, breakpoints with register viewing and editing, a memory scanner, and a custom built-in GameShark code emulator. I made this on-and-off while modding my favourite games.

The interface of PCSX2dis was inspired by an old dissembler called ps2dis by Hanimar. The key distinguishing factors included real-time modding/memory editing, breakpoints, modernisation and streamlining of the UI, and many additions and quality-of-life improvements.

A stand-alone version, decoupled from the emulator and compatible with other MIPS-based emulators via process attachment, is available on request.

The developers of PCSX2 and Hanimar are not affiliated with this inspired passion project.

My responsibilities

  • Programming
    • MIPS ASM converters and translators
    • Breakpoint system supporting memory read/write and PC breakpoints
    • Reference analyser
    • Memory scanner
    • Wildcard ASM, string, number and anonymous pattern search tool
    • Built-in GameShark code runner
  • Integration into PCSX2
Un-Punch Man Fix everything by breaking them and reversing time in this cute puzzle platformer for GGJ2020.
Team size
@GGJ site!
Dev time
2 days


Un-punch Man is a short game where the time-boi, Squidge, wanders the broken world repairs monuments with his smashing and time-reversing powers. But in order to fix things, he must break things, to make paths to fix things!

Our team had a blast making this in 48 hours for the Global Game Jam 2020! In this team I took a proactive role in generating the vision to the game, programming the core mechanics such as time warping. As the original ideator, I loosely played the role of director; but as this was a game jam, my priority was that we all enjoyed ourselves and did the type of things that mattered most. While the squidgy protagonist were way beyond what I had in mind for a more grounded human world, they were lovingly integrated courtesy of the diverse creativity of the art (actually animation) team, forming the weird and adorable thematic groundwork of this cute squidgy adventure!

Made by Team Programinators, a power team of just programmers and animators.

My responsibilities

  • Initial concept and loose game direction
  • Pro-actively maintaining team focus and managing milestones
  • Introduced Blender Cell Fracture to applicable members for creation of destructible meshes
  • Programming
    • Physics prediction and recording
    • Time reverse and freeze system
    • Animation implementation
    • Sound and audio implementation (including animation event sounds)
    • UI programming and layout
    • Googly eye physics (again) (this time in 3D!)

This is a small, refined portion of my personal and course work. Code samples and game downloads are available on request.

About me


Download my CV

as PDF


The written content and source code of this website is created and owned by Louis Foy.

Unauthorised reproduction of content is permitted if a link back to this page is provided.

If you have any questions, please feel free to e-mail me at

This website does not use cookies. It doesn't track you, request a registration, or offer a deal. In fact, this box has no function. It is completely superfluous. The box bears the burden of uselessness, not particularly because the box is irrelevant or inappropriate, but because it wagers the valuable time of the diligent recruiter who is carefully sifting through hundreds of promising job applications. However, the box, in its favourably remote and inoffensive position, occasionally enjoys the paradoxical phenomenon where the time the recruiter lost is offset by the time they autonomously invested in reading the box, and the box gratefully accepts this as its sole thread of validation. Why the box is read, and why it was written, are questions that perhaps share the same answer. The box is briefly befriended for being what it is - meaningless. In being satisfied with its meaningless self, the box mimics the actions of the wise people of history by finding happiness in simply being. Once again, the box is truly superfluous no matter how far you read through it. It relishes in happiness alone. The box has no desire to pop up or move. There are no cookies to offer. The GDPR disclaimer is absent. The Accept button doesn't even work. There is no meaning. The box exists, therefore the box is sated. In accepting its lack of reason, the box poses a role model for the people who opt to read it. All hail the box. If you would like to discuss the wisdom of The Box over a hot chocolate, let's get in contact!