Amazing job! Congrats!

пт, 4 янв. 2019 г., 1:40 'Thomas Lively' via emscripten-discuss
[email protected]:

> This is super cool! 10/10 will play more when I can. It's really great
> seeing the WebAssembly work paying off with such a low barrier to start
> playing such a polished game.
>
> On Thu, Jan 3, 2019 at 4:33 AM Gabriel CV <[email protected]>
> wrote:
>
>> Hello,
>>
>> Here is a port of the Doom 3 video game (idTech 4 engine) to WebAssembly
>> using emscripten. This is based the dhewm3 GPL source port, and on the demo
>> data of the game available for download on the web.
>>
>> Live demo:
>> => http://continuation-labs.com/d3wasm
>>
>> Source code:
>> => https://github.com/gabrielcuvillier/dhewm3-webassembly-port
>>
>> This demonstration is using the demo game data, which is roughly 400MB
>> size. I removed DDS compressed textures and the last level of the demo to
>> shrink things down a little bit. But initial loading will be QUITE long,
>> depending on your bandwidth. Game data files are fetched at initial startup
>> and stored persistently for cache reuse.
>>
>> Things seems to work correctly on several platforms/browsers I tested.
>> The game is playable on modern browsers. It is even working on mobile
>> Android, though not playable due to lack of controls and really bad
>> performance :)
>>
>> On my system, the Game runs at 20/40 FPS on Chrome, 10/30 FPS on Firefox
>> (don't know why such slower than Chrome), and 1/2 FPS on my mid-class
>> Android mobile phone ;) Note that the native build shows a constant 60 FPS,
>> but it is not using any GL emulation layer!
>>
>> A few notes:
>> - Don't expect to have graphics as shiny as the native build, because the
>> port is not using the "shaders" renderer path (using legacy ARB assembly
>> shaders and not GLSL, this is not supported by WebGL), but instead it uses
>> the fixed function pipeline renderer path that was intended for graphic
>> cards without shader support at the time. It does look nice though, with
>> bumpmapping/reflections & co..
>>
>> - Some visual glitches though (weird looking specular lights on
>> characters), but they are due to the renderer path used and not because of
>> underlying GL emulation library. The issue is the same with a native build
>> without shader support. However, I had to disable some code in Fog
>> rendering because of issues. As so, Fog is now only partially rendered, and
>> sometime glitchy (you may disable it with "r_skipFogLights 1).
>>
>> - Loading of levels will "hangs" the display. This is due to the way
>> emscripten works with "main loop based" applications, this model does not
>> support well a loop iteration that last for too long (such as loading a
>> level).
>>
>> - Under the hood, I use the Regal GL emulation layer library, with quite
>> a few tweaks here and then for things to work.
>> The fixed function pipeline path used by idTech 4 engine use many of the
>> latest enhancements done to OpenGL before the advent of Shaders (GL 1.4 and
>> co, with Texture combiners, DOT3 bumpmapping, Anisotropy, etc.). As so,
>> Regal is doing a great job to emulate fixed function pipeline.
>>
>> - Like the previous port I did for Arx Fatalis, I had to disable
>> multithreading from the game code, because it is still difficult to make
>> this work with emscripten.
>>
>> - I did some tests to enable SIMD/SSE2 code path of the engine, but I
>> discovered it is only supported in asm.js and not in wasm. Too bad!
>>
>> - I still need to update the README file to explain things a little bit
>> more, including how to build the project (not yet 100% straightforward) and
>> package the data.
>>
>>
>> Feedback / comments welcomed
>>
>>
>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "emscripten-discuss" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "emscripten-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to