wowserhq / wowser

World of Warcraft in the browser using JavaScript and WebGL
MIT License
238 stars 63 forks source link

Godot Game Engine #181

Closed ghost closed 6 years ago

ghost commented 6 years ago

Have you thought of using it ? You should at least take a look. Very decent technology there and scripting that is truly approachable to everyone.

Imagining this kind of project as modules that everyone can assemble in powerful new ways to put their own spin on what we know as WoW, and in full source code freedom, is just mind blowing.

fallenoak commented 6 years ago

Hey there!

The goal of Wowser is to write a clean, browser-compatible implementation of a client that looks and feels like the original 3.3.5a client, running on the versions of assets that shipped in that patch.

As a result, using an existing game engine or rendering engine isn't a good choice for us.

We originally tried using threejs in Wowser, but there were just too many cases where threejs's (completely valid) opinions on how rendering should work didn't match up with how the game itself works. That led to a lot of overriding, patching, and other types of development agony.

Our current approach is to carefully determine how the original game works, and implement a similar approach in Wowser from scratch. It's slow going, but the end result should be worth it. You might want to consider Wowser more in line with what ScummVM has done for old Sierra and LucasArts adventure games. We're just tackling a more recent (and more complex) game, and targeting the browser as our runtime environment.

ghost commented 6 years ago

@fallenoak The thing is, if you do it in Godot you are covering all platforms, web included :)

I suppose that if you document the protocols nicely, someone may step in and port them to more environments.

Overall, even if your goal is limited to purely web-based, it is an amazing cause.

These type of projects amplify education, for those who want to study the source code and they also preserve a part of modern culture since original executables go out of date.

fallenoak commented 6 years ago

@infosisio Per my earlier comments, Wowser isn't an attempt to create a new game; rather, Wowser is an attempt to reimplement the 3.3.5a client from scratch.

Engines like Godot (and rendering engines like Ogre and threejs) are great for someone creating a new game. For a project like Wowser, however, too many decisions are made by these off-the-shelf engines--decision that get in the way of an accurate reimplementation.

I totally get where you're coming from--we originally used threejs, but when we started getting serious about accurately rendering things like WMOs, M2s, and ADTs, we were constantly fighting it. The more of threejs we tossed out, the less value threejs provided. Deciding to do this from scratch wasn't an easy choice, and definitely has its own tradeoffs.

Doing this right means it'll take longer, but I think you'll find it's worth it in the end!