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).
Namely Firefox is missing support for the `FileSystemFileHandle` locking mode which prevents multiple tabs from running (cannot share file handles), and they have a negative standards position on implementing some other parts of the File System Access API like `showDirectoryPicker()`.
Mozilla hates the FS api, it's existed for years but seemingly isn't going to happen in Firefox.
Oh you mean it is or isn't approved.
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.
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.
I wonder how they did this.
Are you sure? As far as I know, OpenRA is a reimplementation of the first Red Alert game, and also it's not playable in the webbrowser (which is what this post is about)
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)
The world war 3 bits suck, i'll admit, but most of the "early internet" stuff that people are nostalgic about still exists, you just have to look for it.
Any tips for finding these things like communities? Seems like most communities are private now unless you know people in meat space. Living in a rural area, those opportunities are far and few between for me.
BTW IIRC there was some method to convert the 32-bit game binaries to make them run on recent macs. I remember doing it.
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
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...
It's literally a 2004 game! That's ridiculous. A handful of opterons existed in the market, but Intel wouldn't get there for years still and it was well over a decade until x86_64 crossed 50% market share in consumer stuff.
Good grief, as it were.
Needless to say, annoying a bunch of HN nerds a quarter century in the future wasn't on Valve's radar. They just wanted some Mac revenue and picked the low hanging fruit.
What? First, those chips were plenty powerful to run HL2 (the game predates them). And second, all x86_64 chips can run older x86 32-bit code unmodified.
The reason macOS stopped supporting 32-bit code has nothing to do with the processors but more about them wanting to remove support for 32-bit binaries from the kernel and from all user-space libraries. To run a 32-bit binary, you need itself and all libraries it depends on to be 32-bit too, including the syscall boundary, which is "fine" (both Windows and Linux do this just fine, so it's really on Apple to have removed this). And I suppose Apple removed those because it was building towards a 64-bit-only world to simplify the Apple Silicon transition.
E.x. notebookcheck indicates that FEAR (released a yearish later) could get 20-30ish FPS at 640x480 but chokes at 1024x768 (at numbers matching the HL2 lost coast demo slideshow at 1024x768).
Gotta remember a lot of mac people were just happy to play something more modern than Marathon or Giants CK
I got my gaming start on one such machine - the Mobility Radeon was fine for HL2/Portal at 1024x768. Good memories.
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.
If you watch the YT video they go in to depth that they attempted to port the game and was axed by apple.
The main issue IMO is the Apple hardware itself isn't focused on raw performance, it's on energy efficiency and mobility. You'd need a MacBook Pro or Mac Studio at least to have the GPU cores & RAM to play the most recent PC games. And so they just tend to lead with casual games, live service games, and second run AAA games. Technically Apple maintains the world's largest gaming platform (by users & revenue) in iOS.
And plenty of AAA games have been ported to macOS like Cyberpunk 2077, the last few Assassin Creeds (Shadows, Mirage), or even iOS/iPadOS/visionOS like Control & Death Stranding, the recent Assassin's Creeds, Resident Evil 2 & 4 Remakes, RE 7 & 8, Civ 6 & Civ 7, etc.
Is it, though?
How Hard Can It Possibly Be to just do a software GL renderer that emulates a mid-2000s Radeon, these days?
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.
It shares the neat feature of the HL2 project in that it doesn't need any installation, and it downloads zone files (which aren't huge) as needed. It can also run around and kill/loot things automatically for you!
- Support from major engines is still bad: Unreal Engine does not have web exports. Godot 4 does not support them when using C#. That only leaves Unity.
- While WebGL is mature, it's based on openGL es3, which is an ancient api/shading language with limited features. If you were previously targeting vulkan/dx12, now you have to restrict your feature set or find (costly) workarounds to make webgl support happen
- WebGPU could be a better fit, but support is still not ubiquitous (Firefox, Linux or older phones are especially bad)
- SDL_GPU (SDL3) still has no WebGPU backend
We spent the last several years building out a WebGPU RHI for UE5, along with tooling to make games load fast using asset streaming, while using less memory. We were recently featured by Gamesbeat.
You can read more about it below or check out our website:
https://gamesbeat.com/simplystream-unlocks-web-compatibility...
Pretty dishonest to imply that C# is commonly used in Godot. The vast majority of games are Gdscript which exports to browsers perfectly
They don't have to unless the game makes them. Assets can be streamed in. This Half Life 2 port streams in each chapter so you are playing without having the entire game downloaded. World of Warcraft is over 100GB but you can start playing with only a fraction complete and it will continue downloading as you play
This website is also a proof of concept, it doesn't care if people are actually able to play it consistently. It can afford to just say "anyone with less than 100mbps internet gets a shitty experience, lol don't care" and nobody will complain, because it's a free tech demo. Not an actual product trying to sell copies and make money. And certainly not anything remotely modern, we are talking about an over 20 year old game here. Technology did, in fact, get a little bit faster and more capable over those last 20 years, you know
Its really common to sacrifice disk space for runtime perf
For gamers 100GB is not a big deal, CoD is like 200GB and its extremely popular
Plus not all games are AAA.
You're also ignoring the overhead of WASM -> WebGPU -> native graphics API, not to mention how much harder it is to develop and debug that platform than it is a native one.
> You're also ignoring the overhead of WASM -> WebGPU -> native graphics API
Wine -> DXVK -> native graphics API works great for many people. I can't imagine it having significantly worse performance characteristics, especially when WebGPU is closer to the native graphics API than DirectX on Linux is.
> not to mention how much harder it is to develop and debug that platform than it is a native one.
But why? You still have access to a debugger.
And games using low end frameworks like that are already plentiful on the web, such as on itch.io. Heck you can even find games using Unity there, too.
> especially when WebGPU is closer to the native graphics API than DirectX on Linux is.
Uh... no? no it's not? WebGPU is rather high level & feature limited, which is why it can even be implemented on top of GLES 3.1. It's cutting edge for the web, but compared to native it's positively ancient.
Meanwhile DX12 and Vulkan are quite competitive on features and behaviors. Also most people aren't going through such a translation at all in the first place regardless, so I don't know why you're framing it as some given.
Just look at web notifications. Maybe it's nice that you can get email alerts on your PC without having to install an app, but now every news site and sketchy clickfarm on the planet is trying to send notifications to get grandma back on their website, showing her ads.
Users are so accustomed to popups and cookie banners and what have you, they've been trained to click "sure, accept, whatever, just let me use the website" so permissions prompts may as well not exist.
I do not like the effort to make webapps as capable as desktop apps. Visiting a website and hitting "accept" which could easily be done by accident should not be offering anywhere near the level of trust and permissions to my system as installing an application. The friction of installing an application is not an inconvenience, it's a feature.
You see that a lot with all the game streaming platforms like Stadia
There's a whole mainstream culture of custom building PCs to maximize performance/value and YT channels focused on game perf like digital foundry are super popular
I recently ported Doom on browser so that you can easily play multi-player (up to 4) completely free (you can host it yourself on Cloudflare)
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.
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.
After that moment I switched to consoles.
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.
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.
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...
the worst part is theres no defined build step so `@tool` scripts run both in the editor and at export time. its easy to accidentally crash the editor or mess up your scene with a bad editor script missing one line of code. and as far as i remember its impossible to undo so remember to save often.
godot is still the best option if you want a open source engine for your game but only because bevy is not production ready yet.
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.
Curious though about the bugs. Right at the start, as g-man talks his eyes are missing textures and his mouth doesn't move. Both of those bugs continue, when I get to the part where the guard removes his mask, his lips don't move and the video monitor doesn't change to show the professor.
Is it just a minor oversight or is that something hard to fix?
Booting up the original, some shadows and other graphic details are missing.
Not complaining! Just curious. It made we want to play again!
Edit 1: crouch is bound to C according to the blog post, but that's the only one mentioned. Edit 2: You can use key_listboundkeys from console. Also can just open the menu with `
In fact, I've said for a long time that I wish I had a nice Android tablet with a Tegra chip that I could both use as regular tablet and as a game system.
Give me a play button, let me initiate the install, show me what the hell it is first.
This looks no different than a scam phishing link
Having to click a button to see anything itself is even a scammy pattern as it's used by scam sites to get more permissions before the user has a chance to doubt the content at all.
Lol you know nothing about games apparently. I wonder why people like you comment on that which you have no clue
So it's still worth a revisit :)
* Graphics are better (this should not be a surprise)
* Some maps have been made shorter (the underground railway tunnels, if my memory serves)
* The last part of the game (Xen) was pretty much completely overhauled, and in my opinion, improved.
This is from memory so I might be getting one or two details wrong.
1) how are games now showing up in browser?
2) how are they porting it, whats the process, can LLM do it?
3) how is it legal? how are they monetizing it ?
2) WebAssembly, compiling the leaked HL2 code. The graphics stack is WebGL.
3) Absolutely illegal, it exists until a cease&desist comes from Valve. We may see it taken down even today. They aren't.
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.
Why should Valve update their old games to work on Apple Silicon? They're old and only 2% of Steam users (clients?) are on macOS.
Also, this port works offline in your browser. If you've loaded it up before the assets are cached and you can play with no internet. Yes, even if you've closed the tab and open it again later without internet.
It's being run through the equivalent of a virtual machine. So it's really quite similar to the layers used to abstract away platform specifics like Wine / Proton does for Windows compatibility. Instead of DXVK you have WebGL.
But native to what?
Windows is no longer the commonality between all users.
The browser has that role, now.
> We want people to remain online under any circumstance
Webapps often have offline-first functionality,
which is one of the biggest strengths of a progressive web app.
Hard times at Valve, I suppose they’ll have to find more children to start gambling with them.
If you want these kinds of things to stay up long enough for many people to see/use them you have to work around the legal limitations (regardless of whether they make ethical sense). Most commonly, make the site apply as a diff to the original content/assets the user provides.
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.
Is it kind of a reverse Poe's Law?
Poe's law exists but I'd rather pull up in discussion and intellect because I want to believe that people are smarter than we assume they are, in this day and age.
That's why corporations can get away with everything.
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.
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.
God, AI keeps making life better than I could've ever imagined!
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.
Until they decide, we can't know if it's illegal or not - who knows, this site might have a license.
Of course, this is a lot more grey area for copyright violations etc because it's a civil matter.
Pithy but untrue. The verbose-but-correct statement is about procedural prerequisites: Government officials are forbidden to imprison or fine you until your guilt is proved, to an impartial and properly-instructed jury in a fair trial, beyond a reasonable doubt. (The Scots have the better formulation for criminal cases: Guilty, or not proved.)
Illustration: OJ Simpson was found not guilty [sic] in his criminal trial. So he couldn't be imprisoned. But then a different jury found — under the lower, preponderance of the evidence standard — that Simpson did indeed murder his ex-wife and the other guy. The latter case was the civil action for wrongful death, brought by the survivors of his victims. The survivors won a $33.5M verdict. Simpson's assets were seized, and sold at a court-ordered auction, to pay the judgment — including his Heisman Trophy.
(In Simpson’s second trial, the jury found him liable, not “guilty.” Guilt is the term used in criminal prosecutions. Liability is the term used in civil cases.)
An action can clearly be a crime, but it might be unclear if you did that action.
See my upthread comment: "Innocent until proven guilty" is catchy but false.
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.
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.
I think we can.
Because projects like this are free publicity and don't actually compete with the product sold on Steam.