Giter Club home page Giter Club logo

Comments (3)

fallenoak avatar fallenoak commented on June 2, 2024

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.

from wowser.

 avatar commented on June 2, 2024

@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.

from wowser.

fallenoak avatar fallenoak commented on June 2, 2024

@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!

from wowser.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.