Jump to content

WoW.js - Playing WoW in your web browser


shlainn

Recommended Posts

Posted

Ah, one of shlainns batshit crazy ideas again - this may be mildly entertaining...

Okay. Oh, and do not be fooled by the title, there is no

As I proposed elsewhere - it would be nice to have good tools. And to avoid OS issues, I wanted to make these tools browser based so everyone can use them. And it should be nice and graphical. So, I started looking into modern HTML5 browser technologies, such as WebGL, WebSockets, ...

And so, one thing came to another. I am currently working on a WebSocket-powered browser based version of WoW (TBC).

Of course, MaNGOS does not speak WebSocket, so I created a minimal proxy, which basicly unwraps the WS payload and sends it over a standard TCP connection to MaNGOS, and does the reverse with any data from MaNGOS. Everything else is done in the browser.

What works so far:

- Realm Login (thanks to https://github.com/Caligatio/jsSHA and https://github.com/jtobey/javascript-bignum)

- World Login up to Character selection. Encryption/Decryption of World Packets works!!

- inflate/deflate in client-side javascript (Never confuse RFC 1950 with RFC 1951 - 2 bytes make hell of a difference!)

- clean code

Next goal:

- Implement Chatting

What else is there to do:

- Implement More Packet Handlers

- GUI :(

I think this is worth a look now. The code is on github .

Looking for HELPPPPP!!!

From my experience with PseuWoW I can tell that it is impossible for one person alone to re-implement the WoW client. Period.

So, if anyone wants to pitch in, with any experience in JavaScript or WebGL or just enough foolishness to come along on this journey, you are cordially invited to drop me a PM.

Shlainn

Posted

i wouldnt call it crazy if u pull it off i wouldnt be suprise blizzard trying do same thing.

one question are the exsiting mangos going support it or going be a totaly dif server since going have be html and prob java based.

Posted

First post updated.

@void513: It is not that mangos must support wow.js - rather wow.js supports mangos :) (and other emus for that matter)

@LilleCarl: Precisely. Although my code is for TBC which would trigger all kinds of funny responses on retail...

Posted

how u handeling the client side data that normaly be in client like the client dbs sprites and art work.i figure it be on server side streamed to ur browse or could be done like minecraft throught compressed jar file.

Posted

PLEASE do not mistake JAVA and JAVASCRIPT. We are talking JAVASCRIPT here - stuff will have to be streamed to the browser. I am hoping to use some of the new stuff like LocalStorage to limit that to a minimal amount.

Posted

this is an idea but and granted i dont have a clue about java scripting.but when the web client first start it be able to detect if u have orginal wow client install and use certain content from it that cut down on streaming and increase the loading time.

Posted

This is seriously cool stuff - I hope this will be supported by more browsers soon. My very vague plan was to download stuff from the server and put it into local storage so it needs to be downloaded only once per computer. But at the current state we are MILES away from that.

when the web client first start it be able to detect if u have orginal wow client install and use certain content from it that cut down on streaming and increase the loading time.

Autodetection will not be possible. But it may be feasible to just point the browser to the wow data on game start.

Posted

maybe a browser addon could be used to store and keep data without fear of clearing cach and have redownloading it .but prob with that be have write one for each browser.it limit number rowser it supports but most major browser supports addons.

Posted
First post updated.

@void513: It is not that mangos must support wow.js - rather wow.js supports mangos :) (and other emus for that matter)

@LilleCarl: Precisely. Although my code is for TBC which would trigger all kinds of funny responses on retail...

I meant pretty much in theory ;)

Posted

Sure, why not do it, shlainn?

If Id Software can make a browser-based Quake III, that looked and played at least as well as original version, then WoW should be doable.

One extra bit that web-Quake had was a training mode, where the game quantified your skill in a series of special levels, then used that data to match you with similar players on the regular levels. Something like that for PvP would be great, if it is even feasible to add it.

Posted

This is seriously cool stuff - I hope this will be supported by more browsers soon. My very vague plan was to download stuff from the server and put it into local storage so it needs to be downloaded only once per computer. But at the current state we are MILES away from that.

Unfortunately, we are probably even further away from a non-streaming implementation too...

Have to port a mpq library, including some of the the compression components, to js :(

Posted

actually reading MPQs in JavaScript is not very hard to implement - I wrote a python implementation a while ago and the docs are pretty excellent. But I think it may be easier to extract the archives, and stream gzipped packages from the server on demand.

Posted

Starting from a recent commit wow.js shows you a minimap-ish view of the creatures and GOs in your area...

ecd352-1352399952.png

This is Crossroads I believe...

Anyone interested in trying WoW.js can find it on GitHub. If you want to participate in development - poke me or write in this thread!

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use