Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
dybbuk81

Online DOOM

Recommended Posts

are there any java ports that support custom wads yet? have any source ports been made browser-friendly yet? do you think this could one day be possible?

Edit: Totally in the wrong forum category :-/

Share this post


Link to post

Mocha Doom supports PWADs and is written in Java, it's multi-platform but it's not browser-friendly yet. Also, the level of compatibility is "limit removing": no Boom or Dehacked support yet.

Share this post


Link to post

What do you mean by "browser friendly"?

Java Applets are on their way out due to the deprecation of NPAPI in major browsers. Java Web Start doesn't require a plugin, but what would need to be done to make Mocha Doom compatible with it - isn't JWS just a way of starting a normal Java program more conveniently?

Share this post


Link to post

It's perfectly feasible to make a Javascript source port that runs in a web browser, but no one has really bothered.

Share this post


Link to post

Of course the problem with such a port is the necessary distribution of the game assets, not porting the code to Javascript.

Which renders any attempt to create a Doom port that runs in a web browser DOA.

Share this post


Link to post

Some ports have gotten into trouble simply for including the shareware IWAD, because of some over-zealous pointy haireds. So, regardless of the technology involved (browser, dedicated mobile or desktop app, etc.), some way to allow the final user to point to IWADs already in their possession must be provided. Bundling is legally risky.

Share this post


Link to post
Maes said:

Some ports have gotten into trouble simply for including the shareware IWAD, because of some over-zealous pointy haireds.


There's nothing overzealous here - just a clear violation of the shareware version's terms of use. The JavaScript port that got mentioned required each user to download the IWAD off the website where the port was hosted - and that's simply not allowed by the license it comes with.

Share this post


Link to post

Other than that, that particular Javascript port lacked some usability features like configurable controls, higher resolutions, saves, ability to load PWADs etc. that would make it actually useful, even if for single play.

As it was, it simply allowed to casually play the shareware episode of Doom with none of the aforementioned features (I don't recall if there was sound, even), and the codebase itself was almost straight linuxdoom v1.10 (which as we know, needs some fixes to properly support all IWADs).

It is also debatable how much "JavaScript" it really was, as it was produced by cross-compiling C with the EmScripten JavaScript X-compiler, into some sort of JavaScript middleware VM's, so the end result was not editable and clear-cut JavaScript code. That's probably one of the reasons it would not be trivial to actually integrate it with browser plugins, JavaScript libraries and frameworks etc.

Share this post


Link to post

Anyway, to stick with the OP, the only currently available "browser Doom" is the one in the Doom Triple Pack (requires Adobe Flash player). Includes shareware Doom, Hexen and Heretic, actually predates the DMCA'ed JavaScript port, and somehow got past the radar....

Share this post


Link to post

I wonder how easy it is to access "native" JavaScript code when using a cross-compiler such as Emscripten. E.g. if you have some plain JavaScript code to open a local filesystem dialog, or you want to use the browser's built-in XML transfer/DOM mechanisms, how do you access them from a codebase that's mostly C? Is there a special API and special bindings to do that?

By "plain" and "native" JavaScript code I mean code that's already available in the form of libraries and NOT generated by Emscripten from C.

So, in particular, how do you cross this double boundary?

C --> Emscripten VM --> native JavaScript?

This will be necessary to do, if one wishes to have any sort of network or local file system interactivity, and not rely on everything being compiled into a static Emscripten VM blob (in that previous implementation, even DOOM1.WAD was statically compiled as an asset into the blob).

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×