Project Borealis
A Half-Life 2 Episode 3 fan-game in Unreal Engine.
About
Project Borealis is a Half-Life 2 Episode 3 fan-game made in Unreal Engine. It is based on the Epistle 3 story released by former lead Half-Life writer Marc Laidlaw, and reimplements nearly all of Half-Life 2’s mechanics.
Background
Like for many other people, Half-Life was a type of gaming experience that I just couldn’t get anywhere else. The brilliant mix of level design, AI, physics, and narrative captured me and many others into Valve’s rich and mysterious world. But in 2017, it was dark times for Half-Life fans. Besides a few leaks in the pipes at Valve over the years, it was a long 10 years after the release of the last installment in the series: Half-Life 2: Episode 2. Many had lost hope, thinking that such hints at development were only a few scraps of long abandoned content. On August 25, 2017, without warning, Marc Laidlaw published what was soon to be understood as a possible script to the highly anticipated final chapter to the Half-Life saga. It was short, yet its poignant writing and bittersweet ending was more than we could ever hope for. Its somber tone seemed to reflect the atmosphere in the Half-Life community at the time. But rather than wallow in despair that this short outline would be the last Half-Life content we would get, the Half-Life community sprung into action, and set out to make their own Half-Life.
There were many projects and ideas thrown around, but none gained traction much like Project Borealis. Source was left far behind by modern game development, and Source 2 was nowhere to be seen, so I suggested using Unreal Engine 4 as a basis for our engine (after also throwing around the working title of Project Borealis). It had the same early FPS roots as Source, had C++ access for complete customization, and was built upon rock-solid foundations to make a great, modern experience. There were many concerns about engine and game parity, and being hopeful and energized, I was sure that we could deliver on our promise to give fans a true to form Half-Life experience. Those days were quite crowded, with hundreds of people voice chatting in the Discord, eager to get their say in, and everyone throwing around models, maps and assets they had made out of sheer excitement.
As the dust settled, an amazing team of highly experienced artists, programmers, animators, writers, designers and producers emerged. It would be a long time before we truly formed a rock solid studio, but this was a great start. I joined onto the programming team, and begun work on Half-Life 2 style movement. Others worked on AI, logic systems, and more, under the programming leadership at the time. Artists soon found their stride and direction too. We still didn’t know where to start though. A full script was still being developed, and we really hadn’t made a game before, much less in an entirely new engine with no gameplay systems to use.
I pitched in an idea: let’s start by recreating a classic HL2 level. We can make the units 1:1 and just have people play around in it, to make sure we made the right choice. I suggested Ravenholm, being an iconic map and fan-favorite, as well as to nod to the E3 demo of Half-Life 2. We all agreed that we’d take a few months to do this and spruce it up in the modern engine as well. It did not take a few months. 5 years later, and we still haven’t released Ravenholm.
There’s a lot that happened in those 5 years. I eventually became Programming Lead and then Technical Director of the project. And of course, we’ve course made good progress on the Episode 3 game and story, as well as to our core gameplay systems, asset framework, studio infrastructure and production pipeline. But shipping games is hard, and Ravenholm is our first product. Even when you have so many great people from prestigious game studios as well as art agencies and animation studios, getting everything right, especially to the level our fans expect, is a monumental task.
But our team is built for the task. Through these 5 years, I’ve seen a lot, but one thing that I have never seen change is the spirit and aptitude of our team. And yes, we’ve stumbled. Quite a lot actually. However, it’s never been something we haven’t been able to get together on and solve as a team. And we’ve built quite the impressive studio, entirely remotely, completely adhoc amongst essentially Internet strangers.
Experience
There’s an absolute mountain of knowledge that I’ve acquired through this project. Leading in a studio which strives to be as professional as possible has been hard at times, but it’s shaped me as a leader, as a programmer and as a person. Working on such a great title has also pushed me to new heights and had me meet amazing people that I’ve had the opportunity to learn a great deal from.
At an engineering level, there were a lot of challenges and solutions I was involved in, such as:
- Replicating and building upon Half-Life 2 movement systems in Unreal Engine
- Deep PhysX integration and modification to meet the physics standard and functionality of Half-Life 2
- Creating a foundation for our weapon and item systems with modularity, and full artist/designer control in mind
- Reimplementing the gravity gun
- Creating a next-generation level logic system that melds the modern facilities within UE4 like Sequencer and Blueprint with classic entity scripting
- Implementing various Half-Life 2 player and core game functionality
- Designing save system architecture on a level beyond even Half-Life 2
- Building new rendering solutions for the intersection between a deep level of interactivity and intricate artistic effects
- Optimizing Unreal Engine 4 with various tweaks and precomputed data to achieve performance characteristics that our audience expects
- Creating a Utility AI system and replicating Half-Life 2 creature behaviors within this new setup
- Analyzing and recreating the Source Engine visual feel through custom post process passes, texture manipulation options, and various tweaks to core Unreal Engine 4 rendering features
- Optimizing C++ build systems and iteration processes for maximum programmer productivity through things like include and template restructuring, PCH optimizations, live coding
- Creating a rich dynamic music system for music composers to easily use
- Providing new editor functionality to enhance artist and design productivity, including custom Slate UI and editor widgets
- and much, much more!