Half-Life 2 in a Browser

Technical approach and performance

  • Port is built with WebAssembly and WebGL, compiling leaked Half‑Life 2 code; assets stream in by chapter so initial download is ~50 MB, with more as you progress.
  • Runs surprisingly well even on non‑gaming laptops and some phones/tablets; some users report smooth play until later, heavier scenes where it crashes or slows.
  • Shader/animation systems are partially disabled or simplified, leading to missing shadows, incorrect or missing eye textures, and no lip‑sync or some in‑world screens.
  • Offline play is possible once assets are cached; browser can relaunch the game without an internet connection.

Legal and ethical questions

  • Many argue it’s almost certainly unlicensed and thus copyright infringement, regardless of whether Valve enforces it.
  • Others say enforcement is Valve’s concern; it’s free publicity for a 20‑year‑old game and not a serious revenue threat.
  • Debate over whether prior free promos or SDK/source releases for related engines change the ethics; most agree they don’t change legality.
  • Broader discussion on “IP law is dead” vs high‑profile settlements showing large copyright penalties; piracy vs corporate wrongdoing is contrasted.

Web vs native and platform debates

  • Some see this as proof browsers are the new “universal platform,” with WASM as the common interface.
  • Others lament energy spent on browser apps instead of native ports, arguing web capability erodes offline and user control, and is worse for performance and security.
  • Concerns that giving the web more native‑like powers leads to abuses (notifications, tracking) and that install friction for native apps is a user‑protection feature.

Compatibility, UX, and controls

  • Works on major desktop browsers; some projects (e.g., Ultima Online web client) degrade on Firefox due to missing File System Access API features.
  • On iPad and mobile, input is clumsy; external controllers can be an issue on iOS.
  • UI criticism: auto‑loading large assets without a clear “Play” button looks scammy; progress bar bugs and lack of clear keybindings noted.

Nostalgia and related web ports

  • Strong nostalgia for HL2 era hardware and LAN culture; amazement that a once‑high‑end title now runs in a browser.
  • Long list of similar web ports: Quake 3, Doom 3, Diablo, Counter‑Strike, Tomb Raider, Deus Ex, GTA Vice City, Ultima Online, RuneScape, Simpsons Hit & Run, Red Alert, Duke Nukem 3D, etc.
  • Some highlight sanctioned browser clients (e.g., Ultima Online) as a contrast to this likely‑unauthorized port.

Mac and platform support

  • Multiple comments note the irony that HL2 no longer runs on modern macOS via Steam due to dropped 32‑bit support, yet is playable via browser.
  • Debate over Apple’s decisions to drop 32‑bit, deprecate OpenGL, and ignore Vulkan, and whether Valve should have shipped 64‑bit Mac binaries.
  • Broader lament about macOS as a gaming platform versus cloud/streaming solutions and Wine/Proton‑style compatibility layers.

Why aren’t more games shipped this way?

  • Cited obstacles: limited engine support (Web exports weaker for Unreal, Godot+C#), WebGL’s older feature set, incomplete WebGPU rollout, and performance/cost concerns.
  • Some companies are working on UE5 WebGPU backends and asset‑streaming solutions, suggesting more high‑end browser games may appear.