Epic zet html5-versie van Unreal Engine 3-demo online

Epic en Mozilla hebben de html5-versie van de Unreal 3-engine online gezet. De engine, geschreven in Javascript en WebGL, toont de map Epic Citadel uit de Unreal-games in de browsers. De gebruiker kan door de map heenlopen.

Er is nog niet de functionaliteit van de game: de demo is alleen bedoeld om te tonen dat in de browser geavanceerde graphics kunnen worden afgespeeld. De demo werkt het beste met Firefox 23 Nightly, zo staat op de demosite. De demo lijkt vooralsnog niet te werken in andere browsers.

Het porten van de engine naar Javascript en WebGL duurde vier dagen, zegt Epic. Het is onduidelijk of er ook plannen zijn om hele games in Javascript en WebGL te maken en speelbaar te maken via browsers, maar de benodigde software zou in elk geval binnen afzienbare tijd worden vrijgegeven. Mozilla is wel bezig met een technologie om games van Steam in de browser te kunnen streamen. De Unreal-engine is een van de bekendste engines voor games.

Unreal 3-engine in Firefox

Door Arnoud Wokke

Redacteur Tweakers

03-05-2013 • 21:53

88

Reacties (88)

88
83
55
4
1
11
Wijzig sortering
Anoniem: 360606 3 mei 2013 22:33
Ik vindt het er goed uit zien voor een browsergame, hij draait overigens op zo'n 42 fps (benchmarking) op 1600x900 op een mid-range gaming laptop.
voor een browsergame
Voor de duidelijkheid: dit is eigenlijk niet echt een browsergame zoals je die waarschijnlijk tot nu toe hebt gezien, op de afhandeling van bepaalde componenten na (bv. input, geluid). Het is de volledige versie die geschreven is in C++, maar dan vertaald naar JavaScript via Emscripten en de asm.js modus (een subset van JS-instructies die sneller kunnen worden afgehandeld).

Emscripten is een soort compiler voor LLVM bytecode (waar je oa. C++ naartoe kan compilen) waarmee JavaScript als output wordt gebruikt ipv de binaire code met instructies voor de processor die je normaal zou krijgen. Dit werkt zelfs door tot in het geheugenmanagement: dat wordt afgehandeld door een grote (JS-)array te gebruiken als massief blok met geheugen en alle pointers die je krijgt verwijzen hier naartoe.

Het is daarom te kort door de bocht om het "een browsergame" te noemen, want wat je ziet is qua bronmateriaal gewoon de volledige code die ook op andere platforms (native PC, consoles, mobiele apparaten) draait.

Dit systeem (compilen naar JS dmv Emscripten ipv naar binaire executables) zorgt ervoor dat ontwikkelaars zich in de toekomst misschien geen zorgen meer hoeven te maken over verschillende systemen (zoals ooit met Flash en 3D, de closed source Unity player, enzovoorts) omdat je zo altijd dezelfde codebase kan blijven gebruiken (geschreven in C++) en voor ieder platform met de beschikking over goede browsers je software kan draaien. Wat dit eigenlijk is, is een stap naar een toekomst zonder plugins en heel veel besparing van geld bij ontwikkelaars omdat deze eventueel niet meer voor ieder platform nieuwe code of "lijmcode" (zoals bv. bij Android met z'n JNI-interface) hoeven te schrijven.

Natuurlijk is dat nu nog even een utopie waar gebruikers en ontwikkelaars hand in hand vrolijk rondjes door het gras rennen, maar zoals je ziet begint het wel steeds interessanter te worden :)

[Reactie gewijzigd door Stukfruit op 22 juli 2024 15:00]

Anoniem: 145867 @Stukfruit4 mei 2013 14:56
Klinkt goed.. dat laatste. Dan kan ik mooie eindelijk overstappen naar een ander OS. Vast zitten aan Windows is niet zo fijn.
Heftig dat dit kan. Zal het zo even testen, maar het lijkt me wel veelbelovend. Nu nog support voor Webkit (die crashed momenteel)(uiteindelijk voor Android en iOS) en IE10 (WP8) waarna je aardig wat potentiële klanten erbij krijgt :)
Vooropgesteld natuurlijk dat hij ook daadwerkelijk kan werken in die browsers (performancewise)

[Reactie gewijzigd door Martinspire op 22 juli 2024 15:00]

Ziet er super gaaf uit hier zeg. Bizar dat dat kan in een browser! Ik ben benieuwd of we dit meer gaan zien in de toekomst :) Is natuurlijk wel erg handig!
Anoniem: 166774 @DennusB4 mei 2013 01:39
Bizar dat dat kan in een browser!
Niks bizars aan. Het is het 'gewone' renderwerk van de videokaart, alleen word de output naar de browser geredirect. Vraag me nu dus ook af waarom we dit nu pas hebben.
"Vraag me nu dus ook af waarom we dit nu pas hebben."

Allereerst, voor dergelijke webapps moet de browser beschikken over GPU-versnelling. Deze functionaliteit wordt pas sinds een jaar of 2 aangeboden in de verschillende browsers.

Ten tweede, HTML, Javascript en WebGL zijn inefficiëntere talen om een game in te schrijven dan bijvoorbeeld native C++. Met name Javascript is performance-wise een echte cockblocker. Bovendien zijn in WebGL niet alle grafische features aanwezig, zoals bijvoorbeeld DirectX 10 en 11. Ook zijn zaken als geheugenmanagement zeer beperkt beschikbaar. Daarnaast is de browser niet gemaakt om in te gamen.

Ten derde, het feit dat er meerdere browsers zijn, maakt het minder aantrekkelijk games te maken. Uit de test met de Unreal Engine blijkt al meteen het nadeel: het werkt alleen op Firefox en niet op Chrome en IE. Het ontwikkelen en testen voor meerdere browsers kost erg veel tijd. Bovendien zit je binnen de browser nog met verschillende versies.
Ze zijn inerdaad minder efficient, maar browserbouwers zijn ondertussen al enkele jaren bezig om de javascript engines steeds beter te maken, dat mag dus al minder gaan spelen. Dat WebGL achter loopt op OpenGL lijkt me niet zo vreemd en is volgens mij een verschil dat in de toekomst alleen maar kleiner zal worden.

Het feit dat er zoveel verschillende grafische kaarten zijn maakt ontwikkeling van games ook niet eenvoudig. Je zit net met standaarden om de ontwikkeling te vereenvoudigen. HTML5, javascript, WebGL zijn open standaarden. Het verbaasd me dan ook een beetje dat het enkel werkt op Firefox, het is dan vooral aan de browsermakers om hun implementatie na te kijken en na te gaan waarom het niet werkt en niet aan de gamedev om voor elk platform hacks te gaan voorzien.
[...]
Vraag me nu dus ook af waarom we dit nu pas hebben.
Omdat Microsoft dominantie had met IE en niks aan innovatie deed. Totdat concurrerende browsers de boel overnamen en met een hard tempo nieuwe technologie er door drukken.

Daarom ! Dus wil je innovatie? Kies dan alsjeblieft niet voor IE..... als die ooit weer dominantie krijgt gaat de boel weer op slot.
Heeft niet zozeer met MS te maken maar gewoon met het feit dat er nagenoeg geen concurrentie was. Als Google of Apple nu in een vergelijkbare positie komen kun je er donder op zeggen dat ze het ook rustiger aan gaan doen. Waarom veel geld en moeite stoppen in een product dat toch geen concurrentie kent?
Vergeet vooral niet dat het niet zo zeer (de nieuwere versie van) IE, maar dat het vooral de bedrijven zijn die weigeren hun OS te upgraden en ze nog gebruik maken van antieke versies van IE... Toegegeven, vroegere versies van IE waren ruk, maar dat is al ff niet meer zo of in elk geval in meer beperkte mate.

Firefox is op dit moment juist degene die van de standaarden af begint te wijken... Sure, ze hebben deze implementatie goed voor elkaar, maar dat is niet met alles zo!

Geplaatst door een tevreden chrome gebruiker, daar werkt WebRTC tenminste in ;)
net ff geprobeerd op palemoon 20.0.1-x64
werkte flex al koste het een beetje teveel geheugen dan voor mijn lief is 1.2 gig

als dit werkelijk de toekomst word dan zal er toch wat aan het geheugen moeten gebeuren
Inderdaad, we moeten allemaal nog meer hebben.
Dank, ben nu lekker aan het huishouden met de Harkonnen :)
Yep, heftig dat je een demo die gemaakt is voor de iPhone 3GS op de PC kan spelen. Dit is gewoonweg de verkeerde technologie voor 3D games. Plugins zijn 100x sneller met 100x meer features.
Anoniem: 91961 @Wolfos4 mei 2013 22:30
Wat een flauwe opmerking. Uiteraard is 't niet slim om CoD volledig in een browser te draaien met de huidige technologie, maar er is zeker wel een generatie games die gebruik kan maken van de mogelijkheden die dit biedt.

Flash games zijn toch ook bijzonder populair geworden? Die blonken ook niet uit in performance.
Dit heeft absoluut potentie.
Dit heeft absoluut potentie.
Wrong tool for the job imho.

Ik heb het net even in FF 20.0.1 geprobeerd (even geen zin om de nightly ernaast te installeren) en dat valt enorm tegen. 1280x800 resolutie, bagger graphics en bagger performance (op een GTX 285 gemiddeld 34.4 frames/second en blijft gewoon hangen zo nu en dan). Nee, voor de meeste games zou ik toch echt aparte clients adviseren. Ik merk het al met Mechwarrior Tactics en de vereiste Unity Player plugin, een vreselijke ervaring imho, veel liever een aparte client die niet afhankelijk is van je browser instellingen...

Een browser gebruik je om te internetten en niet om te gamen!

Edit:
@Esak: Een mobiel gebruik je inderdaad primair om te bellen, een smartphone is echter een samenvoeging van een mobiel en een pda. Ik ben ingestapt bij de eerste smartphones en het heeft imho 10 jaar geduurd voordat de smartphone 'volwassen' genoeg was zodat de rest van de crap weinig tot geen impact meer had op het primaire systeem, namelijk het bellen. Maar nog steeds, internetten op je telefoon is geen denderende ervaring imho.

Muziek beluisteren via de browser is imho ook niet heel fijn, YouTube is ook een slechtere ervaring dan gewoon via MPC en CCCP. En met Flash zijn ze al 17 jaar aan het hannesen, html5 is in de meeste gevallen ook niet denderend. Downloaden via de browser is ook weer niet ideaal zodra het bestand te groot wordt en/of de verbinding te onstabiel, een dedicated download manager (of torrent/usenet client) werkt veel betrouwbaarder.

Maar net zoals het leuk is om een simpel spelletje op je Smartphone te spelen als je in de trein zit, ga je niet 'serieus' gamen op je smartphone, daar is simpel gezegd het platform niet voor geschikt. Het is niet alleen de interface, maar ook nog eens de formfactor (beeldscherm, hoe je het houd, etc.). Zo is het ook met een browser, ik heb geen issue met een simpel spelletje wat je even doet als je eventjes niets anders te doen heb achter je PC...

Photoshop alleen in je browser, als dat gebeurt loopt 95% van de professionele gebruikers bij Adobe weg.

@Megamind: Ik heb geen idee of de Unity plugin daadwerkelijk slechter is dan een standalone versie van dezelfde game via Unity, simpel weg omdat ik momenteel alleen ervaring heb met de Unity webplugin en er geen standalone versie is van MW Tactics.

Wat je even vergeet is dat het grote verschil met een plugin en een 'schil' is dat de plugin werkt op een ander platform waar ook weer andere plugins mee werken. Mijn standaard 200% zoom in werkt bv. heel slecht met Unity en een hoop Flash implementaties (vreemd genoeg niet allemaal). Een standalone versie is (naast het OS) niet afhankelijk van het 3rd party platform waar het op draait en de 3rd party plugins die ook geïnstalleerd zijn.

@Athalon1951: We hebben niet zo heel veel aan die informatie als we niet weten op wat voor vid kaart dat draaid. Ik zie in ieder geval geen processor limitaties...

[Reactie gewijzigd door Cergorach op 22 juli 2024 15:00]

Een browser gebruik je alleen om te internetten en een mobiel gebruik je alleen om te bellen!

Met jouw visie zouden we nu nog alleen statische teksten kunnen lezen met een browser. Een browser is ten slotte niet om afbeeldingen te downloaden, muziek mee te beluisteren, video's mee te bekijken, toch?

Dit zijn prototypes. Dit zijn tests. Dit werkt nog niet perfect. Dit soort dingen zorgt er niet alleen voor dat je kan gamen in browsers maar ook dat programma's als photoshop direct in je browser kunnen draaien, dat is handig!

Ik haal trouwens gewoon 52 fps op 1440x900 met mijn zeer zwakke HD300 chip.

[Reactie gewijzigd door esak op 22 juli 2024 15:00]

Hij heeft ook wel een punt.

Als vervanger van flash games is dit geweldig.
Als game platform is dit echter nog steeds crap.

Maar er is een grote markt voor , ondanks ik het er mee eens ben dat een browser dient om te browsen en niet om te gamen , een GSM dient om te bellen , een DSLR dient om foto's mee te nemen en een smartphone al onze IT samenbrengt O-)
Dus jij wilt zeggen dat de Unity plugin slechter is dan de standalone versie van Unity? Een client = een schil, unit is een plugin, net als dat WebGL is.

Dit heeft zeker een toekomst om de eindeloze aantal Flash games te gaan vervangen.
Dan zou ik toch eens de nightly proberen hoor.
Ik haal misschien 'maar' een gemiddelde van 22,1 FPS, maar dan wel op een retina Macbook Pro met een simpel Intel 4000 graphics card.
EN met een resolutie van 1680 x 1050.
Geen freezes, liep al bij al vlotter dan ik verwachte na jou post.
Anoniem: 26447 @Cergorach3 mei 2013 23:37
[...]

Wrong tool for the job imho.

Ik heb het net even in FF 20.0.1 geprobeerd (even geen zin om de nightly ernaast te installeren) en dat valt enorm tegen. 1280x800 resolutie, bagger graphics en bagger performance (op een GTX 285 gemiddeld 34.4 frames/second en blijft gewoon hangen zo nu en dan). Nee, voor de meeste games zou ik toch echt aparte clients adviseren. Ik merk het al met Mechwarrior Tactics en de vereiste Unity Player plugin, een vreselijke ervaring imho, veel liever een aparte client die niet afhankelijk is van je browser instellingen...

Een browser gebruik je om te internetten en niet om te gamen!
[...]


Op Firefox 19.02 draait de demo hier 51,2 fps gemiddeld bij een resolutie van 1920 x 1080 en zonder te schokken.

[Reactie gewijzigd door Anoniem: 26447 op 22 juli 2024 15:00]

Allemaal een kwestie van tijd. Denk dat er straks voornamelijk in browser gegamed gaat worden. Ben ook trouwens best onder de indruk van wat er met een unity plugin allemaal al mogelijk is.

Wel leuk in dit kader de twee unity games (de eerste, trouwens erg geslaagde classic platformer is flash) die Disney heeft gelanceerd, mooie demo's wat mij betreft

http://disney.nl/wreck-it-ralph/games/
Anoniem: 166774 @Cergorach4 mei 2013 01:37
en dat valt enorm tegen.
20.1 hier op een redelijk standaard machine. Loopt compleet vloeiend zonder enig probleem.
Nightly wordt niet zonder reden aangeraden. Die heeft namelijk ondersteuning voor asm.js.
Ik begrijp niet dat je zo'n "compleet" (voor)oordeel hebt als je de juiste software (Nightly) niet hebt gebruikt omdat je daar geen zin in had.

Nightly (FF 23) heeft een totaal andere javascript motor dan FF20:
* verbeterde Ionmonkey
* nieuwe baselinecompiler
* en last but not least: Odinmonkey (asm.js)

Vooral dat laatste maakt een wereld van verschil: loopt de demo Bananabread en Unreal Engine haperend in FF20 in FF23 is het vloeiend.

[Reactie gewijzigd door Coyote76 op 22 juli 2024 15:00]

Niet alleen potentie, dit wordt de toekomst, je hebt straks maar 1 key nodig om de game die je hebt op alle platforms kunt spelen, console, pc, tablet, telefoon en tv.
Dat kan natuurlijk allang maar dat gaat echt niet gebeuren :) Op die manier lopen de makers alleen maar geld mis wat ze natuurlijk niet gaan doen.
Niet per se. Het HTML-platform targetten kan straks dus op PC, console, mobiel, tablet zonder significante porting kosten. Dus het wordt goedkoper en dan is het niet onrealistisch om ook minder te vragen...
Of om meer te verdienen...
Of om juist meer te besparen.

De techniek kun je ook toepassen op andere apps die tot een heden voor verschillende platforms een app moeten aanpassen.

Juist als dit meer potentie krijgt, zullen kleinere bedrijven meer kansen krijgen. En dat klinkt raar, maar als je naar de 'doorbraken' kijkt van de afgelopen jaren, dan zit daar veel klein software tussen. Angry birds is een voorbeeld, fued, etc. Dat is geen software waar een heel ontwikkelteam achter zit.

Ipv dat je zelf of een werknemer de hele dag moet letten op verschillen van verschillende platformen, en niet eens de fouten eruithaalt, kan de rustig meedoen in het denkproces oid.
besparen=verdienen
Veel geld zullen ze niet mislopen. Er zijn echt niet veel mensen die een spel op verschillende platformen kopen en spelen.
met uitzondering van consoles(game) en gesloten platformen... Maar hopen mag altijd.
Anoniem: 166774 @NLsandman4 mei 2013 01:40
je hebt straks maar 1 key nodig...
En je hebt straks dus ook nog maar 1 of 2 aanbieders van dit soort dingen... en dat is iets waar we NIET op zitten te wachten.
Ik zie mezelf geen FPS shooter op een tablet spelen. En ik denk dat producenten dat ook wel inzien. Je kunt een spel niet altijd optimaliseren voor meerdere platforms. Zeker als je het over grote verschillen hebt in de hardware en functionalteit daarvan. Dit zal voor alleen voor een bepaalde niche kunnen werken. Maar zeker niet voor het merendeel van de spellen.

En zoals hieronder al beschreven. Producten willen geld verdienen en exclusiviteit voor hun producten.
hmm hoe werkt dit dan? lijkt me om eerlijk te zijn beetje pre-rendered allemaal. Gebruikt m'n grafische kaart maar voor 6 procent, zet wel constant 1 core (i7 3630QM) op 60%+ dus eerder processor based graphics?

toch mooi dat dit nu al kan, zie hier de potentie wel van in, dit kan zeker de toekomst worden, gecombineerd met cloud-based grafische kaarten. In de toekomst als er overal een solide internetverbinding is kunnen wellicht game's gerenderd worden door bedrijven in hun servers.

Dit zou meteen het probleem van Game-pirating oplossen, als je de game-maker servers nodig hebt om de game te draaien. Maar dit is natuurlijk off-topic :9

on topic: zeer mooi, wel tot nu toe meer CPU gebaseerd, maar dit heeft zeker grote potentie. Vooral als je full-blown games op tablets of eventueel telefoons kunt gaan spelen.
Wss. enkel en alleen CPU bound omdat JavaScript zonder een nightly met ASM.js ondersteuning flink wat moeite moet doen om alles bijgebeend te houden. Op de nightly met ASM.js ondersteuning zou de engine op ca. 0.5x de snelheid van native code moeten komen, wat meer dan afdoende is om de Citadel demo op volle snelheid te draaien.
hmm hoe werkt dit dan? lijkt me om eerlijk te zijn beetje pre-rendered allemaal. Gebruikt m'n grafische kaart maar voor 6 procent, zet wel constant 1 core (i7 3630QM) op 60%+ dus eerder processor based graphics?
Verkeerde geconfigureerde WebGL in je browser? Of verkeerde/verouderde implementatie?
Prerendered? Je kunt er met WASD een de muis doorheen lopen hoor ;) Mja, het gebruikt WebGL dus als je een beetje grafische kaart hebt met OpenGL ondersteuning zou dit niet al te zwaar moeten zijn. Aan de CPU kant maakt het gebruik van C++ geconverteerd naar JS en daarna gecompileerd met JIT compilers in de browser - dat werkt wat minder vlot. Ik geloof trouwens dat deze demo al wel gebruik maakt van asm.js, dus om zo efficient mogelijk te werken moet je wel de Nightly van Firefox 23 gebruiken.
Ik ben benieuwd hoe snel dit geëxploiteerd gaat worden voor Facebook games. Het ziet er gelikt uit! En het draait best goed op m'n Macbook Pro late 2008 met GeForce 9400M 256 MB. Denk dat het nog te vroeg is om Quake te draaien in de FireFox browser :D maar ben onder de indruk!
Op de Unreal Engine zul je eerder Unreal Tournament zien ;)
@ Casper Quake draait al in een browser. Quake live :).

Net zelf ff firefox ervoor opgezet (browse met chrome). Wat vet zeg om te zien wat er nu al kan en werkelijk nog soepel ook.

Laat maar komen die handel!
Dat is niet waar, je hebt nogsteeds de client nodig, dus de browser doet eigenlijk niks. Nu heb je geen client nodig maar zit alles IN de browser.
Hoe zou iemand hier dan voor programmeren? Kan elke in unreal engine gemaakte toepassing online worden gedraait?
In principe kan alles geconverteerd worden naar JS + WebGL (met Emscripten). Of dat in de praktijk ook overal bij werkt is nog de vraag, maar je schijnt er niet heel veel voor aan te hoeven passen in de code.
hoe gaat die boot vooruit dan ?
Netjes, ik krijg op 1920x1080 een average fps van 55.6. Zeer acceptabel. Ik denk overigens dat dit te maken heeft met dat vsync aan staat en er soms een dipje in fps plaats vind bij het laden van een nieuwe scene. Hoe dan ook draait het prima en ziet het er erg netjes uit.
Jammer dat dit niet in Google Chrome werkt, want ik ben persoonlijk niet zo'n fan van Firefox. Maar alles op zijn tijd.

Op dit item kan niet meer gereageerd worden.