All Projects → wowserhq → Wowser

wowserhq / Wowser

Licence: mit
World of Warcraft in the browser using JavaScript and WebGL

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to Wowser

Rreusser.github.io
rreusser.github.io
Stars: ✭ 167 (-9.24%)
Mutual labels:  webgl
Threejs Modern App
Boilerplate and utils for a fullscreen Three.js app
Stars: ✭ 176 (-4.35%)
Mutual labels:  webgl
Flextgl
OpenGL and Vulkan header and loader generator.
Stars: ✭ 180 (-2.17%)
Mutual labels:  webgl
Expo Voxel
🎮🌳 Voxel Terrain made in React Native. ∛
Stars: ✭ 169 (-8.15%)
Mutual labels:  webgl
Encom Boardroom
📈 Web tribute to the Tron: Legacy Boardroom Scene
Stars: ✭ 2,094 (+1038.04%)
Mutual labels:  webgl
Webgl Month
🎓 Daily WebGL tutorials
Stars: ✭ 178 (-3.26%)
Mutual labels:  webgl
React Globe
Create beautiful and interactive React + ThreeJS globe visualizations with ease.
Stars: ✭ 167 (-9.24%)
Mutual labels:  webgl
Awesome Webgpu
😎 Curated list of awesome things around WebGPU ecosystem.
Stars: ✭ 182 (-1.09%)
Mutual labels:  webgl
Pixi Haxe
Externs of Pixi.js for Haxe
Stars: ✭ 175 (-4.89%)
Mutual labels:  webgl
Magnum Examples
Examples for the Magnum C++11/C++14 graphics engine
Stars: ✭ 180 (-2.17%)
Mutual labels:  webgl
Gpu.js
GPU Accelerated JavaScript
Stars: ✭ 13,427 (+7197.28%)
Mutual labels:  webgl
React Regl
React Fiber Reconciler Renderer for Regl WebGL
Stars: ✭ 171 (-7.07%)
Mutual labels:  webgl
Elm Street 404
A fun WebGL game built with Elm
Stars: ✭ 178 (-3.26%)
Mutual labels:  webgl
Ide
Enso – a visual and textual functional programming language.
Stars: ✭ 168 (-8.7%)
Mutual labels:  webgl
Hob3l
100x Faster Slicing of SCAD Files for 3D Printing
Stars: ✭ 182 (-1.09%)
Mutual labels:  webgl
Elm 3d Scene
A high-level 3D rendering engine for Elm, with support for lighting, shadows, and realistic materials.
Stars: ✭ 167 (-9.24%)
Mutual labels:  webgl
Aframe Effects
A VR Ready Post processing framework for Three.js and/or A-Frame
Stars: ✭ 176 (-4.35%)
Mutual labels:  webgl
Vim Glsl
Vim runtime files for OpenGL Shading Language
Stars: ✭ 184 (+0%)
Mutual labels:  webgl
Echarts Gl
Extension pack for Apache ECharts, providing globe visualization and 3D plots.
Stars: ✭ 2,227 (+1110.33%)
Mutual labels:  webgl
Tilemap
Rectangular tilemap implementation for PixiJS
Stars: ✭ 177 (-3.8%)
Mutual labels:  webgl

Wowser

Version Join Community Build Status Known Vulnerabilities Maintainability Test Coverage

World of Warcraft in the browser using JavaScript and WebGL.

Licensed under the MIT license.

See Wowser tech demo

Status

Wowser is in the process of being split up into (at minimum) the following parts:

  • Client (user interface loaded from XML/LUA)
  • Pipeline server (serves up resources from the official client)

This repository will in the future become an umbrella package.

Background

Wowser is a proof-of-concept of getting a triple-A game to run in a webbrowser, attempting to tackle a wide variety of challenges: data retrieval, socket connections, cryptography, 3d graphics, binary data handling, background workers and audio, to name a few.

Features

Wowser is aiming to be both a low-level API as well as a graphical client, interacting with a World of Warcraft server like an official client would.

Note: Only Wrath of the Lich King (3.3.5a) is currently supported. A copy of the official client is required.

Warning: Do not attempt to use this client on official/retail servers as your account may get banned.

At present, Wowser is capable of:

  • Authenticating by username / password.
  • Listing available realms.
  • Connecting to a realm.
  • Listing characters available on a realm.
  • Joining the game world with a character.
  • Logging game world packets, such as when a creature moves in the vicinity.

In addition, there's good progress on getting terrain and models rendered.

Browser Support

Wowser is presumed to be working on any browser supporting JavaScript's typed arrays and at the very least a binary version of the WebSocket protocol.

Development

Wowser is written in ES2015, developed with webpack and Gulp, compiled by Babel and soon™ to be tested through Mocha.

  1. Clone the repository:

    git clone git://github.com/wowserhq/wowser.git
    
  2. Download and install Node.js – including npm – for your platform.

  3. Install dependencies:

    npm install
    
  4. Install StormLib and BLPConverter, which are used to handle Blizzard's game files.

Client

Webpack's development server monitors source files and builds:

npm run web-dev

Wowser will be served on http://localhost:8080.

Pipeline server

To deliver game resources to its client, Wowser ships with a pipeline.

Build the pipeline:

npm run gulp

Keep this process running to monitor source files and automatically rebuild.

After building, serve the pipeline as follows in a separate process:

npm run serve

On first run you will be prompted to specify the following:

  • Path to client data folder (e.g. C:/Program Files (x86)/World of Warcraft/Data)
  • Server port (default is 3000)
  • Number of cluster workers (default depends on amount of CPUs)

Clear these settings by running npm run reset

Disclaimer: Wowser serves up resources to the browser over HTTP. Depending on your network configuration these may be available to others. Respect laws and do not distribute game data you do not own.

Socket proxies

To utilize raw TCP connections a WebSocket proxy is required for JavaScript clients.

Websockify can - among other things - act as a proxy for raw TCP sockets.

For now, you will want to proxy both port 3724 (auth) and 8129 (world). Use a different set of ports if the game server is on the same machine as your client.

npm run proxy 3724 host:3724
npm run proxy 8129 host:8129

Contribution

When contributing, please:

  • Fork the repository
  • Open a pull request (preferably on a separate branch)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].