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 games and tools developer with a knack for networking.

I work at Mediatonic with Epic Games, on hit games including Fall Guys and Fortnite.

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

Want to chat? Send me an e-mail at louis_foy@yahoo.co.uk.

Professional Work

See also my personal work which illustrates my breadth of technical skills. Go to Personal Work or keep scrolling!

Fortnite (2023-)

I joined Fortnite last December to help out with a fast-moving initiative that needed extra hands. My responsibilities included:

  • Implementing various optimised, network-aware features for an exciting gameplay initiative
  • Collaborating with a designer as part of a programmer-designer power-team to rapidly output features and iterations
  • Implementing in-depth, intuitive gameplay ability system debugging tools to solve complexity issues and improve developer efficiency across multiple teams
  • Frequent communication and coordination with UK and US teams within Epic to get the right work delivered in the right time
Fall Guys (2022-2023)

I was initially moved to Fall Guys as it approached its imminent Free-for-All release. My responsibilities included:

  • Joining a gameplay-oriented strike team to develop an exciting undisclosed initiative
  • Creating undisclosed gameplay systems and mechanics
  • Providing bugfixing, tooling, optimisations and code refactoring assistance in collaboration with Wushu Studios for the imminent Creative Mode release
  • Creating runtime network condition simulation tools and several similar analysis interfaces
  • Creating several miscellaneous tools to improve the testing and QA experience across many domains of the game, such as cheats and fixes to annoying repetitive issues
  • Joining a senior-heavy strike team to improve game network security at the last minute ahead of Free-for-All release
  • Taking personal initiative to develop and improve several editor tools and optimisations to boost workflow speed, ease of use, and load times for developers
  • Taking personal initiative to raise, investigate, communicate and sometimes fix bugs upon discovery across various teams
Undisclosed project (2021-2022)

My responsibilities included:

  • Kicking off development on multiple core systems and mechanics for this large-scale multiplayer roguelike
  • Impromptu editor tooling, such as animation and physics visualisations, to improve design experience
  • Prototyping awesome gameplay mechanics in collaboration with design and engineering
  • Providing networking-oriented advice and recommendations to less experienced team members
  • Sharing resources to help Unity team learn Unreal and C++
  • Refactoring and simplifying systems when complexity became too high
  • Creating Gameplay debug tooling, later adapted and ported for use on Fortnite
Undisclosed project (2020-2021)

I was hired at Mediatonic to help kick off this multiplayer Unity project, with my networking skills allowing me to make standout contributions as this was a new area for many of the team. My responsibilities included:

  • Kicking off development on multiple core systems and mechanics
  • Creating a singular test bed to stress-test several networking libraries to help team pick the best one
  • Creating initial networking systems including asset replication, quick-build tools, and predictive server-authoritative character state machine replication
  • Improving addressables asset management and tooling
  • Creating general tooling on personal initiative
  • Prototyping gameplay mechanics
I.G.I Origins (2019)

I.G.I Origins began halfway through my 3-month internship at AMG and I was put on the team to help kick things off. My responsibilities included:

  • Prototyping several neat stealth-oriented traversal mechanics in collaboration with designers
  • Developing a scripting system and evaluator for gameplay dialogue scenes
  • Implementing multiple crafty, stealth-oriented gameplay device prototypes
'83 (2019)

'83 was my first project during through my 3-month internship at AMG and first professional game project in general! My responsibilities included:

  • Initial implementation, gameplay setup, and voicing-acting of our first in-game vehicle
  • Creating novel, HTML5/Javascript rapid-prototype to simulate an experimental large-scale game mode with a mass of players
  • Implementating experimental game mode, relevant objectives and relevant HUDs
  • In-editor debug visualisation for gameplay objectives

Personal Work

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

Description

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 itch.io 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
1
Download
upon request
Dev time
9 months

Description

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
2
Download
available here
Dev time
4 days

Description

Note: We later remade this game with two additional friends and a month of dev time - here's what the result looked like!

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 samauber.me!)

We later remade this with a web version that was online for one month and gained 1.1k upvotes on Reddit during its release. More details available on request.

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
Last Penguin Standing A multiplayer penguin pitfalling party on a precarious iceberg
Team size
1
Download
upon request

Description

Last Penguin Standing is a chaotic local and online multiplayer party game featuring adorable penguins and their violent, iceberg-destroying tendencies!

This began as a pre-employment COVID project which I have developed on and off since for fun. I made the game and all its assets, except for the majority of sound effects, using freely available tools like Krita and Blender.

The multiplayer video footage is of older versions of the game - unfortunately I didn't record any of the playtests for newer versions. The single-player footage is more accurate to the current quality of the game.

Special thanks to my friends Luigi, Gem, and Andreea for playtesting with me and allowing me to record those sessions!

My responsibilities

  • Initial idea
  • Penguin and shark character locomotion and abilities
  • Multiplayer gameplay programming using Mirror and my own UnityMultiplayerEssentials tools
  • Level editor tooling, export, and online transfer features using ImGui
  • Destructable iceberg / voxel system / procedural meshes
  • Models and animations created with Blender
  • Sound implementation with FMOD
Genesis A personal 3D modeller side-project with live real-time editing on supported applications
Team size
1
Download
available here
Dev time
~2 years

Description

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
Download
available here
Dev time
7 months

Description

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
1
Source code
@GitHub
Dev time
3 months

Description

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
10
Download
upon request
Dev time
5 months

Description

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
1
Download
@PCSX2.net
Dev time
N/A

Description

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
~5
Download
@GGJ site!
Dev time
2 days

Description

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 independent, team, game jam and university work. Code samples and game downloads are available on request.

About me

CV

Download my CV

Download
as PDF

Contact


I'm not very active on social media these days - too much noise! Consider pinging me an email :)

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 louis_foy@yahoo.co.uk.

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!