[HN Gopher] Clean-room implementation of Half-Life 2 on the Quak...
___________________________________________________________________
Clean-room implementation of Half-Life 2 on the Quake 1 engine
Author : klaussilveira
Score : 302 points
Date : 2026-02-10 11:21 UTC (11 hours ago)
(HTM) web link (code.idtech.space)
(TXT) w3m dump (code.idtech.space)
| shellwizard wrote:
| Impressive, given how old Q1 engine is. It brings back memories
| of Paranoid Doom mod:
| https://www.doomworld.com/idgames/levels/doom2/Ports/p-r/par...
| user____name wrote:
| FTE barely qualifies as a pure Quake engine at this point though,
| it does tons of stuff.
| vkazanov wrote:
| 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.
| jsheard wrote:
| 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.
| vkazanov wrote:
| We'd have to come up with definition of quake :-) FTE has a
| lot bolted on it but the focus us in Quake, quake mods,
| lifting some limitations and making mod dev convenient.
|
| But it is the same overall code structure, the same game,
| etc.
|
| All these oss quake engines, are they quake? Ironwail,
| quakespasm vkQuake?
| amlib wrote:
| I think the litmus test is weather they are backwards
| compatible with old maps/campaigns from the original
| engine/game.
|
| Half-Life 2 sure won't play quake maps nor will it play
| hl1 maps.
| account42 wrote:
| > Half-Life 2 sure won't play quake maps nor will it play
| hl1 maps.
|
| Not without modifications but Half-Life: Source is
| essentially a tech demo to show that they can be ported
| easily (if you are OK with dropping some pesky features
| like randomized wall textures).
| amlib wrote:
| AFAIK hl1 maps needs to be open in hammer, tweaked a bit
| and then recompiled to function in hl2. You also better
| have those originals .rmfs rather than a .map or a even
| worse, a .bsp :)
| anthk wrote:
| Qames/quake from 9front =). It can run LibreQuake with
| Malice as a MODs, and that's it. Quake, Quakeworld and
| everything for vanilla, no modern changes like QuakeSpasm
| or worse, DarkPlaces. If someone backported HL2 to the
| original Quake with reduced physics and still run under a
| Pentium III fast enough, it would be something
| astonishing.
|
| I see impressive stuff with reimplementations such as
| Surreal Engine, but they will require far more powerful
| machines.
|
| If Surreal had a software renderer (not requiring AVX or
| similar) running under an SSE2 machine, that would yield
| even more respect, because if your reimplemented engine
| runs in legacy machines the portability would explode.
| Just have a look on Scummvm on how many platforms and
| OSes can it run. Or the Super Mario port for PC, where
| some fork supports even 3DFX under DOS, and GL 1.2. Thus
| runnable under TinyGL with no 3D accelerators and even
| under Plan9/9front with custom tweaks.
| hnlmorg wrote:
| There already is a term: Quake Source Port
|
| https://quake.fandom.com/wiki/Source_port
| CodeCompost wrote:
| SSL_ERROR_BAD_CERT_DOMAIN
|
| Seems to be using a dnsft.cloud.zyxel.com certificate. Is this a
| home router?
| linuxguy2 wrote:
| 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::
| notachatbot123 wrote:
| Maybe you are MITM`d?
| CodeCompost wrote:
| Ah. Looks like it is being blocked by my corporate software.
|
| Thx for the replies.
| opello wrote:
| 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.
| fp64 wrote:
| >The game is not playable from start to finish. You can play
| deathmatch and other odd modes.
| lloeki wrote:
| 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.
| homebrewer wrote:
| 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.
| amlib wrote:
| 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.
| ErroneousBosh wrote:
| The other thing though is that Original Quake Back In The
| Day ran on a Pentium 75 (needed the maths co-processor)
| with a dumb framebuffer. All the rasterising of polygons
| was pure software, as was all the geometry processing.
| Running GLQuake was a huge improvement but it required an
| expensive add-in card that piggybacked onto your VGA card,
| and a whole different binary.
|
| Now you can just kind of pile it into a block of RAM, aim a
| chunky ASIC at it, and pull the trigger every frame.
|
| In the late 90s a mate of mine did a phenomenal video of a
| Quake demo (you could record all player movements and
| camera positions as a "dem file") that he'd rendered out,
| raytraced in POVRay. I printed it to VHS for him as part of
| a showreel, and never thought to keep a copy myself.
| homebrewer wrote:
| I used to do a bit of mapping back then (nothing that
| survived to this day, thankfully); as I recall, practically
| nobody used official map compilers. As it often happens,
| the community wrote replacements that were much faster for
| debug "-O0" builds, and generated lightmaps of a
| significantly higher quality for the release "-O2" builds.
|
| It was either ZHLT or VLHT, or something like that; looks
| like more alternatives have been written since then.
|
| https://gamebanana.com/tools/5391
|
| https://github.com/seedee/SDHLT
| trashb wrote:
| The lighting is one of the main area's that really
| improved a lot.
|
| For standard Q1 mapping ericw tools [0] is great (the
| page has some nice previews).
|
| This project seems to use Nuclide for building which by
| default uses vmap compiler [1][2]. Which is really Q3 but
| I think FTE handles that well internally as the newer
| format has some more modern features.
|
| > Powerful BSP compiler. Use VMAP to bake levels like
| you're used to from similar engine technology, with high
| quality lightmaps, cubemap-based environment mapping and
| adjustable vertex colors on spline-based meshes.
|
| [0] https://ericwa.github.io/ericw-tools/
|
| [1] https://developer.vera-
| visions.com/d4/d50/radiant.html#autot...
|
| [2] https://github.com/VeraVisions/vmap
| keyringlight wrote:
| There was a similar path with Unreal3. The early games
| (2006) lighting looks quite harsh by modern standards,
| one of the highlights of Mirror's Edge (2008) was DICE
| using third party Illuminate's "beast" lighting, then
| Epic moved to "lightmass" around 2009 with the public UDK
| toolset.
| l-p wrote:
| While lighting is important, not using halflife.wad and
| going above the original budget of 500 polys per "scene" is
| what makes modern works look much better.
|
| Most of the original textures are under 128x96 px and some
| suffer from awful palletisation artefacts with purple and
| orange halos. We still cannot use more than 8 bpp but we
| can use 512x512 textures and do a better job at reducing to
| 256 colours. I use pngquant for that.
|
| In GoldSrc lightmaps cannot get more intricate though,
| they're tied to the texture scale so you cannot get a finer
| lightmap unless you also make larger textures and scale
| them down, and these two combined will wreck your
| "AllocBlock" budget in which all your textures and
| lightmaps must fit.
|
| ericw-tools and its dirtmapping are still welcome
| improvements over the "traditional" *HLT compilers.
| amlib wrote:
| > In GoldSrc lightmaps cannot get more intricate though,
| they're tied to the texture scale so you cannot get a
| finer lightmap unless you also make larger textures and
| scale them down, and these two combined will wreck your
| "AllocBlock" budget in which all your textures and
| lightmaps must fit.
|
| AFAIK some of the improvements include much better light
| bouncing techniques, transmission of surface colors like
| source does, more accurate lights, spotlights that
| emulate what source spotlights does and faster
| compilation (computers also got faster and MT support
| helps a lot). That alone allows level designers to be
| more ambitious by taking advantage of faster iteration
| and place even more lights.
|
| I do agree that there are likely dozens if not hundreds
| of reasons why maps can and usually do look way better
| today than what could be done in the past. Hell, even
| level designer proficiency with the tools as time goes is
| also surely a reason.
| giobox wrote:
| A shame to only now learn of Victor Antonov's passing. His
| work on HL2 and Dishonored remain some of my favorite
| examples of video game world building of all time. These
| places felt real and lived in, in a way few other video
| games have matched for me.
| hiprob wrote:
| Half-Life 2 looks incredible in Quake 1, what gives?
| Cthulhu_ wrote:
| Quake's engine is open source and for example nvidia used it in
| some more recent tech demos, although this one's for Quake 2:
| https://www.nvidia.com/en-us/geforce/news/quake-ii-rtx-v1-2-...
| koverstreet wrote:
| Quake 2 was when they added multi-colored lighting - it's
| really aged well.
| anthk wrote:
| Would it work under vanilla quake 1? Ah, no. I can't check it
| out.
|
| Good job keeping me away with Anubis, btw.
| pantalaimon wrote:
| Are you a LLM?
| anthk wrote:
| No, just a 9front user with a web browser, Netsurf. I
| shouldn't need JS to read an article you know.
| arifmeticus wrote:
| Not related to the engine, but it reminded me of a demake of
| Half-Life 2 in Quake https://www.youtube.com/watch?v=FhuXHGb_4vU
| sho_hn wrote:
| 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.
| roywiggins wrote:
| Speaking of:
|
| https://openmw.org/2024/from-bsp-to-esp-how-s3ctor-abused-qu...
| tsunamifury wrote:
| 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.
| plorkyeran wrote:
| 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.
| unixhero wrote:
| Is this the way we can have HL3 also?
| sdwr wrote:
| 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?
| brynnbee wrote:
| 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)
| alpb wrote:
| How about the assets?
| blell wrote:
| I assume you, the player, have to provide the assets
| yourself, and the game won't run without them. Since the
| code does not contain the assets, there is no copyright
| infringement.
| giancarlostoro wrote:
| As long as the assets dont contain code, they're kind of
| fair game. The rule of thumb is you cannot redistribute
| them, but if the person owns a legal copy you can point to
| them on their local system. It is not up to you to figure
| out if they're pointing to a pirated copy or a legitimate
| copy mind you.
| bni wrote:
| 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
| nomel wrote:
| Or, can still be purchased on Steam for $0.99, during sales.
| Windows only though.
| BlitzGeology91 wrote:
| 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/f0342763547d9b
| cf486...>
| nomel wrote:
| > Also, are you sure that the Steam version of Half-Life is
| Windows only?
|
| You're right! It looks like Linux has a native build too.
| Apparently the Windows version, through Proton, runs better
| though (not that it matters).
| SXX wrote:
| Its ported to Linux just like cs 1.6. Not sure how good Mac
| build is though.
| nomel wrote:
| Steam version: This product is not compatible with macOS
| 10.15 Catalina or above.
| squarefoot wrote:
| Interesting, I loved both HL1 and 2. Some games never die,
| brought to mind the Black Mesa remake of HL1 with the HL2 engine
| that gave it new life.
| https://www.youtube.com/watch?v=sKutLsub-80
___________________________________________________________________
(page generated 2026-02-10 23:00 UTC)