Alex Silcott | Game Engineer
Lord of the Rings: Return to Moria
Role: Senior Software Engineer - Core tech team
Tech: Blueprints, C++, Unreal Engine 4, Perforce
Platforms: PC, PlayStation 5, Xbox Series X/S
Description: Set during the peactime of the Fourth Age beneath the mountains of Moria in Middle-Earth, in Return to Moria the Dwarves have returned to reclaim what was once theirs. Play with up to 8 of your friends exploring and mining the depths of the mountain, crafting bases, weapons, and armor while defeating the many foes that have been thriving there for many long years.
Contribution: Worked as part of the core technology team as a co-developer with Free Range Games. Spun up quickly on large, complex systems to bring stability to a game that would be shipping in the near future.
- Optimization efforts including improvements to procedural generation load time hitches and an engine-level change to optimize shadow capsule update frequency.
- Fixed issues with the save system including save synchronization issues between the server and the client.
- Fixed issues with replication and player sessions, including issues where players were getting removed from sessions from mismatched IDs.
- Rapidly implemented new systems as needed in order to have the game in a finished state for release, such as the solution for an issue where players could get into an area before it's loaded and then get stuck there, and the subtitle system for cutscenes.
Example of one of the effects/changes in blocking geometry I replicated from server to client.
Five Nights at Freddy's: Security Breach
Role: Software Engineer - Gameplay
Tech: Blueprints, C++, Unreal Engine 4, Perforce
Platforms: PC, PlayStation 4/5
Description: Trapped in the massive Freddy Fazbear's Mega Pizzaplex overnight, Gregory finds himself running and hiding from the animatronics that have come to life and are hunting him. But he's not alone. One of the animatronics--Freddy Fazbear himself--has also come to life and wants to help Gregory survive the night. Can you unravel the secrets of the Pizzaplex and make it until morning?
Contribution: Implementation of core systems and stability of the game. Provided much of the added stability of the title post-launch.
- Implementation of AI behavior trees for animatronics, especially in the "boss fight" sequences
- Fixed core issues with the save system especially in relation to the arcade game data in relation to the endgame impact
- Created inventory UI
- Improvements to character interactions with objects in the world
- Improvements and optimizations to level streaming
- Implementation and improvements to various mini games. In particular I implemented the parts and service, prize counter, much of the backstage, and other mini games
- Led optimization efforts, including reducing the large memory footprint by refactoring large parts of the codebase.
- Responsible for a significant portion of improvements made to the title post-launch
Video of the Backstage Office mini game.
Five Nights at Freddy's: Security Breach Ruin DLC
Role: Software Engineer - Gameplay
Tech: Blueprints, C++, Unreal Engine 4, Perforce
Platforms: PC, PlayStation 4/5
Description: In the aftermath of FNAF: Security Breach, Cassie, Gregory's best friend, receives a call on her Roxy-Talky and learns that he is in danger. Cassie braves her way through the ruins of the Mega Pizzaplex to save her friend. This time, there's no helpful Freddy, but it seems there's a whole other world to explore. Will you be able to save your friend? Yourself?
Contribution: I contributed to the implementation of core systems and stability of this DLC.
- Implementation of AI behavior trees for the animatronics and the glitch rabbit
- Implementation of Inventory
- Character interactions with in-world objects such as the cameras and security nodes
- Stability of the two-world swapping mechanic
- Tools for artists that supported building the two worlds
- Responsible for implementing the security node system mechanic which the entire DLC is based around and tools associated with creating the puzzles and configurations for the system.
Video showing the hacking/node activiation mechanic and the world-swapping mechanic, along with AI behaviors. I worked with a technical artist to get the flashlight to "reveal" the hacking node lines and objects.
Hello Neighbor: Search and Rescue VR
Role: Software Engineer - Gameplay
Tech: Blueprints, C++, Unreal Engine 4, Perforce
Platforms: PC, PlayStation 4/5, Oculus Quest 2/3, HTC Vive
Description: Something is going on in that house. A kid in the neighborhood has been missing, and the Rescue Squad is determined to find him. Infiltrate the Neighbor's wacky house and uncover the truth as each member of the group with each of their own unique abilities in this puzzle-filled VR adventure. Climb, smash, shoot, and solve your way to the truth, or disappear yourself.
Contribution: I was responsible for a lot of bug fixing and stability of this game. I contributed significantly to implementing the save system and getting that stable as it was not implemented until well into the development of the project. Other things I contributed to:
- Implementation of new level streaming needs when significant changes needed to be made to the "Dream Door" sequences of the game.
- Improvements to general VR-specific systems like the teleportation mechanic.
- Implementing solutions to handle physics problems coming from the VR player controller.
- Optimization efforts to ensure running at the required 72 FPS on the standalone Quest 2 platform. This is one of the only games on the market that actually uses Meta's SpaceWarp technology.
- Responsible for resolving several release candidate requirements for the game to ship on multiple platforms on tight deadlines, especially VR-specific ones where consoles caused unexpected rendering artifacts such as the "hall of mirrors" effect on PlayStation VR.
Video showing the family photograph mini game I worked on. Additionally, all items in the game needed to be saved in order to progress, for example the crowbar, the picture, and collected items to solve the puzzle.
Unannounced Story-Based Puzzle Game
Role: Lead Game Engineer
Tech: Blueprints, C++, Unreal Engine 5, Git
Platforms: PC, PlayStation 4/5 (Targeted)
Description: This title is unannounced, so I can't get into the details of the story. But it is a whimsical, fun, story-driven puzzle adventure in which the player explores and uncovers mysteries and maybe even learns something about themselves along the way.
Contribution: Currently leading engineering efforts on this unannounced Unreal Engine 5 game. Creating a library of gameplay systems and tools to support development especially as the team embraces a C++-first approach to Unreal development.
I have created many of the core systems the game is using, including:
- Inventory
- Map
- Interaction
- Activation
- And Puzzle Mechanic Systems
I am actively mentoring junior and mid-level engineers to help them build with and expand upon the groundwork that I have laid. Part of this effort is establishing best practices when using C++ with Unreal Engine. We are working closely in an Agile-style development cycle with the clients and adapting to the needs of their dream project. I am excited to be part of the team that can bring that to life.
Unannounced Casual Arcade Game
Role: Lead Game Engineer
Tech: C/C++, SDL, C#, Unity, Subversion, Custom Hardware
Platforms: Custom Arcade Cabinet, Linux ARM
Description: A casual, fun matching arcade game that dispenses tickets based on the number of points the player has received. This game is mostly complete but is going through the finalization stages before being released to arcades across the globe.
Contribution: This game was developed by a small team of just two engineers and one artist. We collaborated with an outside company which was responsible for building the cabinet itself and one individual who created the board that runs it. My responsibilities involved creating the main game loop and implementing the communication layer between the game and the custom hardware. This involved reverse-engineering the game logic that was running on the board originally for another arcade game and adapting it to our needs. I was also tasked with figuring out how to emulate a Unity game on the ARM architecture.
During this process, I also created a standalone tool using SDL, DearImGui, and OpenGL to present the IP holder with an easy way to customize the lighting configuration for the arcade cabinet. This tool exported the configuration to a JSON file with which we could then use to change the lighting configuration written to the game image that gets put on the cabinet. This tool could also connect to an instance of the game running on either the board or a Windows or Linux PC over a network and update the lights in the tool in real time as the game was played. This enabled the visualization without a requirement to see it on a physical cabinet.
Game Engine Project
Role: Solo Developer
Tech: C++, Python, Premake, Entt, OpenGL, Git,
Description: Game engine development for fun and learning new things
Contribution: This is my personal project, so all development is done by me. Maybe I will make a game with it someday, but my real goal with it is to simply learn more about aspects of game engine development by building one. I find that doing this sort of thing gives me an appreciation for the tools that I use every day and sometimes take for granted. In this modern world we live in, there are countless options of game engines that you can pick up and start using immediately that already come with all the bells and whistles to allow you to make a game provided that you know how to use the engine itself. I believe it's worth it to take the time to learn how things work under the hood.
The engine currently has a basic OpenGL renderer written from scratch, uses a "layer" approach to the engine and has a simple entry point for applications to hook into so it works as a proper game engine configuration, where the engine itself controls the entry point. It uses SDL3 as the windowing library and to handle inputs and for any GUI elements within the engine itself, it uses DearImGui. I also spent a lot of time playing around with mesh formats and one of my favorite aspects of this is the simple GLTF importer I wrote with my custom mesh format. I am using a python library to read GLTF files and generate my custom format. I could use a library like Assimp but managing it myself has taught me a lot. To create the entities in the world, I am using the Entt library as I explore the world of Entity Component Systems (ECS) and I plan to write my own one day.
Now that I have done so much work with writing the simple renderer and seeing how that works at a very low level, I am starting to switch to another renderer like Diligent Engine to focus on other aspects of engine development while not having to worry about the renderer as much.
Godot Immersive Sim
Role: Developing off and on with a friend
Tech: GDScript, C#, Git, Godot
Platforms: PC (Targeted)
Description: Single Player experience that might exist someday! It really helps me scratch that itch when I want to make something. I'm going for "If System Shock was made for the Nintendo 64 by the guy that made Cruelty Squad."
Contribution: It is no secret that I absolutely love the Immersive Sim genre and so naturally I have always wanted to make an Immersive Sim game. At the same time, I had an interest in trying out Godot after my friend tried to sell me on it. Turns out that I actually really like Godot and I feel like it doesn't have enough immersive sims made with it.
While I have a story partially written and several ideas floating around about direction, the game is currently several systems working together in a few test levels with some basic NPCs that may or may not try to do you harm. I have created a system to create effects and apply them to any node in the game that can receive effects using a simple node type and that seems to work really well. I can set a burnable block on fire and throw it at a guy and he bursts into flames. It's pretty cool. Inspired by games like Deus Ex and System Shock, we have implemented a spatial inventory system that takes weapon and ammo types into account and sorts them all automatically when it gets added to the inventory. I have also created a climbing/ladder system that feels really good and fits right in with this genre and style I'm going for.
This is very much the process for working on this game. I get an idea for a mechanic I want, and then I spend a weekend making it happen. Maybe someday you'll get to play it.