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

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 9 augustus 2024 23:30]

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 9 augustus 2024 23:30]

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 9 augustus 2024 23:30]

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 9 augustus 2024 23:30]

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.