How a 2008 game runs in a browser tab

Yes, you can play World of Warcraft in a browser. On Lasthavens the real Wrath of the Lich King 3.3.5a client, the one released for Windows and Mac, runs inside a browser tab. It was decompiled and rebuilt for the web with WebAssembly, it draws with WebGL 2, and it loads the game’s data a small piece at a time as you need it. It is not a video stream from a computer somewhere else: the game runs on your own computer, phone or tablet, the same way the original did. This post explains how that works, in plain terms.

Is it really World of Warcraft in the browser, or a stream?

Cloud gaming services run a game on their own machine and send you a video of the screen. Your clicks travel to them, and the picture travels back. You feel the delay, and the picture blurs when your connection dips.

Lasthavens does the opposite. Your browser downloads the game program itself and runs it on your device. Your graphics chip draws every frame. Your mouse and keyboard go straight into the game with no round trip. The only things that travel over the internet are what always travelled over the internet in WoW: the game’s conversation with the realm (where you are, what you cast, what the mobs do) and the game files it reads from disk.

Video streaming Lasthavens
Where the game runs A server far away Your own device
What the internet carries A video of the screen Game data and realm traffic
Input delay Network round trip on every click None beyond normal WoW latency
Picture quality Depends on your connection Drawn natively at your screen’s resolution

How do you turn a 2008 game into a web page?

Step one: decompiling the client

Blizzard never released the source code for the 3.3.5a client. The project behind Lasthavens rebuilt it by decompiling the original program: working backwards from the finished game into source code that can be read, changed and compiled again. That source is what makes everything else possible, because you cannot move a program to a new platform without it.

Step two: WebAssembly with threads

Browsers can run WebAssembly, a compact format that runs at close to the speed of a normal installed program. The rebuilt client is compiled to WebAssembly with a tool called Emscripten, and the Windows-specific parts of the game (windows, files, timers, sockets, sound output) were given web versions alongside the originals.

The original client was a 32-bit program, and WebAssembly in the browser is 32-bit too, so the game’s data layouts carry over as they were. The client also does a lot at once: one part runs the game loop, others handle the network, file reading and sound. Browsers support real threads for WebAssembly, so the game keeps that design instead of being squeezed onto a single thread. Threads need a feature called shared memory, which browsers only allow on secure, specially configured pages. That is one reason the game only loads over HTTPS.

Step three: graphics through WebGL 2

The 3.3.5a client could draw with Direct3D or OpenGL. Browsers offer neither, but they do offer WebGL 2, which is a close cousin of the mobile version of OpenGL. The client’s own OpenGL renderer was adapted to it. The older drawing features WoW leaned on in 2008 do not exist in WebGL, so they are recreated with small shader programs the game generates as it goes, and the game’s original shader programs for effects such as water are translated into the modern shader language WebGL understands.

The game’s own sound engine is kept too, with a new output into the browser, so effects and reverb sound as they did.

Why there is no 17 GB download

A full 3.3.5a install is about 17 GB, most of it in large archive files that hold every model, texture, map and sound. Asking a browser to download all of that before you can log in would defeat the point.

Instead, the client asks for game files the moment it needs them, and only the parts it needs. The archives are read in small blocks, so opening a texture fetches the few blocks that hold it rather than the whole archive. Those blocks never change, so your browser keeps them in its cache, and the game also keeps a pool of recent blocks in memory for quick reuse.

In practice that means:

  • The first visit downloads about 50 MB to reach the login screen.
  • More arrives as you travel, a zone at a time, the way an old hard drive would have loaded it.
  • Repeat visits mostly load from your browser’s cache, so they start faster.

What the game writes, your settings and keybindings, is saved for the browser you play in. Your characters live on the realm, so they are there whichever device you log in from.

How the browser talks to the realm

WoW talks to its servers over a direct network connection, the kind browsers do not let web pages open. Web pages can open a WebSocket instead, which is a long-lived two-way connection to the site.

So the network code in the client was rewritten to use WebSockets, and a small bridge on the server side passes the traffic on to the realm’s login and world servers unchanged. The bridge will only connect to those servers, nothing else. Everything inside the connection is the original game protocol: the same login handshake and the same encryption the 3.3.5a client always used.

Account creation lives in the game too. A Create Account button is added to the stock login screen, and the client works out the login data from your password itself, so your password is never sent in readable form. See how to start playing in a browser for the steps.

How the touch controls work on phones and tablets

The same build runs on iPhone, iPad and Android. WoW was designed for a mouse and keyboard, so phones and tablets get touch controls, and they are made from the game’s own interface, not a web overlay on top of it.

  • Movement stick. Bottom left, built from the game’s minimap border and button art. Push it to walk or run in eight directions.
  • Action arc. Bottom right, under your thumb. These are the game’s real action buttons, moved and resized, so cooldowns, range coloring, macros and dragging spells onto the bar all keep working.
  • Thumb buttons for jump, target nearest enemy, interact, auto-run and sit.
  • A menu button that opens bags, character, spellbook, talents, quests, map and the rest, using the game’s own icons.
  • Taps and gestures. Tap to target or click, hold for a right click (to loot, sell, use an item or cancel a buff), drag on the world to turn the camera, and pinch to zoom.
  • Typing. Tap a chat or text box and your phone’s own keyboard opens, autocorrect and all.

Because these are the game’s own frames, everything else, bags, vendors, quest windows, the talent tree, works as it would with a mouse. Phones also get lighter defaults, such as rendering at a sensible resolution rather than the full pixel count of a high-density screen, to keep the game smooth and the phone cool. There is more on the device side in the iPhone and iPad guide and on why Blizzard never made a phone version in why there is no official WoW mobile app.

What you need to play WoW in a browser

You need Why
A recent Chrome, Edge, Firefox or Safari WebAssembly threads and WebGL 2
A device made in the last several years The game runs on it, not on a server
A steady internet connection Realm traffic and game data as you travel
About 50 MB for the first load Enough to reach the login screen

If the page stalls or stays black, the usual fixes are in what to do when the game won’t load.

Why go to all this trouble?

Wrath of the Lich King is many players’ favorite version of WoW, and 3.3.5a is the patch most private realms run (more on that in what WoW 3.3.5a is). The hard part has always been the client: tracking down a 17 GB download, finding a copy that works, editing a realm list, and hoping it runs on a modern machine. On a Chromebook, a phone or a tablet it cannot run at all.

Running the real client in a browser removes that whole step. Nothing to install, nothing to patch, and the same game on almost any device with a modern browser. Addons are covered too: an AddOn Library at character select lets you switch on popular ones such as Questie, Deadly Boss Mods and WeakAuras for your browser. See the best WotLK addons for what they do.

Try it on Lasthavens

Lasthavens is a free Wrath of the Lich King realm built on everything above. It is one PvP realm with twice the normal experience from kills, quests and exploring, and it plays on Windows, Mac, Linux, Chromebook, iPhone, iPad and Android. Open the page, click Create Account on the login screen (the email address is optional) and you are in.

Play Lasthavens in your browser.