News for hackers. Stuff that matters.
Re:Doom 3 in WebAssembly by rafaelvasco on Thursday January 03, 2019 @04:09PM (#18819295)
I disagree. But I understand your view. The thing is I don't want the game running IN the browser. I want it running standalone, but being web enabled and having the facilites it provides.
Re:Doom 3 in WebAssembly by computmaxer on Thursday January 03, 2019 @04:13PM (#18819322)
What? If it isn't in the browser, what's the difference between that and something you download on Steam?
Re:Doom 3 in WebAssembly by rafaelvasco on Thursday January 03, 2019 @04:18PM (#18819373)
For the user almost none. The difference is for the devs. If I want to make a cross platform game now, I have to worry about which Graphics api I will use, OpenGL, Direct3D, Vulkan etc. What sound api I will use. What Display, Input, abstraction I will use. Etc. If I could have a unified api and runtime abstracting all that already for me, making full cross platform games would be easier, assuming I don't want to use Unity. But that is of a much bigger scope that just WebAssembly. We already have that power, but we are chained to the browser. The discussion is to free that runtime from the scope of the browser. Decouple it.

The final dream is having a unified, Desktop, Consoles (Ps4 and Switch) and Browser runtime with a unified API (where sensible). One can dream.

Re:Doom 3 in WebAssembly by openbasic on Thursday January 03, 2019 @05:09PM (#18819826)
One does not simply develop cross-browser. Different browsers have different issues with different graphics cards. As soon as you're not drawing a textured triangle anymore, things get hairy. Same for the audio API. And don't get me started on the sad state of WebRTC and websockets.
Re:Doom 3 in WebAssembly by beetwenty on Thursday January 03, 2019 @06:04PM (#18820236)
Yes, it's just not viable to develop for browsers unless you have the maintenance budget for a moving target. I decided on that after living through the Flash era and trying HTML5 for a little while. The browser is backwards compatible only for certain kinds of applications.
Re:Doom 3 in WebAssembly by rafaelvasco on Thursday January 03, 2019 @06:15PM (#18820319)
Well, yeah. I agree. You escape from several problems in native environments and find another several in the web.
Re:Doom 3 in WebAssembly by openbasic on Friday January 04, 2019 @10:02AM (#18824449)
That's the thing. You don't escape from those problems in native environments. You still have to deal with different GFX drivers doing different crap on different platforms, cards that they that support a GL extension but don't, etc. And that's just OpenGL.

With the browser, you're just adding another abstraction layer that has even more complexity. WebGL is far for a decent spec. And we're talking just graphics, as I mentioned before, audio and networking have tons of unstable and untested code.

Multimedia programming is already hard on native environments. I don't see the web being a friendly environment anytime soon. There's no silver bullet, "code once, run anywhere" for games and multimedia.

Re:Doom 3 in WebAssembly by tyingq on Thursday January 03, 2019 @04:12PM (#18819316)
The WASM folks have plans to deepen the browser ties with direct DOM access, tying threads to webworkers, GC that's tied to the browser js, etc. I can see why you want what you do, but it will get harder over time.
Re:Doom 3 in WebAssembly by neurotrace on Thursday January 03, 2019 @04:54PM (#18819685)
That's not quite true. They intend to create a way of interfacing with ANY GC which would then allow them to make APIs that call in to the DOM. None of this would tie it directly to browsers. The whole intent is to keep it platform-agnostic, last I heard.

> An important constraint is that, while WebAssembly should allow tight integration with the Web, it should not bake in details or Web standards dependencies that prevent execution in a non-Web embedding. This suggests a design (called opaque reference types below) that hides the details of JavaScript and WebIDL behind Web-embedding-specific builtin modules. On the other hand, WebAssembly can define a set of native GC primitives that allowed portable GC code to be written regardless of the host environment.

https://github.com/WebAssembly/proposals/issues/16

Re:Doom 3 in WebAssembly by tyingq on Thursday January 03, 2019 @06:38PM (#18820495)
That's encouraging. As far as I can tell, threading is currently webworker centric.
Re:Doom 3 in WebAssembly by rafaelvasco on Thursday January 03, 2019 @04:19PM (#18819378)
Unfortunate.