Half-Life 2 in a Browser
336 points
6 hours ago
| 29 comments
| hl2.slqnt.dev
| HN
modeless
5 hours ago
[-]
And Quake 3: https://thelongestyard.link/q3a-demo/

And Unreal Tournament: https://dos.zone/mp/?lobby=ut

There's also https://noclip.website/ which, while not playable, has hundreds of levels from dozens of older games that you can explore freely. Including Half-Life 2, with more accurate rendering than this web port (which seems to be missing many shaders including character eyes).

reply
HelloUsername
11 minutes ago
[-]
reply
todotask2
34 minutes ago
[-]
Doom 3, smoother on Macbook M1 but it's too dark that I need to actually increase brightness on Firefox reliably. Is there a better solutions?

https://wasm.continuation-labs.com/d3demo/

reply
calebj0seph
4 hours ago
[-]
Also The Simpsons Hit & Run! https://shar-wasm.cjoseph.workers.dev/
reply
sho_hn
5 hours ago
[-]
And Tomb Raider

https://eikehein.com/stuff/sabatu

Fan remake of the levels to avoid asset copy, but it's a downstream of the original engine (and loads the original level files just fine), so the real game.

reply
firasd
4 hours ago
[-]
Ha fun--works in my regular laptop in Chrome without any CPU/GPU etc spikes
reply
nadermx
4 hours ago
[-]
reply
plastic-enjoyer
5 hours ago
[-]
What a time to be alive
reply
rvnx
2 hours ago
[-]
What a time, but at what cost ?

Interestingly, these Wasm ports are all about nostalgia games.

I sort-of wish we would live in 1998 (when HL1 was released). Less social network, a more creative internet, LAN parties, IRC / ICQ, easier new connections.

We now have tailwind / material UI, a locked-down Apple ecosystem, Photoshop with millions of nagging screens, centralized mega-corps like OpenAI, and the first bits of World War 3 where drones and robotics are made to kill people.

Misses a lot this free internet (though 1 USD / minute)

reply
vovavili
1 hour ago
[-]
reply
peepee1982
1 hour ago
[-]
Your comment is jarringly out of place, which is why it's getting downvoted.
reply
foldr
3 hours ago
[-]
I vibe coded this for exploring levels in the original Deus Ex: https://dxwebview.pages.dev/ (https://github.com/addrummond/dxwebview).

It's a bit janky owing to the vibe coding, but the basic functionality works pretty well. You need the original game data files to use it.

reply
denkmoon
6 minutes ago
[-]
[delayed]
reply
mrtksn
4 hours ago
[-]
Interesting, I am not able to play HL2 on Steam because macOS no longer has 32-bit support and Valve never compiled if for 64-bit but here we are, it’s playable on the same OS in the browser.

BTW IIRC there was some method to convert the 32-bit game binaries to make them run on recent macs. I remember doing it.

reply
gonzalohm
1 hour ago
[-]
How is that possible? 32 bits should be compatible with a 64 bit machine. You can always use less bits for your memory addresses.

Are there any other architecture changes that are preventing 32 bits binaries from running? Does that also mean that old software no longer runs unless there is a 64 bit version?

In windows you can run x32 and x64 executables in a 64 bits machine

reply
lynguist
33 minutes ago
[-]
Monsieur, on Windows this problem was solved with a large development effort, that's why it goes unnoticed on you. Note that CPU level instruction emulation is literally the easiest problem of emulation. (Why do you think you can't just go and execute Nintendo Switch binaries on your Mac M1? Both run ARM64.)

On Windows, this was is implemented as SysWOW64. WOW64 means Windows on Windows 64. It makes the userland emulation and pretends towards the process that everything around him (incl. drivers) are the 32-bit ones.

Source: Microsoft.

https://devblogs.microsoft.com/oldnewthing/20081222-00/?p=19...

reply
MrDOS
45 minutes ago
[-]
Only the very first few models of Intel Macs had strictly 32-bit processors (the 2006 iMac and Mac minis with Core Solo/Core Duo processors), and none of them were realistically capable of playing Half-Life 2. Apple is guilty of many sins, but this isn't one of them. Valve should never have shipped a 32-bit application in the first place. The binary was already obsolete before it even left Bellevue.
reply
functionmouse
55 minutes ago
[-]
Apple goes way out of their way every few years to ensure old games stop working
reply
Klonoar
3 hours ago
[-]
I admit that Valve’s approach to Steam on macOS has never made sense to me.
reply
shakna
2 hours ago
[-]
I think Apple may have burned a lot of developer bridges with Metal, deprecating OpenGL, and ignoring Vulkan.
reply
charcircuit
1 hour ago
[-]
To be fair Microsoft ignored Vulkan with Windows leaving it up to 3P to implement.
reply
shakna
45 minutes ago
[-]
I don't think Valve funded Proton and Linux development by accident.
reply
xnickb
52 minutes ago
[-]
How is that "fair"?
reply
bjord
37 minutes ago
[-]
they're not saying it's fair to consumers, they're saying "it's not just apple, microsoft does it too", i.e. that judgement on apple should be made in the context of how its competitors behaved
reply
doublerabbit
3 hours ago
[-]
This was more Apple's doing rather than Valve's.

Valve wanted steam to co-exist on the mac in the early days and John Sculley of Apple didn't want Apple to be seen as a gaming device or a "personal home computer". So they ceased contact with Valve and the rest is history. https://www.youtube.com/watch?v=lPTLPXNtb2I

Apple refused to license joysticks so they could prevent customers from considering early mac's as game machines and deliberately refused to support games on the machine. Myst was only few that were exclusive to the Mac; that they then ported to PC.

reply
Wowfunhappy
2 hours ago
[-]
Your timeline doesn't make sense. Steam launched in 2003. Scully was forced out of Apple in 1993.
reply
hypercube33
1 hour ago
[-]
Most valve games are 32bit macos binaries I assume for powerpc or Intel or something but they flat out refuse to run on modern ox
reply
russelg
1 hour ago
[-]
If they were Intel 64bit binaries they'd still run due to Rosetta 2, however the majority of their games did not get a 64bit upgrade on macOS.
reply
doublerabbit
2 hours ago
[-]
So, your right. But the still holds true, that seed was what was sown not to encourage games for the Mac.

If you watch the YT video they go in to depth that they attempted to port the game and was axed by apple.

reply
doginasuit
1 hour ago
[-]
Apple is so obsessed with how their product is marketed and perceived that they all but eliminated gaming on the platform. It's hard to argue that it hasn't been effective, but I'll never understand why people accept that the people who make the computer should decide how you use it.
reply
dgb23
2 hours ago
[-]
Disheartening. macOS seems to get less and less support in a way. For example some of the Blizzard remakes don't run on macOS but the originals do.
reply
jillesvangurp
3 hours ago
[-]
On paper qemu should be able to do this. The hard part is hardware acceleration for the GPU. Without Apple putting effort into supporting this with e.g. documentation, that's a bit hard. That's also holding back linux support on Apple hardware. But it's a fixable problem that will only get easier as hw gets better and faster over time.
reply
ErroneousBosh
3 hours ago
[-]
> The hard part is hardware acceleration for the GPU

Is it, though?

How Hard Can It Possibly Be to just do a software GL renderer that emulates a mid-2000s Radeon, these days?

reply
account42
2 hours ago
[-]
At what resolution. You're not going to software render 4K120FPS even with 2000s graphics. But you also don't need a software implementation since translating to a host API isn't really any harder than that (and often much easier). And this already exists in Wine.
reply
memoryuns4f3fff
4 hours ago
[-]
Here is a link to the blog post since I didn’t see it mentioned

https://www.slqnt.dev/blog/hl2-in-web

reply
Cthulhu_
2 hours ago
[-]
Yeah probably better to link to this instead, else everyone clicking will start downloading the big files.
reply
utopiah
3 hours ago
[-]
That's also the kind of Website, beside the impressive technical result, that reminds me nothing can be blocked.

It's not about bypassing VPN or deep pack inspection, rather it's about how once anything, including a very complex video game (like here) to an entire OS with a host machine (like QEMU on WASM, or a random InternetArchive link about emulation) is "just" a Web page that can be hosted... on anything (including a 10 bucks Rasperry Pi Zero which can also be an AP, a phone obviously, heck even a e-cig!) then it doesn't matter what is "blocked" as it can be brought to anyone with no installation.

reply
account42
2 hours ago
[-]
Sounds like companies should start locking down browsers to disable WebGL, WASM and other similar APIs targeted at apps as opposed to web pages. I would welcome this if it got web developers to stop using more than they actually need.
reply
itomato
42 minutes ago
[-]
You’re thinking of Facebook, and you can still get that.
reply
AzzyHN
6 hours ago
[-]
This is cool, and also probably illegal, since you don't own any of this and don't have the right to redistribute it.
reply
crote
4 hours ago
[-]
Valve already gave Half-Life 2 away for free, and released the source code of the HL1 engine.

Is it technically illegal? Yeah, but Valve isn't losing out on any money, and there's no way they're going to risk the negative PR blowback they'd get for a takedown.

Besides, IP law is dead. The rise of AI made it pretty clear that you can steal literally anything without consequences.

reply
Cthulhu_
2 hours ago
[-]
Giving things away for free (at one point) is not the same as making it public domain or relinquishing your (copy)rights. Source available is not the same as open source. Open source code does not mean open source assets/product. I find it weird that this needs to be explained in this community.
reply
crote
2 hours ago
[-]
> Giving things away for free is not the same as making it public domain or relinquishing your (copy)rights.

Obviously. But it does kill the usual "piracy is bad because companies lose money" argument - especially for a 22-year-old game.

> Source available is not the same as open source.

Obviously. But it does show that Valve is more interested in preserving old genre-defying games for the general public, rather than milking every last cent of revenue out of it.

reply
nba456_
3 hours ago
[-]
>Besides, IP law is dead. The rise of AI made it pretty clear that you can steal literally anything without consequences.

God, AI keeps making life better than I could've ever imagined!

reply
zombot
2 hours ago
[-]
It only works like that for the Big Thieves. Us regular folks get screwed over just like before.
reply
dminik
4 hours ago
[-]
GoldSrc (HL1 engine) is very much not open source (or even source available). There's at least one open source remake (which is possibly illegal due to using the SDK) but no official release.
reply
crote
1 hour ago
[-]
https://github.com/ValveSoftware/halflife is the HL1 engine, is it not?
reply
bpye
1 hour ago
[-]
That's just the SDK - which does include the game code but not the engine. Xash3D is the reverse engineered engine alluded to above.
reply
flordaman
3 hours ago
[-]
No no, you can't steal anything without consequences, only big corperations who are making slop machines(tm) can.
reply
account42
2 hours ago
[-]
Turns out "too big to fail" doesn't just apply to reckless financial behavior.
reply
rvz
1 hour ago
[-]
> Yeah, but Valve isn't losing out on any money, and there's no way they're going to risk the negative PR blowback they'd get for a takedown.

So that makes it okay to pirate and steal games developed by your fellow indie game developers as well?

> Besides, IP law is dead. The rise of AI made it pretty clear that you can steal literally anything without consequences.

Try doing the same thing to Nintendo.

Even large companies like Anthropic were not going to risk going to trial and getting bankrupted of over $120B+ in damages in using pirated copyrighted eBooks for training. The best case was a settlement for $1.5B which that is a record settlement in copyright law.

reply
foldr
2 hours ago
[-]
reply
crote
1 hour ago
[-]
It was available for free as part of its 20th anniversary update: https://overclock3d.net/news/software/half-life-2-is-availab...
reply
foldr
1 hour ago
[-]
That was a special promotion with a defined end date. The game is not free. The only legitimate way to obtain it currently is to pay for it. Together with the false claim about HL1 being open source, you're really adding a lot of misinformation to this thread.
reply
account42
2 hours ago
[-]
This project seems perfectly congruent with current year industry standards regarding copyright, which are to move fast and lobby for permission later.
reply
londons_explore
5 hours ago
[-]
That is up for the copyright owner to enforce or not to enforce.

Until they decide, we can't know if it's illegal or not - who knows, this site might have a license.

reply
KeplerBoy
5 hours ago
[-]
It's not legal just because the copyright owner doesn't immediately sue you.
reply
simondotau
3 hours ago
[-]
If a copyright infringement falls in a forest and nobody is around to hear it, did it make a sound?
reply
account42
2 hours ago
[-]
Technically it isn't illegal until the copyright holder decides not to grant (retroactive) permission.
reply
Cthulhu_
2 hours ago
[-]
A crime is a crime even before a judge rules over it. Sure, innocent until proven guilty, but most people know when they're doing something wrong and then don't do it.

Of course, this is a lot more grey area for copyright violations etc because it's a civil matter.

reply
__alexs
2 hours ago
[-]
What happened to innocent until proven guilty?
reply
rvz
4 hours ago
[-]
It's quite dangerous to make unsubstantiated comments and assumptions on US copyright law without the proper research.

Valve still owns the copyright to the game and just because they won't do anything now does not mean it is legal to redistribute it without their consent, especially when we know that the game is still being sold. [0]

They (Valve) reserve the right to enforce that and this site clearly does not have such a "license" and haven't disclosed as such. Why would you expect Valve to be in discussions with a 15 year old to redistribute the game for free?

So just say you do not know.

[0] https://store.steampowered.com/app/220/HalfLife_2/

reply
Ukv
3 hours ago
[-]
> just because they won't do anything now does not mean it is legal to redistribute it without their consent

I don't think the parent comment is claiming it's legal, other than the (unlikely) chance that this is licensed, just that it's up to Valve to enforce and not really our concern. A lot of cool things (like the similar https://noclip.website/) are prima facie copyright infringement.

reply
nhinck2
3 hours ago
[-]
> we can't know if it's illegal or not

I think we can.

reply
Ukv
3 hours ago
[-]
We can guess this is unlicensed, and likely be right, but whether it gets taken down is up to Valve.
reply
xeyownt
3 hours ago
[-]
And I think we don't care.
reply
account42
2 hours ago
[-]
> Why would you expect Valve to be in discussions with a 15 year old to redistribute the game for free?

Because projects like this are free publicity and don't actually compete with the product sold on Steam.

reply
entropyneur
5 hours ago
[-]
Whew. Crashed before I sunk my day there.
reply
LandenLove
5 hours ago
[-]
As much as I dislike webdev stuff, I love the way you can distribute entire programs through WASM. Super cool stuff! For those who are interested, I recommend checking out Godot for exporting games on the web. It's really easy to do and you can host it on Itch.io
reply
roflcopter69
2 hours ago
[-]
Isn't Godot kinda flawed for deploying to the web? For example, no C# as of now, although there have been plenty of efforts to make it work. Or AFAIU audio being forced to stay in the main thread which can cause glitches. I just mean that it's not all fun and games as soon as you want to make a more ambitious game and not just a quick demo or game jam thingy.
reply
tapoxi
18 minutes ago
[-]
Godot 3.x supports C# on the web because it uses Mono.

Godot 4.x migrated to CoreCLR since Mono is a dead end, but Microsoft insists on .NET being the entrypoint in a WASM build. MS initially promised support for .NET being invoked by something else but dropped the feature, leaving Godot stranded. The current proposal is to make Godot a library (libgodot) invoked by .NET.

reply
LandenLove
1 hour ago
[-]
I found GDScript to be quite powerful in terms of functionality. I don't have experience in professional game Dev to be aware of the benefits of C# beyond it being the industry standard for Unity.

Single threaded audio is a big concern. I haven't implemented music in my game yet to know if it is a deal breaker.

The main problem that I have run into is shader compilation stutters on the compatibility render. Makes the game basically unplayable. My work around was to spawn certain objects on the main menu out of sight to force compilation. I believe the forward renderer has some pre-compilation.

reply
roflcopter69
1 hour ago
[-]
Of course it's a matter of perspective and I can totally get how one would be happy with GDScript. Tbh, it's hard to beat GDScript when it comes to making small games. It's quite evident that only GDScript has first-class integration into the Editor, C# comes second and all the other serious language bindings come third.

I might state the obvious here, but static typing, null-safety, being able to refactor and such things make C# much much better for bigger games. Slay the Spire 2 has been made with Godot + C# and people have already decompiled and peeked under the hood (for example here https://www.youtube.com/watch?v=SpB4-W9L4ec) and imo it shows quite well how certain patterns simply require a more powerful language than GDScript or would at least be very painful and fragile to make in GDScript.

Your workaround for shader stuttering sounds quite hilarious :D I don't mean it's bad. It seems pragmatic in a good sense. But yeah, it's those limitations that pile up when making Godot target the web...

reply
0x0
4 hours ago
[-]
I just wish Valve could add official macos-arm64 builds of the various hl2 games on Steam :-/
reply
ironhaven
6 hours ago
[-]
First half life one in browser now we have half life 2! I guess it’s that time again Mr Freeman
reply
naikrovek
29 minutes ago
[-]
How is it that this came to my Apple-Silicon Mac before Valve could do it natively? How could it possibly be easier to create a complete-enough virtual machine that runs in a browser and the compiler for it than it is to port the native application?

I wish we could spend as much time on native application development as we do on horribly crippled and slow browser application development.

Web technology is so non-sensical to me. "you can run an application without installing it!" Well, friend, installation is not required either, and we can deliver applications on demand, and we've done it before. "You just visit a page and you can program the macros on your keyboard!" Again, it's not like those applications are large; they could be delivered on demand if we wanted.

But we don't want that, do we? We want people to remain online under any circumstance, we desparately want their time, so we require that people be online if they want to program their microcontroller and they don't know how to do it without visiting the very convenient webpage.

If people spent 10% of the effort on native applications that they spent on web applications, we would be so much further advanced than we are now. If you're a developer, targeting the web is so seductive, so easy in comparison, that we all have to be online to do anything, now. We all have to run two dozen Electron apps because developers want to have an easy time at the expense of every user.

reply
Artoooooor
2 hours ago
[-]
What a time to be alive. My suggestion: progress bars instead of throbbers during loading data.
reply
antalis
4 hours ago
[-]
The screens are missing and the lips don't move, but it's pretty close!
reply
ramon156
3 hours ago
[-]
The blog post mentions that the animation system was disabled, because it caused a lot of issues
reply
fuzzy2
3 hours ago
[-]
Very cool. The download progress bar is broken though, it receives values 0-1 but the max is set to 300.
reply
pelagicAustral
4 hours ago
[-]
Ah! Just in time for HL3
reply
el_peaton
4 hours ago
[-]
Along with Team Fortress 3 and Portal 3 ofc. :)
reply
vladar107
4 hours ago
[-]
What's the biggest bottleneck you hit - GPU compute, memory bandwidth, or network latency for asset streaming? Curious how it compares to native WebGPU.
reply
schappim
4 hours ago
[-]
If they have halflife 2 in the browser, I wonder if this means they can do original CS in the browser too!
reply
panza
4 hours ago
[-]
reply
typon
5 hours ago
[-]
I remember saving up for a year to buy the ATI Radeon 9600 XT (I think it was $200 MSRP) so I could play the game on high settings. Now we can play it inside a virtual machine on a crappy laptop. What a journey
reply
noufalibrahim
3 hours ago
[-]
I was just going to say the same thing. I couldn't afford the rigs needed to run any of these games and never really played them. Now, it's running inside a browser on a laptop.
reply
itomato
39 minutes ago
[-]
…while inside Jira working on a ticket.

https://github.com/wjkennedy/jira-quake3

reply
comprev
5 hours ago
[-]
Same here - splashed out crazy money upgrading my PC to play HL2.

After that moment I switched to consoles.

reply
iso1631
4 hours ago
[-]
In a few years todays high end AI models will run on your watch

Of course that assumes we maintain open access to compute that we've enjoyed for the last half century, and I doubt that very much.

Stallman warned about the dangers of software being closed [0] 30 years ago, and the majority of modern IT industry just laugh a that sort of stuff because you can't make a billion dollar startup with that attitude, but I think the restrictions on owning the hardware at all will probably come first.

[0] https://www.gnu.org/philosophy/right-to-read.en.html

reply
alt227
24 minutes ago
[-]
> In a few years todays high end AI models will run on your watch

Although possible with cpu power, I dont think you will ever get enough ram in a watch to run a decent local LLM.

I also dont think the high ram requirements for running them will come down at all.

reply
bozdemir
5 hours ago
[-]
What a time to be alive :D
reply
GL26
4 hours ago
[-]
Is there a repo for this ? Can we mod it ?
reply
Beijinger
5 hours ago
[-]
play-cs.com
reply
othmanosx
3 hours ago
[-]
What about gaming on a mac?
reply
gambiting
5 hours ago
[-]
What I find incredibly impressive is that it just loaded in and seems to work fine on my phone. So cool.
reply
NovaCode37
3 hours ago
[-]
Looks pretty good
reply
acosmism
2 hours ago
[-]
i need a gary's mod
reply
diimdeep
4 hours ago
[-]
Cool, but then game hangs in city square.
reply
globular-toast
4 hours ago
[-]
I've played this from the start until around Ravenholm probably close to a hundred times. It's so familiar to me. There's some funky stuff going on for me, though. The characters' eyes are all wrong. G-man had no eyes at all. And the giant screen with Breen on it was missing.

Can't believe it runs as well as it does on my non-gaming laptop without even seeming to struggle. It's funny when you leave a hobby for a while. I haven't played games since the HL2 era so for me this is still state of the art.

I did say a couple of years ago that if HL3 ever came out, and it was good, that it would make me buy another gaming PC. But with current prices I don't even think that would make me do it.

reply
Hamuko
4 hours ago
[-]
Tried it on my M4 iPad Pro and was surprised that it works - to a degree. NPCs (Gman and the citizens on the train) seem to be missing eyes and have no mouth animations. FPS was pretty poor too, and it was ass to use the camera on the trackpad.
reply
rvz
6 hours ago
[-]
While technically impressive, this is also illegal. (unless you have redistribution permission from the authors.)
reply
albertgoeswoof
5 hours ago
[-]
Yup. I was going to finally buy half life 2 today but now I’ve seen this I guess I won’t need to.

Hard times at Valve, I suppose they’ll have to find more children to start gambling with them.

reply
m00dy
5 hours ago
[-]
looks like you forgot to add /s tag to your comment :swh
reply
fragmede
4 hours ago
[-]
But what about the people who aren't idiots and can read sarcasm without the /s? I reflexively downvote ever comment I come across with a /s. People aren't idiots until you treat them like one.
reply
alt227
2 hours ago
[-]
But what about people who are in different parts of the world and don't inherently understand your meaning? That is terrible behaviour to downvote the notation.

Text is notorious for not conveying context. Sarcasm can easily be seen as serious by some people, why is why we have the /s notation to make it obvious.

People aren't idiots, they come from different backgrounds, locations, languages, and all use English as a common tongue. Have some consideration and stop thinking you are so big and clever.

reply
account42
2 hours ago
[-]
The best sarcasm is exactly the one where it could be interpreted as written and people misreading it is part of the fun. If you are going to add sarcasm marks to make sure that absolutely everyone gets what you are intending then whats the point of using sarcasm in the first place instead of clearly writing what you mean?
reply
linzhangrun
5 hours ago
[-]
lmao :)
reply
tmountain
5 hours ago
[-]
Someone has to look out for the big guys! /s
reply
haunter
5 hours ago
[-]
> this is also illegal

So is unregulated gambling but Valve doesn't care either lol

reply
charcircuit
4 hours ago
[-]
2 wrongs don't make a right.
reply
haunter
4 hours ago
[-]
Ah yeah the famously equal acts of pirating a game VS promoting illegal unregulated gambling for millions of people (and that's just the tip of the iceberg).

That's why corporations can get away with everything.

reply
account42
2 hours ago
[-]
And something being illegal doesn't make it wrong.
reply
charcircuit
1 hour ago
[-]
The converse applies to. Just because piracy is illegal, that doesn't make it right.
reply
gempir
2 hours ago
[-]
It's only legal if you are a billion dollar AI company
reply
sudo_cowsay
6 hours ago
[-]
Is that why I can't access the site?
reply
AzzyHN
5 hours ago
[-]
It works on chromium-based browsers at least
reply
koolala
4 hours ago
[-]
legality != morality
reply
foresto
5 hours ago
[-]
In which jurisdiction?
reply
hmry
5 hours ago
[-]
Every signatory of the Berne convention or member of the TRIPS agreement, and most others too.
reply