Flinn Fraher - Portfolio

Flinn Fraher

Game Programmer & Designer


About

Hello! I'm Flinn Fraher, a games programmer.
I'm a first-class Graduate from Staffordshire University's Games Design and Programming course, and a 2022 TIGA Graduate of the Year in Games Technology
On this site you can see the projects I've contributed to, my industry portfolio, and projects I worked on during university.


Portfolio


Placeholder image
Unreal Engine 4 Blueprints/Visual Scripting C++

Case Closed

Case Closed is a vertical slice of a point-and-click puzzle game. It was made to demonstrate the point-and-click framework I created inside Unreal Engine.

Features:
  • Editor utilities for room boundary creation using procedural meshes
  • Advanced camera manager - transition between area cameras dynamically adjusted to level geometry
  • Serialized gameplay objective system
  • Behaviour tree-driven dialogue system, with editor tools
What I Learned:

Working on this project gave me a much greater appreciation of the role of a technical designer within a team. Making my own tools to use within the engine, I found myself taking much greater care when designing core systems for the game. Having these editor utilities made development of the vertical slice much easier, allowing me to fit much more content in the final game than I'd originally planned to without additional time.

Developing this project on my own, I had to create some of the environmental assets used myself where an appropiate asset pack couldn't be sourced. This greatly increased my knowledge of the 3D modelling and animation pipelines involved when working with Unreal Engine, and was a beneficial experience as a technical designer.

Links:
Trailer
Technical Design Document (WIP)
Placeholder image
Unreal Engine 4 Blueprints/Visual Scripting

Sovereign

Sovereign is a top-down roguelike ARPG developed by myself, and a team of students during my second year at Staffordshire University. The gameplay takes inspiration from Diablo, and features three full class systems with unique abilities for each.

Features:
  • Three class types, each with a unique skill tree and abilities
  • Persistent, and per-character inventory systems
  • Experience/Levelling system linked to the character skill tree
What I Learned:

Development of this project took place during my junior collaborative games development & testing module, with a team of 17 people from different disciplines. As this was the largest team I've ever worked with, I found myself inially worried that communication and task management would be an issue. However, thanks to quick task allocation on JIRA during daily meetings with each disciplines seniors, and a constant flow of communication via a teams group, progress on the project was much quicker than I initially anticipated.

I found myself quickly becoming familiar with how to use JIRA effectively, breaking down allocated tasks into sub-tasks to complete throughout the day and posting demonstrative videos alongside completed issues. Having a senior to ask for help or the best way to approach a problem was also something new to me - I found it incredibly helpful to have someone knowledgeable to discuss ideas with before implementing them, as we'd often realise a better approach to problems when reflecting on them as a team.

My Contributions
  • Inventory/Item system
  • Skill tree framework
  • Dialogue System
  • Player HUD & other UI logic
Links:
Itch Page
Trailer
Placeholder image
SDL C++

SDL Mario Maker

2D Mario clone with a serialized map editor. Created for my first year Games Engine Creation module at University, using C++ and the Simple Direct Media Library (SDL)

Features:
  • AABB Collision between gameplay objects
  • Custom UI layer with text renderer
  • Two enemy types
  • Level creation suite with serialized maps
What I Learned:

The development of this game was my first experience working with C++ combined with a separate library. Utilising SDL and creating the framework for this game gave me a much greater understanding of game engine architecture, and the concepts involved when working with a graphics library. I spent a lot of my time during development reading the documentation of SDL, and had a much better overall understanding of C++ and general programming concepts by the end of the development cycle which really helped me when I began learning C++ for Unreal Engine.

An aspect of games engines that this project didn't cover is 3D rendering and further rasterisation concepts, which is something I'd love to look into. I'd like to make a project in the future which utilises SDL, and OpenGL, Vulkan, or another graphics API and take my low-level understanding of engines further when I get the time.

Links:
Level Editor Technical Breakdown (PDF)
Placeholder image
Unreal Engine 4 Blueprints/Visual Scripting

Short Stories

Short stories was an entry to the Summer Slow Jam 2021 from myself and two of my friends. Taking place in a series of differently genred books, each level was designed by one of our team in an attempt to make as much varied gameplay as possible in the week we had to develop the game.

Features:
  • Multiple varied levels, taking place in differently themed environments
  • IK-driven interaction system
  • Modular puzzle framework, with visual feedback from niagara systems
What I Learned:

Development of this project took place during a week of the Summer Slow Jam in 2021, and was my second ever experience taking part in a games jam. Being responsible for creating some of the game's core mechanics, I used rapid prototyping techniques to ensure that team members were able to have working mechanics to test and iterate on as soon as possible in the given week.

Links:
Trailer
Gameplay Walkthrough
Placeholder image
Unreal Engine 4 Blueprints/Visual Scripting C++

Animatronics: Robot Creator

Animatronics is a WIP character editor which utilises Unreal's control rig and procedurally animated parts, to allow a user to create and control their own robot and solve puzzles.

Features:
  • Entirely procedurally animated
  • Intuitive custom-made runtime editor for robot creation
  • Interaction system between robot limbs and gameplay objects
  • Puzzle mechanics requiring careful robot assembly to solve
Placeholder image
Unity C#

The Bigger Picture

The Bigger Picture is a 2D puzzle-platformer taking place in a 3D environment. Tasked with moving a 2D player around rooms projected onto various surfaces in a 3D environment, they must access the office's server computer, and free themselves from the confines of the building's walls.

Features:
  • Event-driven camera management system, using spline paths to move around
  • Room connection system, with design tools to make room connection easier
  • Diagetic UI elements, with easy editability via editor exposed parameters
What I Learned:

The Bigger Picture was developed throughout my second year of university, and was my first experience developing a larger game idea inside the Unity game engine. I quickly found that while there are some significant differences when compared to Unreal, creating a solid foundation for a projects content to work from is key. I developed the camera management system first, as utilising both a 3D and 2D camera inside the same scene was the most difficult challenge of the game programatically.

With the game taking place in two perspectives that had entirely different design challenges, this project tested my ability to create enjoyable levels while also creating tools to assist me in the process, an example of which was my use of a bezier curve solution to drive the 3D camera's movement in the game world. Initially, the camera would interpolate to the next 'rooms' position in 3D space in a straight line. However, this limited the layout of 3D space around the play areas, so I decided to use splines in order to specify the exact path a camera would follow when the player entered and exited an area.

Were I to remake this project, I'd definitely utilise a separate scene for the 3D and 2D world. Towards the end of the project, I realised this would've been a much better choice to avoid problems having both in the same level was causing, however I wasn't aware this was possible inside Unity when I began. Realising this near the end of development was definitely an important lesson to me in planning and research, and projects I've worked on since have always included a preliminary R&D phase as a result.

Links:
Elevator Pitch Video
Design Document
Technical Breakdown Video
Gameplay Video
Placeholder image
Unreal Engine 4 Blueprints/Visual Scripting

The Last Templar

This metroidvania-RPG features a full equipment and inventory system, three unique boss fights, alongside various traps and interactables to provide a suitable challenge and enough mechanical variety to create emergent gameplay.

Features:
  • Character equipment screen & inventory system
  • Levelling manager, with ability selection choices upon levelling up
  • Three unique boss fights
Placeholder image
Unreal Engine 4

Unreal Tournament CTF Map

During my first year of University, the creation of this capture the flag map for Unreal Tournament served as my introduction to the Unreal Engine 4 editor.

Features:
  • UT Weapon/Health Spawns
  • Supports multiple UT gamemodes (CTF, TDM, Deathmatch)
  • UT Bot support
What I Learned:

As well as being my introduction to Unreal Engine, this project served as an introduction to the importance of testing during development. When making major changes to the map's structure, I used allocated testing sessions with peers to play the map and a quantitative survey to get feedback on key elements of gameplay - using this data, I could evaluate changes I'd made between testing sessions and inform future development based on it.

With such a large suite of assets being available from the Unreal Tournament SDK, this project helped me understand the importance of project management. I spent a lot of time learning the best ways to navigate the engine with content browser filters, as well as understanding how to manage assets that require modification to work in desired ways - adjusting a mesh's pivot inside a modelling suite, or modifying blueprint-based parameters of actors to meet my design needs.

Links:
Cinematic Trailer