A downloadable portfolio

Profile icon

This is the portfolio of Connor Halford, games and tools programmer.
It was last updated in September 2022.

  • Professional work
  • Personal projects
  • Student projects
  • Awards and nominations

Professional work

Here are some of the major projects I've worked on in my career so far.

Unannounced project

Unannounced project

2022 | Failbetter | Unity | C#

(written with permission, keeping vague due to unannounced nature of project)

  • Developed a system for sorting and layering 3D meshes within a scene composed of 2D sprites
  • Dynamic curved grid. Gameplay logic and collision detection that conforms to the curvature of a grid made by blending between a set of Bézier splines and plotting vertices at their intersections
  • Data-driven gameplay system. Created a workflow where designers write text files that define a system of triggers, conditions and outcomes that are then replicated at runtime to produce the desired gameplay. This enabled designers to rapidly iterate without the need for programmer support
  • Hiring. Created the code test used as part of hiring another Senior Gameplay Programmer for the project, assessed test submissions, provided feedback, participated in technical interviews, and assisted with onboarding

Mask of the Rose

Mask of the Rose

2022 | Failbetter | Unity | C# | PC, Nintendo Switch, PlayStation 4, Xbox One

  • Mentoring. I acted as a mentor for a developer who was new to Unity, this continued when they then went on to lead development of Mask of the Rose. I helped to explain concepts and systems, answer questions, recommend solutions and avoid pitfalls
  • Support systems. I worked on systems supporting the main gameplay, for example an in-game bug reporter, a virtual keyboard for entering text with a gamepad, and storefront SDK integration including build pipeline support for automatically uploading builds

Packages and documentation

Failbetter Games

2022 | Failbetter | Unity | C#

  • Created an initiative to improve code reuse across projects by developing reusable solutions that can be distributed via the Unity Package Manager (based on NPM). These solutions are in use for both Mask of the Rose and the unannounced project

    • Debug menu. A dynamic runtime hierarchy of variables and functions exposed to developers to make testing and debugging much easier

      • Expose variables of any native C# type for viewing and editing
      • Expose variables of custom types by adding as a 'composite', which uses reflection to automatically create sub-entries for each member
      • Expose functions to be triggered. Functions with parameters can be added as composites
      • Works on all target devices; easy to include or exclude; efficient code-driven UI layout with pooling; filter the hierarchy using text search
    • Input wrapper framework with support for polling, subscription, explicit ordering, and the ability to 'consume' an input to stop it propagating

      • Custom Editor window exposing internal state to aid usage and debugging
  • Wrote and maintained documentation for both programmers and other disciplines

    • Sunless Skies technical postmortem. Conducted an assessment of the strengths and weaknesses of the Sunless Skies codebase to identify areas of focus for new projects, including gathering feedback from other disciplines about their specific needs
    • Internal wiki including a C# style guide; explanations of Unity concepts; details about third-party libraries; Git concepts and workflow; and step-by-step instructions for setting up various tools and repositories

Sunless Skies: Sovereign Edition

2021 | Failbetter | Unity | C# | PC, Nintendo Switch, PlayStation 4, Xbox One

  • Legacy codebase. At the time I joined the company Sunless Skies had been in development for 2.5 years and the two primary programmers had left the company 3 months prior. I dived into this codebase and began fixing bugs and adding new features, with an update being released a few weeks later and several more in the following months
  • Sovereign Edition. The complete version of Sunless Skies which launched on Steam, GOG, PlayStation 4, Xbox One and Nintendo Switch. Along with hundreds of bug fixes this included major gameplay additions such as a new warp relay and new movement mechanics
  • Console ports. Reviewed and assisted the work of a third-party porting company in getting the game working on consoles, including passing each platform’s submission requirements. To give console players the best experience I significantly reworked all gamepad menu navigation and scrolling, added a radial menu, added dynamic input prompts, and implemented a new gamepad control scheme

DreamWorks Dragons: Dawn of New Riders

2019 | Climax | Unity | C# | PC, Nintendo Switch, PlayStation 4, Xbox One

  • I joined the project late in production to work on remaining features, bugfixes, polish and console certification
  • Player death sequence (animation, UI, respawning); unfurling UI lore parchments with dynamic length to fit localized content; final boss dynamic camera; conditional cutscenes

Crayola Scoot

2018 | Climax | Unity | C# | PC, Nintendo Switch, PlayStation 4, Xbox One

  • I joined the project late in production to work on remaining features, bugfixes, polish and console certification
  • Bonus objectives (near miss etc); animation state machine conflicts; gameobject pooling optimisation; PlayStation trophy support for player 2/3/4 in splitscreen multiplayer

MediaTonic

MediaTonic

2018 | MediaTonic | Unity | C# | PC, Android, iOS

  • Bugfixing and extending a large codebase for a mobile UI-based game in a team of 40+
  • Pre-production for a 3D mobile action game. Created the core data-driven combat system: use sequential filters to select a group of targets then apply various effects
  • Joined the internal tools team. Created a Unity sprite atlas analyser to aid optimisation. Worked on a tool for exporting the different layers of a Photoshop PSD file as separate images so they could be animated independently in-game

Personal projects

These are projects I created in my own time. See my main itch page for a more detailed collection, these are some highlights.

Curious Fishing

Curious Fishing

2022 | Defold | Lua

  • I created this game in my spare time over a number of years. I did all of the code, design, art and admin, while a friend did the audio
  • An aquatic puzzle game with 9 creatures and 5 obstacles each embodying a unique puzzle mechanic, combined across 30 levels
  • Resolving complex simultaneous grid-based gameplay logic; pixel-perfect scaling at any resolution; unlimited undo; localized to 12 languages including CJK and Arabic
  • Winner of the 2017 Defold GDC Competition, allowing me to demo the game on a booth at GDC 2017 in San Francisco

SPACE VALET

SPACE VALET

2020 | Unity | C# | PC, Web

  • A solo game jam project created over the course of 1 month based on the theme 'moonshot'. I made a game about being a valet, but in space, which is much cooler and definitely worth it
  • Player character movement; entering and exiting vehicles; vehicle physics including going up and down ramps; NPC arrivals and departures

Positive Aspects

Positive Aspects

2018 | AutoHotKey | Windows

  • A tool for resizing any window to any aspect ratio or resolution
  • I created this tool while working on the pixel-perfect scaling in Curious Fishing to quickly visually verify how the game's rendering adapted to different aspect ratios and resolutions

RPGs Done Quick

RPGs Done Quick

2018 | PICO-8 | Lua | Web

  • A solo game jam project created in 48 hours based on the theme 'combine two incompatible genres'. I made a parody game about trying to speedrun an RPG, inspired by Games Done Quick
  • Branching looping dialogue; turn-based battles; 5 regions with a scrolling overworld map

Student projects

I attended Abertay University 2012-2016. I graduated with a first-class honours degree BSc (Hons) Computer Games Technology, with a UK GPA of A+ 4.5 / 4.5. Here are some of the more notable projects.

Honours project

2016 | C++ | Windows

  • Created algorithms for both generating and solving 3D nonogram (Picross) puzzles. Written in C++ and HLSL and making use of the Dear Imgui library
  • A mix of original research and implementing and adapting existing work from technical papers. I wrote a 75 page dissertation outlining the literature and explaining the various algorithms used or created
  • A raycasting approach to voxelizing polygonal meshes, optimized using a quad-tree; puzzle solver mimicking real player techniques; finding all possible solutions of a row constrained to match existing known state; comparison of brute-force, hierarchical and heuristic approaches
  • Won the YoYo Games Prize for Applied Technology

AMPS - A Musical Platforming Symphony

2015 | Sony PhyreEngine | C++ | Windows, PlayStation 4

  • A rhythm platformer made using Sony's PhyreEngine for PlayStation 4 and Windows, written in C++
  • The game was made by a multi-disciplinary team of 7 students over 8 months. I was the team lead and was involved in programming, production and design
  • One of my primary responsibilities was creating the data format for our levels, so that designers could use a map editor to create the level layouts and indicate how the different mechanics synchronised with the music
  • Demoed to the public for 4 days at Dare Indie Showcase 2015, with great audience reception

Particle FX Editor

2015 | SFML | C++ | Windows

  • I created this tool to allow us to create simple particle effects for AMPS
  • Configurable 2D particle emitter with GUI controls and live preview; support for textures; saves to simple easy-to-parse text format
  • I also created a PhyreEngine rendering implementation of these effects for AMPS. The particles are pre-allocated and pooled for efficiency

Awards and nominations

  • 2021 Game Dev Heroes Programming Award Shortlist. My colleagues nominated me for my work at Failbetter
  • 2020 Game Dev Heroes Programming Award Honourable Mention. My colleagues nominated me for my work at Failbetter
  • 2017 Defold GDC Competition Winner. Awarded for my game Curious Fishing, which I then got to demo as part of the Defold booth at GDC 2017 in San Francisco
  • 2016 YoYo Games Prize for Applied Technology. Awarded for technical excellence in my university honours project
  • 2013 Ede & Ravenscroft Prize. Awarded by my university for 'being deemed to be the best student overall in the School of Arts, Media and Computer Games'
  • 2013 David Potter Memorial Prize. Awarded by my university for 'being deemed to be the best student overall on the BSc (Hons) Computer Games Technology programme'
  • 2013 A D D McKay Senior Prize. Awarded by my university for 'achieving a high level of performance in mathematics'