Epic voegt Xbox One- en PS4-ondersteuning toe aan Unreal Engine 4

De Unreal Engine ondersteunt vanaf nu de ontwikkeling van games voor zowel de Xbox One als de PlayStation 4. Update 4.1 van de Unreal Engine voegt ook ondersteuning voor Linux en SteamOS, Valves eigen Linux-distributie.

Epic kondigt het nieuws aan op de Unreal Engine-website. Niet alleen ondersteunt versie 4.1 van de Unreal Engine de next-gen consoles van Microsoft en Sony, maar ook de Morpheus, de virtualreality-headset voor de PlayStation 4 kan ingezet worden. Deze versie van de Unreal Engine en de bijbehorende editor zal echter in sourcecode-vorm beschikbaar komen, dus enige kennis van C++ is wel vereist. In een latere versie komt Epic met binaries, zodat ontwikkelaars niet zelf hoeven te compileren.

Epic heeft ook een upgrade gegeven aan de 'shooter game'-codesample voor de engine. Deze gaat nu door de certificatieprocessen van Microsoft en Sony en kan in de toekomst dienen als een voorbeeld van een Unreal Engine-basis die werkt op de next-gen consoles van de twee bedrijven. Unreal Engine 4.1 ondersteunt nu officieel Windows, OS X, iOS, Android, SteamOS, Linux, de Xbox One en de PlayStation 4, HTML5 en de Oculus Rift.

Helaas!
De video die je probeert te bekijken is niet langer beschikbaar op Tweakers.net.

Door Mark Hendrikman

Redacteur

24-04-2014 • 18:34

20 Linkedin

Reacties (20)

20
20
16
2
0
4
Wijzig sortering
Dat is wel knap gedaan. Echt een knap staaltje programmeren dan (als het allemaal waar is).
De eerdere engines (die uiteraard ook heel goed waren) werden pas in een later stadium "geconverteerd" naar andere platforms.

Heb zelf veel met m'n maat in UEd 1.0 en 2.0 spul gemaakt, toen nog onder Windows.
Maar als het al vanuit de box met andere OS'en kan tegenwoordig, dan alleen maar plusjes van mij.

Een PS4 draaait een heel ander OS dan een XB.
Ik ben een beetje uit de programmeer scene, maar dit is echt mooi.

Kan niet wachten om wat moois te maken met de nieuwe UEd
Ik heb de Unreal Engine 4 broncode onder ogen gehad (krijg je er namelijk bij), en het is een kwestie van wat vinkjes aan of uit zetten, en enkele regels code schrijven - en vooral veel testen.

De Unreal Engine 4 is gebouwd met platform onafhankelijkheid in het achterhoofd. Het compileren van UE4 gebeurd d.m.v de Unreal Build Tool, in plaats van direct via de IDE/compiler. Deze tool zorgt er voor dat de juiste preprocessor directives, dependencies, libraries, etc. ingesteld en gecompileerd worden. Per subsysteem en globaal per platform gebruikt de tool C# scripts welke de boel reguleren. (Op Linux/Mac werkt dat via mono.)

De engine bestaat uit erg veel verschillende onderdelen, en voor platform afhankelijke code praten ze tegen een abstracte platform API. Dus als je een netwerk verbinding wilt opzetten, of een bestand wilt lezen praten ze met de Unreal Platform API. Als je UE4 met de tool compileert voor de PS4, dan wordt de code van het netwerk subsysteem gevoerd met "UnrealPS4.lib" ipv bijvoorbeeld "UnrealWindows.lib".

Het toevoegen van een nieuw platform is dus een nieuwe configuratie voor de Unreal Build Tool, en het schrijven van enkele regels platform afhankelijke code. De Xbox is onder de motor kap voor een groot deel gewoon de Win32 API, waarbij bepaalde - vooral legacy - APIs niet aanwezig zijn. En de PS4 is als ik het goed heb Linux onder de motorkap.

Omdat Unreal Engine 4 ondersteuning heeft voor Windows, Linux en Mac is het toevoegen van nieuwe platformen welke hierop gebaseerd zijn redelijk eenvoudig. Er gaat vooral veel tijd zitten in het testen, en het schrijven van enkele regels extra platform afhankelijke code.

[Reactie gewijzigd door ThomasG op 25 april 2014 00:37]

En de PS4 is als ik het goed heb Linux onder de motorkap.
PS4's Orbis is gebasseerd op FreeBSD. Console's zullen denk ik vanwege de licenties niet snel Linux gaan gebruiken. De GPL licentie komt Sony denk ik niet echt goed uit.

[Reactie gewijzigd door HerrPino op 25 april 2014 09:08]

Valt wel mee hoor. Wat je een beetje doet is bijvoorbeeld dit:
#ifdef ANDROID
//Android code
#else if defined __Win32
//Windows code
#endif


Erg moeilijk is dat niet, maar wel veel werk. Veel rendering dingen zijn redelijk platform dependent, dus die moeten voor ieder platform opnieuw worden geschreven, en dan door de rest van de engine moeten die platform specifieke functies worden aangeroepen door een soort interface dat er dan zo uit ziet bijvoorbeeld:
function loadimage(filename){
#ifdef ANDROID
return Android_loadImage(filename);
#else
//etc
}

Minder makkelijk is het wanneer je ook architecturen als PowerPC moet ondersteunen, die zijn namelijk big endian waardoor binaire bestanden niet direct compatible zijn.

Bron: ik heb zelf een engine geschreven die momenteel op 3 platforms draait.

[Reactie gewijzigd door Wolfos op 24 april 2014 19:55]

Dat zou niet echt praktisch zijn. Beter definieer je featuresupport per platform in een soort config file en kijk je in je code of die ene feature aan of uitstaat. Scheelt ook werk als je er een platform bij wilt supporten: gewoon een entry in je config file en klaar. Hoef je niet je hele code door om het platform toe te voegen.
Ik heb het eerder over API's. Op de PS4 kan je bijvoorbeeld geen DirectX gebruiken. Je kan niet even PS4 support toevoegen met een config file.
Maar 'else if' statements door je hele code is niet echt praktisch. En platform toevoegen zal dan bij elke 'else if' een wijzigen opleveren.

Beter gebruik je interfaces die voor elk platform een implementatie bevatten. Zodat je alleen met configuratie de juiste implementatie voor een platform aangeeft zonder een 'else if' te wijzigen...
Dus wat jij voorstelt is een paar defines opstellen, bijvoorbeeld #define DIRECTX en dan #ifdef DIRECTX te gebruiken? Dat is eigenlijk wel handiger ja... Dan hoef je alleen in 1 bestand voor ieder platform de features te definieren.
Kan de engine gebruikt worden door indie ontwikkelaars om games te maken? Want dat zou dan wel leuk nieuws zijn.

Edit: Even zelf opgezocht en blijkbaar wel. Het is zelfs héél bereikbaar voor developers met een lage prijs van 19$ per maand (+5% inkomsten)

[Reactie gewijzigd door runelaenen op 24 april 2014 18:49]

Ja, maar voor Xbox One en PS4 ontwikkeling heb je een devkit nodig.
Ja, maar voor Xbox One en PS4 ontwikkeling heb je een devkit nodig.
Als ik het goed heb begrepen is de xbone zijn eigen devkit. (Voor kleine clubs met weinig budget, natuurlijk niet zo goed als een volwaardige devkit, maar een alternatief)

De ps4 devkit kost 2500 dollar, maaaaaar, naar blijkt geeft Sony ze zonder moeite in bruikleen voor een jaar aan indie developers, tegen absoluut geen kosten.

Bron? Bron!
Anoniem: 187147
@runelaenen25 april 2014 08:04
Ik heb uit andere bron gelezen dat all ontwikkelaars die bij @IDxbox aangesloten hebben, kunnen gratis Unreal 4 krijgen.
Mooi dat Epic zo breed zijn engine ondersteund, het is natuurlijk in hun eigen voordeel om zoveel mogelijk platforms te ondersteunen maar je ziet genoeg leveranciers/developers die een ander gedachtegoed er op na houden. Kan niks anders zeggen dan hopelijk steken ze andere bedrijven aan om een soortgelijke trend in te zetten.

Als je er over nadenken dan moet de engine van Epic ook enorm schaalbaar zijn als het ingezet kan worden voor zulke verschillende systemen (van iOS/Android) naar Windows/OS X.
Anoniem: 548504
24 april 2014 19:19
En dan nu de nieuwe Gears of War serie erbij ;)
Wel opvallend laat eigenlijk, die ondersteuning voor de PS4 en Xbox. Zeker als je bedenkt dat Daylight over 5 dagen al uit komt voor de PS4, een game die op de UE4 engine draait:

http://en.wikipedia.org/wiki/Daylight_(video_game)

Epic heeft een poos geleden al eens aangekondigd zich minder op eigen game development te richten (zie ook vertrek medeoprichters van Epic; Capps en Blezsinski) en meer op ontwikkeling, support en licensing van de UE4 engine, dus mooi om te zien dat het nu op zoveel platforms draait en ook betaalbaar is gehouden voor Indie developers.
Het ziet er allemaal zo vet uit, en zoals ze in dat filmpje laten zien is het een piece of cake.... maar dat is denk ik een illusie, of niet? Want als je een totale programmeer n00b bent, zul je wel niet ver komen out of the box.

Ik zou graag willen leren om games te maken, ideeen zijn er, maar de skillset niet =( misschien ben ik ook iets te.... ongeduldig. The Matrix zou ideaal zijn voor mij ("I know UE4")

Maar ik hoop wel dat deze engine voor wat verbeteringen gaat zorgen op de Xbone, op dit moment is het grafisch niet zo spectaculair. En nee, ik wil met deze zin geen flamewar beginnen.
het 'idee' is dan vaak ook het makkelijkste ;)

Maar ook als niet-programmeur kan je best een simpel spelletje voor elkaar krijgen; je moet er gewoon veel tijd in steken. Maar de benodigde tijd (en kennis) zal toenemen naar mate zaken complexer worden.
Ps4 en xbox one niet een beetje laat of ligt dat aan mij?
U4 support voor Ps4 en X1 is er al (veel) langer; maar is nu pas publiekelijk beschikbaar.

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee