“Today, we are excited to unlock this technology for high-performance games, by teaming up with Epic Games. By leveraging this new JavaScript optimization technology, Mozilla has been able to bring Epic’s Unreal Engine 3 to the Web. With this port, developers will soon be able to explore limitless possibilities when it comes to porting their popular gaming titles to the Web.”
Isn’t Epic the game company that said all computer users were pirates and they were going to develop only for consoles?
Edited 2013-03-28 03:00 UTC
The Web is a console in itself. Well implemented a asm.js game cannot be pirated, copied or replayed. While some of the asm.js code have to be downloaded, most of the heavy lifting and storage can stay server side.
At least JS is easier to reverse engineer than x86_64 machine code.
However you want to skin that cat, it doesn’t matter to me. They could actually produce their UT3 for Linux client as they promised and I still won’t touch their stuff. Like many others, I bought UT3 because it had the tux logo on the box and they had promised the client which never came. They never did reply to my many requests for a refund. Then they had their hissy fit and told the world all PC users are pirates. What they told me with that series of events is that they don’t want my money nor do they want anyone else to buy or play their stuff.
‘Explore limitless possibilities’ …
Translation: ‘More shitty first-person shooters’
That is a little unfair isn’t it. There are quite a few game engines using the unreal 3 engine that aren’t first person shooters.
XCOM: Enemy Unknown, for instance, a turn-based tactical strategy game.
As someone else said lets not forget Gears of War.
Well, it’s the most demanding genre. If you can do graphics intensive FPS’s, everything else is a breeze.
Well UE3 is best known for Gears of War, which is third person shooter.
Does it still have the quarter to half second audio lag FF is notorious for with HTML 5 AUDIO that makes it semi-useless for anything realtime?
There is a project that has addressed that. If you are interested.
Stack Overflow post here
http://stackoverflow.com/questions/9553415/how-did-scirra-get-html5…
And the project itself.
https://www.scirra.com/construct2
The developer actually chimed in on stack overflow and talked about problems with getting it to run cross browser.
So I am not really surprised this is the case. But you are completely right.
Edited 2013-03-28 18:35 UTC
Is this actually online anywhere that it can be tried?
The video mentions enscripten and hacks.mozilla, but neither site contains any information about this at all.
Did you click the link to this page?
https://blog.mozilla.org/luke/2013/03/21/asm-js-in-firefox-nightly/
You’ll need Firefox 22 so, currently, a Nightly build from http://nightly.mozilla.org/
Once you’ve got that, you can either try one of their benchmarks:
http://kripken.github.com/misc-js-benchmarks/banana/benchmark.html
http://kripken.github.com/ammo.js/examples/new/ammo.html
…or you can download emscripten and compile something of your own:
https://github.com/kripken/emscripten/wiki/Tutorial
(Make sure you read the instructions on enabling asm.js mode in the optimization section of the emscripten tutorial)
James Long has also whipped up a fork of LLJS that’ll compile to asm.js as he explains here:
http://jlongster.com/Compiling-LLJS-to-asm.js,-Now-Available-?hn
Edited 2013-03-28 10:32 UTC
If I’m not mistaken, that links off to bananabread – which as far as I can tell uses its own engine. But I can’t find anywhere that allows users to try the Unreal engine in-browser
Oh, sorry. I thought you were asking about trying asm.js.
The Flascc compiler was released late last year, this already included a port of the Unreal engine and Unity 3D as a target. The even ported SDL, and SDL Quake, to Flash using the compiler. I played with it (and submitted an article here, that never seems to have surfaced.) It is absolutely 100% rock solid and unfortunately probably a better overall technology than a Javascript/backend server solution.
Flascc is a straight up gcc front end with a Flash targeting back end, so almost all straight C code compiles and runs with a really small amount of work. It really is completely mind bendingly impressive. You do zero to your main body of code, the only real changes are to hook up the async callbacks to the Flash player to control the game loop and rendering.
http://i.imgur.com/IQfpxnW.png
0% rock solid. Captured this morning on the latest Chromium.
WebGL however hasn’t had any problems in Firefox or Chromium …
Which Flash plug-in are you using? Because it requires an extremely recent one to work correctly. That is the major drawback. The multithreading doesn’t work well without the correct plug-in, and the single threaded runtime is a lot slower.
I admit, this isn’t for everyone. But, it works really well, well enough to run Quake 1 with SDL in an XP virtual machine on a Windows 7 laptop with no lag what so ever. And remember – this isn’t a target you have to do a lot of extra work with – the majority of your C and C++ code should work out of the box, so long as you use SDL or one of the other supported frameworks for the graphics. No one is stopping you from porting another tool kit too. That beats javascript every time for me personally. Your mileage might vary.
Quake 1? That’s a really low bar considering that Q3Arena has been available on QuakeLive for several years. I should hope that they could make Q1 run well!
It was more as a demonstration of how the technology worked. The main “thing” was the fact that they had the Unreal engine compiling with Flascc and running natively in Flash *last* year.
Plus you get that this was running in a VM, right? So my laptop was running a VM with 2GB of RAM in VMWare running Flash running Quake 1 that I had just compiled from source using the Flascc compiler… that was what blew me away, not the fact that they had ported Quake 1. The performance in that fairly extreme test (emulating 32bit Windows in a VM under 64bit Windows 7) with really good results.
Edited 2013-03-28 14:42 UTC
I don’t know, virtualisation (not emulation) isn’t that big of a deal with today’s CPUs, gives near-native performance.
What will be impressive IMHO: Glide support in DOSbox, I hear it’s coming.
Unfortunately, there are rather large groups of people, who cannot choose their own mileage: iOS users, Linux users, and I’m not even sure if Flash is supported on Android anymore. So HTLM5+JS may be worse, but that’s the only platform-agnostic way that’s left.
As for my mileage: I hate both; but I still can’t wait until this makes it to Firefox stable.
Flash was never even close to being platform-agnostic. Unless you’re running Windows then Flash run-time availability is completely hit or miss and tends to be quite a buggy experience even on the “supported” OS’s never mind the issue of not being available at all or not up to date.
Edited 2013-03-29 01:35 UTC
Same result. I am sure I am using latest Chrome and it should have latest flash. I am using binary NVIDIA drivers so there should be all OpenGL capabilities needed.
Except it is using Flash.. no thanks.
The big news (at least for me) is asm.js
This is the Mozilla answer to Google native client. But the two technologies are not mutually exclusive.
The Google portable native client – PNaCl uses LLVM bitcode.
And arm.js uses code generated by Emscripten from … LLVM bitcode.
So developers can easily target both PNaCl and arm.js
Edited 2013-03-28 15:36 UTC
The trick long term will be serving up all the necessary game data (sounds, textures, &c.) in a smooth way online. Big games require lots of data. Getting that out to clients “JIT” would be a huge advance. If you have to load it ahead of time, you might as well have just downloaded the game and installed it.
That sounds like the streaming downloads many game clients already use.
MMO clients like DDO allow you to start playing before the game is fully downloaded. I believe Diablo III did the same thing.
The client just needs to organize the download list so that the starting game levels and their associated art and sounds are put first.
Shiva3d and Unity 3d for the web are available for years.
I’d rather play the games on my PC instead of cloud. I have to reasons for this.
#1 no matter how much NaCl or javascript engines are optimized, performance will always better for a game compiled to native code, running on your desktop. Lag and delay might be a concern, too.
#2 I want to own my software and my games. I don’t want to rent them and run them from the cloud or over the web.
+1 (Cannot vote)
I don’t see games like WOW coming too soon to the web, due to the huge game world and large numbers of players.
Even if downloading data while you play would be possible, the server cost to serve game data to all players will so high that will make it higly impractical.
I can see this being useful to small coop FPS type of games, though.
I’d like to see Firefox with the new Javascript engine benchmarked against Chrome. If performance is anyway near Chrome, I will happily return to FF after few years since I began to dislike Chrome tracking users and collecting personal information.
Chrome still the fastest browser but Firefox nightly is close: http://arewefastyet.com/
Did some quick benchmarks:
It seems that apart from asm.js which is fast, javascript engine in FF still lags behind V8 in Chrome.
I would be happier if Mozilla focuses on general JS performance than on adding support for asm.js which won’t see much use in the near future.
Edited 2013-03-29 12:36 UTC
People keep mentioning the issue of downloading all of the assets for a game every time you start it up… I thought this was meant to address situations like that:
http://diveintohtml5.info/offline.html