Clean-room implementation of Half-Life 2 on the Quake 1 engine

1 day ago (code.idtech.space)

If you want to play Half-Life today I highly recommend Xash3D FWGS (yes its a super awkward name)

https://github.com/FWGS/xash3d-fwgs

Easy to use Mac build here: https://www.macsourceports.com/game/halflife

  • IMHO, if you want to play Half-Life today, go get Black Mesa, an absolutely fantastic fan-made remake with Valve's blessing:

    https://store.steampowered.com/app/362890/Black_Mesa/

    • IMHO, if you want to play Half-Life today, you can also just play the original, I've played it recently and still an amazing game, and several aspects I like it more than Half-life 2. Some might not like the graphics for being dated, but after a while you get used to it.

    • Black Mesa is an almost exact copy of Half Life at the start, and where that's true it's incredibly well done. Feels very much like a remaster.

      Unfortunately, by the end of the earth levels and certainly on Xen, the levels switch over to original designs. They become massive and sprawling, boring and confusing. They really should have stuck to doing a like for like reimplementation.

      I grew up on Half Life, so playing the first half of Black Mesa a few years ago was one of my favorite adult gaming experiences. But I gave up who knows how close to finish line after Xen was insufferable.

      3 replies →

  • This is engine for HL1 while OP talks about HL2.

    I'll add, if you have a VR headset, modded HL1 runs beautifully on it with full hand controller support for gun aiming and crowbar smashing. I've also heard lots of praises for HL2 VR mod bringing the game to new levels, I have yet to try it myself.

  • Or, can still be purchased on Steam for $0.99, during sales. Windows only though.

    • Eh, I don’t really think that this is an “or” situation. I think that this is an “and” situation. The last time that I set up Xash3D FWGS, I had to copy files from the version of Half-Life that I own on Steam into a different folder so that those files could be loaded by Xash 3D FWGS. I haven’t tried Xash 3D FWGS in a while, but it looks like you still have to do that [1]. Also, are you sure that the Steam version of Half-Life is Windows only?

      [1]: <https://github.com/FWGS/xash3d-fwgs/blob/f0342763547d9bcf486...>

      6 replies →

    • the windows version is playable on macos through wine. Even modern version, I got it running on a m2 mac mini on Macos 15 sequoia

      EDIT: this was for HL1 I’m not sure about HL2

Super interesting! I'm curious what the purpose is, though?

Edit to answer myself: Looks like this is more of an offshoot of the FreeHL projects by the same author, which rewrite GoldSrc game logic to QuakeC to get those games to run on open source engine stacks, where the utility is more obvious. I guess it was just fun to see how hard it'd be to get HL2 content running.

A bit similar to the OpenMW project working on Oblivion and Skyrim content loading on the side, though perhaps that's a more obvious future vector for that project.

  • [dead]

    • Someone did something interesting to them and shared it with the world. That you feel is a waste of time does not add to the conversation and more broadly acts as a chilling effect on others who might want to share their interests.

      When it comes to something like this, mom's advice is golden: "If you don't have anything nice to say, don't say anything."

      2 replies →

    • I'm also wonder why, but who cares, it's cool and fun. If someone wants to spend their time doing it, great. It's a lot more valuable than the time you spent writing that disparaging comment.

    • Tho I also disagree with you, I just want to point out the many HN guidelines[1] you are violating:

      > When disagreeing, please reply to the argument instead of calling names. "That is idiotic; 1 + 1 is 2, not 3" can be shortened to "1 + 1 is 2, not 3."

      > Don't be curmudgeonly. Thoughtful criticism is fine, but please don't be rigidly or generically negative.

      > Please don't fulminate. Please don't sneer, including at the rest of the community.

      > Please don't comment about the voting on comments. It never does any good, and it makes boring reading.

      I don't think downvoting your comment is super useful either but there are elements of how you are interacting that are not related to your argument that you could change to be less likely to be downvoted.

      [1] https://news.ycombinator.com/newsguidelines.html

What does clean room mean in this context? They built it from the assets with the game as a reference , but didn't look at the engine source code?

  • It means they didn't reference any existing or decompiled code from the original client. None of it is directly infringing on any copyright, though it may be doing so indirectly since there have been plenty of lawsuits for tools that contain no copyrighted information can but can used to facilitate infringement (e.g. a tool that decompiles a game ROM)

This is what I love about the open source community. Twenty years later and people are still finding ways to make classic games accessible without DRM or platform lock in. Clean room implementations like this preserve gaming history better than any publisher ever will.

>The game is not playable from start to finish. You can play deathmatch and other odd modes.

FTE barely qualifies as a pure Quake engine at this point though, it does tons of stuff.

  • It does a lot, yes, but also is very much a continuation of the original codebase - i've spent quite some time tinkering with internals of it.

    • Yeah, but Half Life 2's Source engine was itself a continuation of Goldsrc which was itself a continuation of the Quake 1 engine. The lineage is there but beyond a certain point it's not really Quake anymore.

      GZDoom/UZDoom is a similar grey area, it is built on the original Doom codebase but they've added so many features that it's practically its own distinct engine now. Those forks can even render arbitrary 3D models, which OG idTech couldn't do until Quake.

      7 replies →

SSL_ERROR_BAD_CERT_DOMAIN

Seems to be using a dnsft.cloud.zyxel.com certificate. Is this a home router?

  • https://community.zyxel.com/en/discussion/23595/why-i-get-bl...

    Seems like you or someone upstream of you uses a Zyxel brand device that has some kind of dns content filtering enabled. You should be able to get around this on a given machine by configuring an alternate dns provider (dns over https, cloudflare's 1.1.1.1, google's 8.8.8.8, quad9's 9.9.9.9, etc.) or doing something similar at your own router/dns resolver/dhcp server if it's not the thing doing this.

  • I certainly don't get that cert. I'm seeing a LetsEncrypt cert for idtech.space with various SANs.

      # host code.idtech.space
      code.idtech.space is an alias for idtech.space.
      idtech.space has address 192.99.32.215
      idtech.space has IPv6 address 2607:5300:60:47d7::

Interesing, there's more here including HL1 (a.k.a "valve")

Funnily enough the looks of this HL2 through this engine makes it flow more with HL1 than I could expect; an interesting reverse Half Life: Source / Black Mesa / demake of sorts.

  • Even simple Half-Life 1 mods built on textures and models from Half-Life 2 look much closer to 2 than one would expect. For example this mod, but not only:

    https://moddb.com/mods/half-life-dark-future

    You won't confuse it with modern Half-Life 2, but the original HL2 engine had far worse graphics than the latest version. Makes you realize how much of the difference between HL2 and HL1 is due to different textures and level design.

    • And Viktor Antonov (rip) art style.

      edit: there is also the fact that map compilers for gold source games have advanced far beyond what they could do back in 1999. The lightmaps and light sources alone can be far more intricate nowadays than what you would get from the official valve ones in 1999.

      9 replies →

    • Yeah Cry of Fear really pushed the GoldSource engine to its limits (I think it implemented a custom renderer but the models just push the base engine's limits with regards to maximum polygons and texture sizes).

De-makes are interesting because they continuously seem to show what may have been possible long ago in ancient engines if teams pushed them even further.

Then again maybe that level of detail even in idtech1 would have required more computing than was available for many years.

  • I do suspect this would not run well on a 75 Mhz Pentium 1. It would be very surprising if Quake 1 was actually the pinnacle of what as possible on the hardware of the time, though. id made exactly one game targeting that generation of hardware, and then their next game had meaningfully higher system requirements despite coming out only a year later. The hardware capabilities were changing so fast that there simply wasn't time to iterate on a specific target.

Would it work under vanilla quake 1? Ah, no. I can't check it out.

Good job keeping me away with Anubis, btw.