[Archive] [WIP] WebWoWViewer
[Archive] [WIP] WebWoWViewer
Quote: This project has been in development for over a year. All is open sourced and available at github: link (the code is shit sometimes though)
It started as a simple attempt to recreate functionality of old WoWMapViewer but solely in js and WebGL.
During this time, at least one feature was implemented that has not been ever implemented in WoW Map Viewers: portal culling.
https://www.youtube.com/embed/kcxONrduNs8?wmode=opaque
During the development I tried my best to get a decent fps from WebGL and it's really hard. Frustum culling happens every frame to
Right now my goal to recreate human starting animation, when camera flies through Stormwind with all mobs and players moving and spells animations, just like it was seen in client WotLK times.
Some current screenshots are included.
There is also another similar project: wowser (link to github). It's aim is to recreate full game client with packets going through WebSocket connection. I myself do not work on it, but since I'm in close contact with it's developer fallenoak, I feel it's worth mentioning it.
I want to say a special thanks to:
- schlumpf
- fallenoak
- warpten
- relaxok
- and all the maintainers of wowdev.wiki website. Without all that information collected in one place, this project would not be possible
Archived author: deamon1987 • Posted: 2025-11-04T13:21:44.474312
Original source
Quote: This project has been in development for over a year. All is open sourced and available at github: link (the code is shit sometimes though)
It started as a simple attempt to recreate functionality of old WoWMapViewer but solely in js and WebGL.
During this time, at least one feature was implemented that has not been ever implemented in WoW Map Viewers: portal culling.
https://www.youtube.com/embed/kcxONrduNs8?wmode=opaque
During the development I tried my best to get a decent fps from WebGL and it's really hard. Frustum culling happens every frame to
Right now my goal to recreate human starting animation, when camera flies through Stormwind with all mobs and players moving and spells animations, just like it was seen in client WotLK times.
Some current screenshots are included.
There is also another similar project: wowser (link to github). It's aim is to recreate full game client with packets going through WebSocket connection. I myself do not work on it, but since I'm in close contact with it's developer fallenoak, I feel it's worth mentioning it.
I want to say a special thanks to:
- schlumpf
- fallenoak
- warpten
- relaxok
- and all the maintainers of wowdev.wiki website. Without all that information collected in one place, this project would not be possible
Archived author: deamon1987 • Posted: 2025-11-04T13:21:44.474312
Original source
Quote: Looks really great man.
Simple curiosity, what are the performances with and without culling ?
Archived author: Vandra • Posted: 2025-11-04T13:21:44.474312
Original source
Quote: Looks really great man.
Simple curiosity, what are the performances with and without culling ?
Quote: Originally Posted by Vandra
Looks really great man.
Simple curiosity, what are the performances with and without culling ?
Thanks
Fps can be very different. It highly depends on zFar parameter.
But as an example, one of scenes I was testing is one adt chunk from outland that includes Shattrath city. At first the fps was around 10-12.
Once I implemented frustum culling and instancing, the fps went to 40. I do not use portal culling for that scene, because turning portal culling on drops fps to 25-27. I do not know the exact reason for that, maybe there is some mistake in my algorithms.
On the other hand, in Ironforge with portal culling on, fps goes from 4 to stable 55-60. But in the same time a similar effect in Ironforge happens if I set zFar from 1000 to 400 even without portal culling.
Archived author: deamon1987 • Posted: 2025-11-04T13:21:44.474312
Original source
Quote: Originally Posted by Vandra
Looks really great man.
Simple curiosity, what are the performances with and without culling ?
Thanks
Fps can be very different. It highly depends on zFar parameter.
But as an example, one of scenes I was testing is one adt chunk from outland that includes Shattrath city. At first the fps was around 10-12.
Once I implemented frustum culling and instancing, the fps went to 40. I do not use portal culling for that scene, because turning portal culling on drops fps to 25-27. I do not know the exact reason for that, maybe there is some mistake in my algorithms.
On the other hand, in Ironforge with portal culling on, fps goes from 4 to stable 55-60. But in the same time a similar effect in Ironforge happens if I set zFar from 1000 to 400 even without portal culling.
Quote: Quite amazing, you can be proud of this sir
Do you intended to host a private web server with it? I don't really see how to use this (outside of a cool tool), but I guess people will have ideas...
Archived author: Nyarly • Posted: 2025-11-04T13:21:44.474312
Original source
Quote: Quite amazing, you can be proud of this sir
Do you intended to host a private web server with it? I don't really see how to use this (outside of a cool tool), but I guess people will have ideas...
Quote: Originally Posted by Nyarly
Quite amazing, you can be proud of this sir
Do you intended to host a private web server with it? I don't really see how to use this (outside of a cool tool), but I guess people will have ideas...
I have test page at WebWoWViewer: tech demo But it's outdated, I haven't updated it for several months.
The first two items in the list (Shattrath and Ironforge) are view-able without client. Any other items in the list require a http server that will provide files from MPQ.
In theory it's even possible to get files from MPQ archives without server. I compiled Stormlib into js with Emscripten. Test page: StormLib.js demo But this will require user to manually choose files from disk.
Another thing that can be done with this app is those webgl viewers that any wow database websites have. WebWowViewer is very close to that functionality: viewing NPC's outfit and animations. Not much changes must be done to fully catch up with those existing web viewers.
What I still miss is particle and ribbon emitters implementation.
I do not think I will ever host a dedicated server for this app. My intent is doing educational demo project. For demo purposes I can extract all required files for one particular scene from MPQ and place them into zip archive. What I actually did for Shattrath and Ironforge demos
Archived author: deamon1987 • Posted: 2025-11-04T13:21:44.474312
Original source
Quote: Originally Posted by Nyarly
Quite amazing, you can be proud of this sir
Do you intended to host a private web server with it? I don't really see how to use this (outside of a cool tool), but I guess people will have ideas...
I have test page at WebWoWViewer: tech demo But it's outdated, I haven't updated it for several months.
The first two items in the list (Shattrath and Ironforge) are view-able without client. Any other items in the list require a http server that will provide files from MPQ.
In theory it's even possible to get files from MPQ archives without server. I compiled Stormlib into js with Emscripten. Test page: StormLib.js demo But this will require user to manually choose files from disk.
Another thing that can be done with this app is those webgl viewers that any wow database websites have. WebWowViewer is very close to that functionality: viewing NPC's outfit and animations. Not much changes must be done to fully catch up with those existing web viewers.
What I still miss is particle and ribbon emitters implementation.
I do not think I will ever host a dedicated server for this app. My intent is doing educational demo project. For demo purposes I can extract all required files for one particular scene from MPQ and place them into zip archive. What I actually did for Shattrath and Ironforge demos
Quote: Working on proper rendering of login screens.
9PpiYpl.jpg
That almost hit the spot. Only some background meshes do not have greenish color.
Archived author: deamon1987 • Posted: 2025-11-04T13:21:44.474312
Original source
Quote: Working on proper rendering of login screens.
9PpiYpl.jpg
That almost hit the spot. Only some background meshes do not have greenish color.
Quote: Some more development screenshots
Archived author: deamon1987 • Posted: 2025-11-04T13:21:44.474312
Original source
Quote: Some more development screenshots
Quote: Added support for Legion: some bugs are included in this showoff video
https://www.youtube.com/embed/t1HCbeSS_nI?wmode=opaque
I will update the github.io page for app, as soon I will have proper interface for loading implemented.
From this video as you can see it's a little hacky atm
Archived author: deamon1987 • Posted: 2025-11-04T13:21:44.474312
Original source
Quote: Added support for Legion: some bugs are included in this showoff video
https://www.youtube.com/embed/t1HCbeSS_nI?wmode=opaque
I will update the github.io page for app, as soon I will have proper interface for loading implemented.
From this video as you can see it's a little hacky atm
Archived author: deamon1987 • Posted: 2025-11-04T13:21:44.474312
Original source