Finlay Laidlaw

Games Programmer

Hi, I’m Finlay

I’m a games programmer who believes in writing clean code and making my code work for others. I enjoy making good tools, fixing tricky bugs, finding new methods, and working with other skilled professionals to bring ideas into reality.

I am confident in my C++ and Unreal Engine 5 skills, with professional experience at Sumo Digital and 1st class honours in BSc (Hons) Computer Games Technology at Abertay. I have made mods, participated in game jams, the Grads in Games Rising Star Programming challenge, and Abertay’s DARE Academy.

I like indie games, reading sci-fi/fantasy, and learning about physics and science. Some games that inspire me today: Deltarune, Sifu, Outer Wilds, Celeste, and Hardspace: Shipbreaker.

I’m looking for work as a games programmer either locally in Dundee or remote. I can also work hybrid in Edinburgh, depending on the details.

⇓ Download CV ⇓

C++

  • Modern C++, up to C++23
  • Using the standard library
  • Safe memory management with smart pointers
  • Error handling with expected or exceptions
  • Clean coding practices (encapsulation, DRY, good names, etc.)
  • Learning and integrating new libraries as needed
  • If you want to see some of my code, look here.

Unreal Engine 5

  • 3Cs: Enhanced Input and Mover
  • UI programming: Common UI, UMG, Editor Menu Extensions, and Slate
  • Tools programming: implementing undo/redo support, integrating with RewindDebugger, and various minor debug features
  • Multiplayer: C++ Game Framework (PlayerState, GameMode, etc.), RPCs, fixing networking bugs
  • Architecture: Using Subsystems, using Actors and Actor Components, designing new systems.

Soft Skills

  • Getting up to speed with an existing project and processes quickly
  • Researching and learning new skills independently as needed
  • Communicating with others to solve problems on large teams
  • Using professional workflows: Jira, CI/CD, code review, and adhering to coding standards
  • Using a variety of resources to solve problems: documentation, blog-posts, reading source-code, learning new debug tools, testing to confirm expected behaviour

Engine Level

  • Graphics programming: DirectX11, OpenGL, shader programming, compute shaders, shadow mapping, normal maps, instanced rendering.
  • Scene and object management
  • Low level networking
  • Using physics, audio, input, and windowing libraries

Miscellaneous

  • Some experience with Godot and Unity in game jams
  • HTML, CSS, TypeScript and WebAssembly

Finlay is a fantastic programmer to work with. He’s got a great attitude, is extremely fast and capable at prototyping, and isn’t afraid to speak up and make suggestions to improve the features he is working on. He’s also really engaged and delivers work extremely quickly.

I’d happily work with Finlay again in the future, and have no doubt he has a bright future ahead of him in the games industry.

—Thomas Chase, Senior Principle 3Cs Designer at Sumo Digital Sheffield

Sumo Digital Placement (1 year)

Placement Programmer

  • Join projects in-development to provide additional programming support to teams
  • Program for Unreal Engine 5 using C++ and Blueprints
  • Use Jira for task management and Miro for creating documentation
  • Use Swarm for code review
  • Use Perforce with UGS for source control

Project D5 (Gamemodes Team)

  • Join game modes team: implementing features, fixing bugs, owning and maintaining systems
  • Fix bugs affecting gamemodes, including UI, networking, and Game Ability System related
  • Implement new gameplay features based on requests or specifications
  • Fix bugs and complete tasks listed in Jira without needing additional support
  • Own two gamemodes, fixing bugs and implementing new features as required

Unannounced Unreal Engine 5 Project (3Cs Team)

  • Join the 3Cs team TODO
  • Work with Unreal’s Mover system to implement player character locomotion
  • Implement locomotion debugging visualisations with Rewind Debugger and line drawing
  • Implement player combat and movement abilities
  • Implement prototype abilities from a specification, iterating with designer feedback
  • Work with sound designer to specify and implement hooks for character sounds
  • Implement prototype user interfaces with UMG

Heldritch Rush

Unreal Engine 5 Programmer

  • Set technical direction for Unreal Engine 5 project
  • Manage tasks, assist, and review work of other programmers
  • Program in C++ and Blueprints, creating Blueprint APIs for myself and others

Input and UI

  • Develop input and UI system using Common UI and Enhanced Input
  • Create custom Slate widget for input rebinding interface
  • Support KBM and gamepad, with input rebinding

AI & Navigation

  • Create State Trees for ranged and melee enemies
  • Modify State Tree Component to pull enemy configuration from a Data Table
  • Create centralised enemy positioning system using Environmental Queries

Animation Blueprints & Materials

  • Implement Animation Blueprint for main character, blending locomotion and combat animations
  • Use Chooser to switch between weapon animations
  • Program custom materials for animated lights

Tools

  • Create Unreal Engine 5 tools with a focus on ease-of-use for designers
  • Insert loadout configuration menu in editor using Unreal’s Menu Extensions
  • Create spline-locomotion system for an on-rails shooter, including locational event system
  • Make enemy and weapon values driven by Data Tables

BSc (Hons) Computer Games Technology

Games Technology Student

  • Creating many game projects and demoes
  • Multi-disciplinary collaboration
  • Programming: Primarily C++, but also TypeScript and Python
  • Engine programming: scene/object management and creating usable APIs
  • Graphics Programming: DirectX11, OpenGL, shadow maps, compute shaders
  • Network programming: TCP/UDP, researching and implementing roll back for player movement
  • Mathematics: rigid-body physics, splines, collisions, and intersections

Embedding Games in QR Codes

Web Developer

  • Create a game engine an editor with TypeScript and WebAssembly
  • Create a Progressive Web App
  • Port PPMd (prediction by partial matching) compression software to the web with WebAssembly
  • Create a 2D level editor that uses Unicode characters for graphics
  • Create a WebGL renderer for 2D character graphics
  • Serialise and compress game data into a QR code to allow for offline storage and transfer
  • Write documentation for game engine and editor
  • Integrate Lua scripting into a web-based game engine

Braise Satan

Unreal Engine 5 Programmer

  • Collaborate with designers, producers, and artists to create a game
  • Program a first-person cooking game in Unreal Engine 5, from initial concept to EGX stand and (non-commercial) Steam release
  • Use C++ and Blueprints to implement features
  • Implement physics based item interaction and item snapping system
  • Manage game state through rounds
  • Implement cooking mechanics: chopping (skill check), cooking, frying, and mincing
  • Implement tutorial with object highlighting and NPC dialogue system
  • Create custom C++ latent Blueprint Node to ease tutorial creation
  • Implement controller support, including aim-assist for item interaction

AURIONNAUT

Developer

  • Participate in Grads in Games Rising Star Programming challenge
  • Extend existing DirectX and Windows API based framework
  • Implement font and UI rendering using DirectXTK
  • Implement instanced rendering for particles
  • Integrate PhysX into an existing framework
  • Implement audio support with SFX and music support
  • Create abstract interfaces to isolate underlying implementation
  • Implement procedurally generated trading market using Perlin noise
  • Create enemy ship AI with (6DoF)

Undertale for the NES

Developer

  • Port a fight from Undertale to the NES
  • Program a demo in 6502 assembly
  • Create sprite and game state machine to organise game logic
  • Convert pixel art graphics to be compliant with NES constraints
  • Integrate sound engine for fight music
All Posts