12 ms·
Unreal Engine in JavaScript/HTML5 – Citadel demo
- shawndumas 13y agoI love the "try anyway" option!
- dguaraglia 13y agoDoesn't work on latest stable Chrome on OS X though :(
- skore 13y agoThe "Compiling Javascript" loader takes way too long (at least on my system) to not give any indication as to how long I will wait or whether it's still doing anything. At least a "this might take up to X minutes". Demo itself ran halfway ok, clicking on 'Benchmark' (which I had to guess was in the upper pulldown) immediately froze everything for me (Firefox on Kubuntu). Still: I do appreciate a demo that even kinda-sorta works on gnu/linux.
- epocsquadron 13y agoI've found it works almost flawlessly on ArchLinux 64bit with the standard Firefox package. Only one minor issue with the flag in the wind going all over the place, but that's probably the fault of open source radeon driver. It is very refreshing to see something cutting edge work on linux.
- azakai 13y ago> The "Compiling Javascript" loader takes way too long (at least on my system) It is actually both downloading and compiling during that time, and probably spending far more time in the download. It would be nicer if the text said "retrieving code" as opposed to "compiling code" at that point. edit: looks like the demo site was just updated, the message is better now :)
- voidlogic 13y ago>>Still: I do appreciate a demo that even kinda-sorta works on gnu/linux. I'm using Firefox 20 on Ubuntu 12.04/amd64 and everything works flawlessly.
- jfaucett 13y agoI love the fact that Mozilla keeps pushing javascript to its limits. They seem to be doing a lot of things really well lately, this is awesome!! Plus you have Firefox OS, which pushes web-standards to native mobile. Now I just wish the devtools would get up to paar with those on chrome/chromium and I'd be switching back to FF in a heartbeat. I wish google would stay on board with JS since they have the engineering power to do a lot in this area, but to me it seems after V8 they've kind of abbonned JS in favor of Dart (As oppossed to supporting asm.js). For instance, I just did the "try anyway" in chrome 26.0 linux and everything crashed. Did anyone get it working in chrome?
- alec 13y agov8 doesn't look abandoned to me: there have been 19 commits so far today to the public v8 repository. https://code.google.com/p/v8/source/list https://code.google.com/p/v8/source/list
- eslaught 13y agoFrom the FAQ: - Chrome currently crashes, but is expected to be resolved by the Chrome team soon. http://www.unrealengine.com/html5_faq/ http://www.unrealengine.com/html5_faq/
- tomwalker 13y agoI wish I had read that first :/ Crashed my whole system Chromium 25.0.1364.160 Ubuntu 12.04
- itistoday2 13y agoThis shouldn't be possible if the OS is written correctly. :-\
- drmr 13y agoHe's on Ubuntu. Anything is possible to make it crash.
- dreen 13y agoThis is awesome! I wished I could run cause its slow to walk around but then I discovered you can alt-tab to another window and keep the event for W active
- dreen 13y agoOK, just discovered you can double click for the dude to walk over there too ;p edit: although there is no path finding
- deleted 13y ago[deleted]
- dreen 13y agoi didnt downvote you but ive got a 7970 and its maxing out the 60fps limit, the graphics look pretty nice too.
- deleted 13y ago[deleted]
- dreen 13y agonot that i claim this is the solution to your problem but they do talk about how to cap the fps in the faq
- azakai 13y agoI get a very stable 60fps on Firefox Nightly, using Intel graphics on Linux (typically a slow combination). The main difference are the optimizations currently on Firefox Nightly. They'll be in a stable release in just a few months or less.
- dguaraglia 13y agoAs someone who grew up in a time where you had to tweak your config.sys and autoexec.bat files so that you could get a few extra FPS on Duke Nukem 3D, I can tell you: this is pretty freaking amazing.
- deleted 13y ago[deleted]
- jf 13y agoWhat version of Firefox did you use?
- deleted 13y ago[deleted]
- snarfy 13y agoIt doesn't work for me. I downloaded Nightly using the provided link, but when I open the URL it still says unsupported browser. It also doesn't have the option to 'try anyway' like Chrome does.
- vehementi 13y agoYup, same here.
- TazeTSchnitzel 13y agoUpgrade your graphics drivers.
- drawkbox 13y agoDefinitely awesome, still a while before this is usable in the market (across many browsers) and load times seem longer than Unity/Flash. I can't wait until browser support of emscripten/asm.js is better.
- tfb 13y agoThis ran surprisingly well on my 3+ year old Asus laptop with integrated graphics. By surprisingly well, I mean I doubt I ever got over 30 fps (probably 15 fps on average) but there were little to no hitches when loading new areas. I wouldn't be able to play a fast paced shooter like this, but I could see it being more than tolerable for playing a slow paced role playing game or something in the browser, with the added ease of connecting with other players, possibly MMORPG-style. On a side note, it'd be nice to make it capture the mouse instead of having to drag it.
- alexvr 13y agoI'm impressed. But I wish they modeled the citadel after Hogwarts.
- fosap 13y agoControlling the spectator is remarkably bad. I hope this is not how i am supposed to play video games. Even Dead Space 1 is better, and that was so bad i could not stand it for more than 30 minutes.
- TazeTSchnitzel 13y agoWell, unusually, this demo isn't using the Pointer Lock API to do normal FPS-style controls. It's fully possible to do them, but this demo doesn't for some reason.
- wlesieutre 13y agoIt's using the control system from the iOS version, which is what Epic Citadel was originally a demo for.
- TazeTSchnitzel 13y agoI noticed that. It makes sense, since iOS is an OpenGL ES platform and WebGL implements OpenGL ES.
- kevincoughlin 13y agoFor what it's worth, I was able to navigate fine using WASD and the arrow keys on my laptop
- deleted 13y ago[deleted]
- daemonfire300 13y agoThe question I always ask when I see this is: Why? Why do you put serious effort into a technology which is perfomance wise years behind. Why do we take steps back, just because "it's in the browser" => "now it's cool".
- sprayk 13y agoLooks cool, but crashed X w/ opensource radeon drivers.
- rikacomet 13y agoNot working on chrome? UNREAL!
- CamperBob2 13y agoLooks OK, can't even begin to get used to the controls.
- crankycoder1975 13y agowe need Louis CK here: "You're in a BROWSER!"
- frakkingcylons 13y agoI just want to emphasize for Chromium users that if you try to run this, it might crash, and crash hard. I had to reboot my system.
- deleted 13y ago[deleted]
- saejox 13y agoThey certainly have the googliest eyes.
- oftenwrong 13y agoVery cool. Unfortunately my firefox segfaulted about 10 minutes into my exploration. FF nightly 23.
- asperous 13y agoIf you aren't on firefox, you can enjoy the same demo in flash. http://www.unrealengine.com/flash/ http://www.unrealengine.com/flash/
- Oxxide 13y agothanks for this.
- grayrest 13y agoDear lazyweb, Is anybody able to get it running on android? The nightly has both asm and webgl but is showing up as unsupported (and not just doing UA sniffing).
- grayrest 13y agoI asked via twitter: https://twitter.com/vvuk/status/330119715546624000 https://twitter.com/vvuk/status/330119715546624000 some known bugs that cause us to use way too much transient memory while loading. Fixes incoming.
- just2n 13y agoI take issue with calling this JavaScript/HTML5. This is powered by asm.js. The source is emphatically NOT JavaScript, it's a subset that's meant to be a target for compilation (like a bytecode in .NET and the JVM) and is treated entirely differently from JavaScript by the JIT. We don't call everything that runs on .NET C# nor everything that runs on the JVM Java. Additionally, asm.js is not part of HTML5. It's interesting, and this demo is cool, but it's not JavaScript/HTML5.
- elisee 13y agoEven though it's using JavaScript as a kind of bytecode, it is just JavaScript / HTML5 (and some CSS, but that's pretty anedoctical I guess). Asm.js is a subset of JavaScript. As soon as Chrome fixes the crash, it'll run in a browser that supports just HTML5 (for presenting the page / the DOM / the canvas) and JavaScript with no special asm.js optimizations, and we'll have to see how fast/slow it is then. To correct your analogy: it'd be like using a subset of C# as the bytecode rather than a language. It's still actual C#, it's not just .NET bytecode, but it's being used differently.
- CmonNoReg 13y agoI wouldn't write a large-scale game/engine in byte code. It is effectively a C++ demo.
- just2n 13y agoI understand that. Take a read of this: http://mrale.ph/blog/2013/03/28/why-asmjs-bothers-me.html http://mrale.ph/blog/2013/03/28/why-asmjs-bothers-me.html. I have a lot of respect for Egorov, and I agree with his views on this matter quite entirely. The sole benefit of embedding a bytecode in a language is that you get the side effect that it can run anywhere that language runs. But in general, this implies performance penalties, especially when the language is relatively slow to begin with. But in this case, this demo is made usable (ie: the impressive part) by writing a compiler specifically for the bytecode itself. So it works well in spite of the fact that it's a bytecode embedded in JS, not because of it. The really cool things about this demo are precisely 2 things: 1. asm.js makes running C++ code that would render to OpenGL in the browser a possibility, and with relatively good performance. Kudos to Mozilla. 2. It runs on browsers that don't know about asm.js, but it's effectively an emulated machine, and it's slow. I just take issue with calling this an example of what JavaScript/HTML5 can do. I think seeing an application written in JS using WebGL or Canvas as something much more impressive, and there are Q3 renderers that are natively JS that run with amazing performance in the browser. This is just dressing up the fact that turing completeness is a thing and calling attention to it. The real thing to get from this demo is that there are enormous benefits to having a bytecode for the web over trying to optimize a fully dynamic language like JS. I feel like that is relatively lost by the title.
- ineedtosleep 13y agoRan this on a laptop on Firefox 20 (stable) with Bumblebee and it's surprisingly impressive and smooth. I have a gaming desktop at home that runs all new games at 50+ FPS, but for some reason looking at graphics that a late-era PS2/early PS3 game would have _in a browser_ is more impressive than running a game like Crysis 3 for the first time.
- dombili 13y agoI'm on a pretty old laptop and this runs extremely well on Windows 7 (using Nightly). I also tried it on Xubuntu 13.04, but I couldn't get it to run (I tried it on Chromium and Firefox). As for the demo, I'm stunned. It's incredible.
- theon144 13y agoI'm on a pretty new (if a bit budget) desktop, and during the benchmark I had the FPS drop to 16 during the flythrough of the streets :\ Still, it's pretty amazing.
- CmonNoReg 13y agoSo it basically means that C++ got another reasonable compilation target. Not much to do with applying JavaScript to large-scale games. Also it is not HTML 5, it is HTML FF23.
- ndesaulniers 13y agoFactually, all code emitted from emscripten is JavaScript. It may look funny with all the bitwise operators that are barely ever used by web developers, but it's just JavaScript. It doesn't run correctly in Chrome right now because they have issues with their JavaScript environment not supporting large numbers of variables for a given context. It doesn't run in IE because IE doesn't support webGL. Both of these will be fixed in the future.
- an_honest_idea 13y agoWhat's the point of having these massive javascript virtual machines & webgl systems in our browsers? How does having a separate implementation of a specification help us build a safer, more open web? My theory is that Mozilla and Google are in a race to develop the most advanced html5 engines because they know that if a killer html game or app gets developed in their browser, everyone who wants to use the app will switch to them while the other implementations tries to catch up. It will also prevent new browsers from trying to pop up, unless they simply fork and try to keep up with one of the two major engines. Google and Mozilla know they can outpace any competitors that are trying to innovate in the web space by having the "latest" html5 features integrated. In example, unless Microsoft pours a bunch of money into it, or Internet Explorer forks Mozilla or Google, they can pretty much count that competitor out. Is this supporting an open web? What's the problem with focusing on open source plugin virtual machines that can work in every browser regardless of that browser's version?
- CmonNoReg 13y agoIt is basically as if Flash Player became a browser. Exactly, an open source standardized VM would be ideal, then you would have a choice of languages as well.
- ndesaulniers 13y ago> What's the point of having these massive javascript virtual machines & webgl systems in our browsers? Because the safety model of JavaScript has been sound for the past few years. > How does having a separate implementation of a specification help us build a safer, more open web? What seperate implementation of what specification? If you're referring to asm.js, asm.js is just JavaScript, any browser can run it. The "specification" is a gift to other engine implementers to super charge evaluation of compliant code. > Is this supporting an open web? http://asmjs.org/spec/latest/ http://asmjs.org/spec/latest/ http://code.google.com/p/v8/issues/detail?id=2599 http://code.google.com/p/v8/issues/detail?id=2599
- deleted 13y ago[deleted]
- polutre 13y agoOn Firefox 20 on Windows on my 2500k with a 7970 it seems CPU bound and can only achieve 43fps benchmark at 1920x1200, while having some clear artifacts from lack/too little texture anisotropy on the floor and antialiasing issues. Also, the textures are not fully detailed when looking directly at the floor and walls. If this is supposed to be a full quality benchmark (ala Unigine Heaven when it came out), it needs to improve.
- Offler 13y agoFF 20 does lack the asm.js integration.
- deleted 13y ago[deleted]
- arbult 13y agoFirefox Nightly is indeed much better CPU-wise, keeping 60fps with around 80% single core usage at most. However, it still has poor graphics, with low quality textures, low/nonexisting anistropic filtering and no AA or bad AA. Also just noticed that stuff like bracers that should be rounded (using GL 4 hardware tessellation) is not and has visible polygonal edges. Not really a great showing as a demo.
- asadotzler 13y agoYou got a better demo that runs in a web browser without plug-ins?
- MatthewPhillips 13y agoThis is so awesome that I never want to see another WebGL demo again. This one proves it; you can make awesome games in WebGL. From now on I only want to read about non-demo WebGL games that are in development with a real release date.
- deleted 13y ago[deleted]
- CyberDroiD 13y agoI sense an axe grinding...
- HNSucksAss 13y ago"This browser is not supported." Welcome to the '90s.
- Rinum 13y agoThe biggest issue I see is with distribution. For example: I'm not a fan of DRM, but there's nothing preventing anyone from downloading the game and selling/giving away copies with ease.
- lukifer 13y agoMMOs solve this extremely well: you pay for access to the world, content, and community, not for the code.
- pjmlp 13y agoExcept they have a binary client, not a builtin debugger.
- TazeTSchnitzel 13y agoAsm.js is pretty damn binary-like. Good luck debugging that.
- jebblue 13y agoAlthough I'm not a fan of programming in JS, this is pretty darn cool, got 19 FPS on Ubuntu 12.04 with regular FF from the repo.
- ahoge 13y agoIt's written in C++.
- ndesaulniers 13y agoOver a million lines of it!
- martin_ 13y agoI wonder why they're using jQuery 1.5.2, which is nearly 2 years old?
- deleted 13y ago[deleted]
- path411 13y agoDoesn't really matter for the demo. The demo is just all native. You don't really need jQuery when working with canvas.
- oddshocks 13y agoAw yea that was so cool! It slowed down my box to a dying crawl and then asked to store a bunch of data on my local machine! Nice!
- Oxxide 13y agotry the flash version. it's pretty goddamn awesome.
- matthew-wegner 13y agoThis is actually very old demo ported to the browser. The original Epic Citadel was/is an iOS demo released in September 2010. It runs well on an original iPad: http://en.wikipedia.org/wiki/Epic_Citadel http://en.wikipedia.org/wiki/Epic_Citadel Comparatively, this runs a little sluggishly on a MacBookPro8,2 (early 2011).
- yottabyte47 13y ago"very old"
- matthew-wegner 13y agoHeh, sure. But it was a demo for the original iPad, which is easily a quarter of the performance of current iOS devices.
- ricardobeat 13y agoDude. (sorry) This is Unreal Engine, with physics, cloth simulation, particles, light & glare effects. It's not C++ on Native Client or a plugin, it's running in javascript. Just yesterday you couldn't draw a circle on a 2d canvas at 30fps.
- matthew-wegner 13y agoIt's probably a subset of the Unreal Engine. And it only works in Firefox, and even then only very well in Firefox Nightly. Those points aside, though, this is pretty amazing. I fully expect multiple engines to target HTML5 in the same way Unity/Unreal/etc were cross-compiling for the Flash runtime. It's just not quite there yet... (And it's good that demos like this exist to put pressure on browsers to fully support them).
- BrendanEich 13y agoNo, not a subset. It's UE3 cross-compiled by Emscripten from ~1MLOC of primary C++ source. Some configury to use OpenAL (mapped to WebAudio), and of course OpenGL-ES (mapped to WebGL). /be
- tjbiddle 13y agoVery impressive. As an FYI - You don't need to click on the screen; ASDW for movement and arrow keys for screen rotation works.
- kirbyk 13y agoI actually just installed Firefox for that. Totally worth it.
- WalterSear 13y agoThat crashed firefox on my macbook pro even faster than I thought it would.
- jayarcanum 13y agoWhy do you even need this engine when the beautiful physics of the Quake 3 engine already have roots in HTML5? You do not, that's the answer.
- whiddershins 13y agoAbsolutely awesome.
- vrodic 13y agoNot directly related, but highly relevant: IE seems to be getting WebGL support: http://www.theverge.com/2013/3/30/4165204/microsoft-bringing-webgl-support-internet-explorer-11-windows-blue http://www.theverge.com/2013/3/30/4165204/microsoft-bringing...
- chenster 13y agoIt won't load. It stucks infinitely at "Loading Data...".
- Bryan22 13y agoI was really impressed by this, but is it actually a game, or just walk around and check out this cool thing we made?
- hpaavola 13y agoSome stats from the benchmark running Windows 8 and Ubuntu 13.04 on Asus Zenbook UX21A (Intel HD Graphics 4000, Intel Core i7 3517U, 1920x1080): OS Browser Avg. FPS Min FPS Win8 Fx 20 26 16 Win8 Fx Nightly 46 34 Ubuntu 13.04 Fx 20 17 16 For me those numbers tell that if ams.js does not catch on in other browsers, browse based games just will not fly. Also, graphics drivers on Linux still suck and that's why I still need to double boot.
- cowls 13y agoThis crashed my i7 windows machine :\
- kalleboo 13y agoWhat continues to impress me about these demos is that JavaScript has gone from "not useful for much more than form validation" to "can compile and execute a 52 MB block of what's basically assembly code". 52 MB of JavaScript is... a lot (even if half of it looks like data tables of some kind)
- Esarahs 13y agoRunescape got a full MMORPG running in HTML5. They currently have a beta for several players also.
- ep103 13y agoWhere is the source? I would love to learn how they did this