Pathos Opensourcing Project

Posted 4 months ago2024-03-05 16:00:33 UTC
I've been contemplating this for a while, and I've recently come to the decision that I will be open-sourcing the Pathos Engine. After the experience of needing to maintain and provide fixes for Trinity back in the day, I was put off by the idea of having to do the same all over again, while at the same time being busy with the process of creating a video game as a one-man team.

For those who do not know exactly what Pathos Engine is: Pathos is a Quake-like game engine heavily inspired by GoldSrc. It offers extended limits, better graphics and better performance, support for HD textures, vertex weights, normal mapping, specular highlights, dynamic lighting with shadows, and a lot more. This all without any copyrighted code attached to it. Unlike Xash, it does not rely on Half-Life code at all. Everything was reproduced with a clean-room approach while referencing the Half-Life SDK and ReHLDS, as well as the Source SDK.

This means that while the game is very similar to Half-Life and Quake, it is not the same engine. And as far as content is concerned, you are still not allowed legally to use Half-Life code and content in Pathos. Pathos is not compatible with GoldSrc mods, and attempting to run such content on Pathos will cause issues.

I have several videos on my YouTube channel which show Pathos's development progress, and new features:

I have already begun work on an open-source version of Pathos, one which is missing most if not all game specific code and content that would qualify as spoilers, or placeholder content I do not on, which I cannot just release. This version of the engine will offer the same expand-ability and functionality as the one my game uses.

However, I also believe that Pathos can offer the community a lot, in the form of a perfectly legal engine replacement for GoldSrc. People have become more and more frustrated with recent updates to GoldSrc, in which Valve still refuses to provide useful updates, such as upping the model limit and the AllocBlock limit, for example.

For now the current hurdles I am facing are the following:
  1. The need to ensure that no content remains which would act as spoilers for the game I am building on Pathos.
  2. Removing content that is not needed for the example game to run.
  3. Removing Half-Life 1 textures, sprites, sounds and models.
  4. Writing documentation for each entity in the game.
  5. Writing a comprehensive credits list.
Currently I have already accomplished tasks 1 and 2 mostly, but there's still work to be done. The remaining HL1 textures and models will be wiped clean from the code with proper replacements provided. This part is not that big of an issue, but it will take time to do so.

As far as entity documentation is concerned, this will take a bit of time to accomplish, same for the credits list.

So when will the release happen? I can't provide a deadline, as the amount of work left to be done is not small, and I need to make sure that legally, Pathos is covered and won't end up like Xash when it comes to Valve.

Speaking of which...
  • The level editor
Pathos's model format requires a custom level editor, and currently there are no alternatives, other than the custom Hammer I use, which was based on the 2003 leak code. There have been previous examples of people releasing custom Hammer binaries(Hammer++) and Valve not really caring, but one thing which would be great, is to add support to TrenchBroom, however this again depends on how much time I am willing to sacrifice for this purpose. In all likelyhood, I will be providing the custom Hammer binary without any sources as part of the release.
  • The model compiler
Pathos uses a custom model format for model geometry data, in order to support vertex weights and facial animations. However, I am still using the original HLSDK studiomdl code, albeit heavily edited. I would prefer not sharing the source code for this until I have my own clean-room version for Pathos available. So until then, I will only supply the binary with the release.

So, I hope this has gotten people excited. I will try to get things out the door as soon as I can, but I can't promise anything in terms of timelines. I hope to keep you updated as this project goes on.

Edit: Decided to edit my opinion regarding JACK out. Regardless of me thinking it's the most likely scenario, that's still just like, only my opinion, so I'd rather everyone treated it as such.


Commented 4 months ago2024-03-05 17:18:57 UTC Comment #106031
I'm def. looking forward to playing around with it when it gets released, doing some experiments and whatnot. Maybe I'd even port my real-time moss mod to it. My only hope is that Pathos will be licenced under something permissive like Apache-2.0, BSD3 or MIT.

Honestly the model format isn't a huge deal. If we get the headers for it, someone else can fork TrenchBroom and add support. An alternative is to add GLTF support to the engine, something I'd probably be willing to do, and TrenchBroom would then automatically be supported. J.A.C.K. isn't exactly a custom Hammer binary BTW, it's a Qt project likely built from the ground up.
Commented 4 months ago2024-03-05 17:51:01 UTC Comment #106032
How much progress did you do with the A Star pathfinding in the engine? Kinda curious.
Commented 4 months ago2024-03-06 07:21:00 UTC Comment #106038
The logic itself is mostly the same, but I did refine the graph generation code as much as possible.

I use the MIT license for Pathos. The headers for the model format are available, along with the actual render code. I personally am not thrilled at the idea of adding support for another model format, but who knows? Maybe future forks will do that.

You must log in to post a comment. You can login or register a new account.