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).
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.
I wonder how they did this.
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.
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...
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.
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.
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?
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)
- 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
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
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.
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.
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.
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.
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.
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...
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 `