The Crew Ported from PC to PS4 in 6 months with 3 people.


Recommended Posts

With the basic porting complete, the Ubisoft Reflections team is now ramping up its staff in order to complete the PS4 game ready for the Q1 2014 release, but the core engineering effort in moving The Crew across to PlayStation 4 was accomplished in six months with a team of just two to three people working on it. Overall, Reflections felt that the process of porting over the PC codebase was fairly simple and straightforward.

 

http://www.eurogamer.net/articles/digitalfoundry-how-the-crew-was-ported-to-playstation-4

 

This bodes well for some decent PC ports and maybe some games that normally wouldn't have been ported to PC if a 3 man team can do it in 6 months they could put a few more bodies on it and do it quickly for relatively little cost.

 

Also something else to note:

 

"The PS4's GPU is very programmable. There's a lot of power in there that we're just not using yet. So what we want to do are some PS4-specific things for our rendering but within reason - it's a cross-platform game so we can't do too much that's PS4-specific," he reveals.

"There are two things we want to look into: asynchronous compute where we can actually run compute jobs in parallel... We [also] have low-level access to the fragment-processing hardware which allows us to do some quite interesting things with anti-aliasing and a few other effects."

 

They can't be talking about the PC so could the relatively slower X1 be holding back multiplatform graphics?

 

Asynchronous compute is something that the PS4 excels at, they have increased the queue depth from 2 to 64, they have designed it so that it can execute graphics and compute code in parallel rather than having one thread to wait for the other to execute and the PS4 has 18CUs that have this asynchronous compute compared to 12 on the X1 which doesn't have it.

Link to comment
Share on other sites

You completely misunderstood the article. The PC version was ported to the PS4 by a 2-3 man team,not the other way around. SMH

 

devs are using Windows and DirectX, then porting to PS4

 

 


The initial aim of our work was to get the PS4 version to feature-parity with the Windows version."

 

hell,developers are even using Microsofts tools like Visual Studio and the compiler is just converting DX code to PS4 compatible code.

 

 

 

For the PS4 developers, the use of the established Visual Studio environment proves to be a key benefit, and the extent to which Sony has acknowledged and supported cross-platform game-makers is self-evident. There are even options within Sony's compiler specifically added in order to increase compatibility with the Microsoft counterpart used in compiling DirectX 11 games.

 

It actually doesn't sound great to the PS4 platform that 3rd party games are built specifically for Microsoft platforms, then ported to PS4 by a few man team.

 

These developers are even saying the Sony tools suck,and if they don't take the time and use the lower level API,and do all the dirty work, then the game is not optimized at all

 

 


"Most people start with the GNMX API which wraps around GNM and manages the more esoteric GPU details in a way that's a lot more familiar if you're used to platforms like D3D11. We started with the high-level one but eventually we moved to the low-level API because it suits our uses a little better," says O'Connor, explaining that while GNMX is a lot simpler to work with, it removes much of the custom access to the PS4 GPU, and also incurs a significant CPU hit.

 

 


A lot of work was put into the move to the lower-level GNM, and in the process the tech team found out just how much work DirectX does in the background in terms of memory allocation and resource management. Moving to GNM meant that the developers had to take on the burden there themselves, as O'Connor explains:

 

 

the PS4 dirty port was actually running at only 10FPS compared to 30FPS of the PC version

 

 


At the Ubisoft E3 event, the PC version of The Crew was running at 30 frames per second, but the first working compilation of the PS4 codebase wasn't quite so hot, operating at around 10fps.

Link to comment
Share on other sites

Oops misunderstood the article. Still doesn't change the fact that PS4 is holding back because of Xbox One.

 

WTF?  Where does it say that anywhere in that article? 

Link to comment
Share on other sites

WTF?  Where does it say that anywhere in that article?

 

 

"The PS4's GPU is very programmable. There's a lot of power in there that we're just not using yet. So what we want to do are some PS4-specific things for our rendering but within reason - it's a cross-platform game so we can't do too much that's PS4-specific," he reveals.

"There are two things we want to look into: asynchronous compute where we can actually run compute jobs in parallel... We [also] have low-level access to the fragment-processing hardware which allows us to do some quite interesting things with anti-aliasing and a few other effects."

 

 

Sounds like there is a lot of stuff they can do with PS4 GPU but they can't because of Xbox One, X1 doesnt have asychronous compute.

 

As for vcfan I guess you missed:

 

 

The graphics APIs are brand new - they don't have any legacy baggage, so they're quite clean, well thought-out and match the hardware really well," says Reflections' expert programmer Simon O'Connor.

"At the lowest level there's an API called GNM. That gives you nearly full control of the GPU. It gives you a lot of potential power and flexibility on how you program things. Driving the GPU at that level means more work."

 

"The Crew uses a subset of the D3D11 feature-set, so that subset is for the most part easily portable to the PS4 API. But the PS4 is a console not a PC, so a lot of things that are done for you by D3D on PC - you have to do that yourself. It means there's more DIY to do but it gives you a hell of a lot more control over what you can do with the system."

 

"The other thing we did is to look at constant setting. GNMX - which is Sony's graphics engine - has a component called the Constant Update Engine which handles setting all the constants that need to go to the GPU. That was slower than we would have liked. It was taking up a lot of CPU time. Now Sony has actually improved this, so in later releases of the SDK there is a faster version of the CUE

 

If they put the effort in PS4 has more potential, or you can just do it the lazy way and use DirectX.

Link to comment
Share on other sites

Sounds like there is a lot of stuff they can do with PS4 GPU but they can't because of Xbox One, X1 doesnt have asychronous compute.

 

WHAT??? you still don't understand what youre reading. This has nothing to do with Xbox One. 3rd party games are written for PC first, not Xbox One, then ported down,and based on this development teams experience, the PS4 port was only running at 10FPS. How the hell is the Xbox One responsible for holding the PS4 back if the PS4 could only run the PC port at only 10FPS ? These guys have to dig down deep into the lower level API and use asynchronous compute just to get the game running at 30FPS. How do you expect them to do amazing things graphically if the game is only running at 10FPS? They have other stuff to worry about first.

Link to comment
Share on other sites

WHAT??? you still don't understand what youre reading. This has nothing to do with Xbox One. 3rd party games are written for PC first, not Xbox One, then ported down,and based on this development teams experience, the PS4 port was only running at 10FPS. How the hell is the Xbox One responsible for holding the PS4 back if the PS4 could only run the PC port at only 10FPS ? These guys have to dig down deep into the lower level API and use asynchronous compute just to get the game running at 30FPS. How do you expect them to do amazing things graphically if the game is only running at 10FPS? They have other stuff to worry about first.

Wow no way, they have to put in work to optimise it for the PS4 after using Microsoft development environment, who'd have thought.........

 

Read the article again instead of cherry picking the bad parts it goes on to explain there is a lot more powerful hardware and more potential with the PS4 hardware that they can't take advantage of because of MULTIPLATFORM.

  • Like 1
Link to comment
Share on other sites

 

 

 

Sounds like there is a lot of stuff they can do with PS4 GPU but they can't because of Xbox One, X1 doesnt have asychronous compute.

 

As for vcfan I guess you missed:

 

 

 

If they put the effort in PS4 has more potential, or you can just do it the lazy way and use DirectX.

 

You really don't understand how any of this stuff works, do you?  I like you how you keep parroting buzz words (asychronous compute) to "prove" you point.   :rofl:

 

From the article:

"What we didn't find out is how the Xbox One version is faring, or who is producing it. Our bet is on the Ivory Tower studio producing it in tandem with the PC version, owing to the use of the DirectX 11 API on two platforms. But Xbox One and PS4 both have much in common from an architectural standpoint, and questions we have about collaboration between the console teams resulting in optimisations common to both console versions remain unanswered for now."

 

Sure sounds like the XBOXone is holding the PS4 version back!!11111!!!!!11  :rolleyes:

Link to comment
Share on other sites

WHAT??? you still don't understand what youre reading. This has nothing to do with Xbox One. 3rd party games are written for PC first, not Xbox One, then ported down,and based on this development teams experience, the PS4 port was only running at 10FPS. How the hell is the Xbox One responsible for holding the PS4 back if the PS4 could only run the PC port at only 10FPS ? These guys have to dig down deep into the lower level API and use asynchronous compute just to get the game running at 30FPS. How do you expect them to do amazing things graphically if the game is only running at 10FPS? They have other stuff to worry about first.

It sounds a lot like the ports of Forsaken (another multiplatformer - in this case a Descent clone); it was written for PC first (in fact, targeting the GLide API first) then a generic D3D version, then the console ports were done last.  (Rather amusingly, while there was GLide API support in the demo, the finished PC game was D3D only.  While it made no nevermind for 3dfx owners, as the cards were still no-slouch D3D accelerators, it was very pleasant news for ATI and nVidia.)

 

In the case of XB ONE, the hardware is, in fact, little different from PC hardware (considering that it basically runs Windows 8 in a VM, that should surprise nobody).  The real hard work will come with optimization - not the basic porting.

Link to comment
Share on other sites

You really don't understand how any of this stuff works, do you?  I like you how you keep parroting buzz words (asychronous compute) to "prove" you point.    :rofl:

 

From the article:

"What we didn't find out is how the Xbox One version is faring, or who is producing it. Our bet is on the Ivory Tower studio producing it in tandem with the PC version, owing to the use of the DirectX 11 API on two platforms. But Xbox One and PS4 both have much in common from an architectural standpoint, and questions we have about collaboration between the console teams resulting in optimisations common to both console versions remain unanswered for now."

 

Sure sounds like the XBOXone is holding the PS4 version back!!11111!!!!!11   :rolleyes:

 

Read the freaking article, it says multiple times there is untapped potential in the PS4 and that there is stuff they can do with the PS4 GPU that they can't really use because the game is multiplatform, I'm pretty sure PC graphics cards are more than capable than PS4 GPU so that leaves one option, Xbox One.

Link to comment
Share on other sites

hell,developers are even using Microsofts tools like Visual Studio and the compiler is just converting DX code to PS4 compatible code.

 

Uh, what?

 

The compiler's job is to convert valid code into (in this case) valid x86(_64) machine code, it doesn't write additional code.

Link to comment
Share on other sites

Uh, what?

 

The compiler's job is to convert valid code into (in this case) valid x86(_64) machine code, it doesn't write additional code.

 

The compiler does more than converting to machine code. In this case, there is API translation just like macros and preprocessor directives prior to translation to machine code by the compiler  

Link to comment
Share on other sites

Wow no way, Microsoft development environment doesn't spit out optimised PS4 code, who'd have thought.

 

its a sony compiler.

 

 

Read the article again instead of cherry picking the bad parts it goes on to explain there is a lot more powerful hardware and more potential with the PS4 hardware that they can't take advantage of because of MULTIPLATFORM

 

hey,you really need to learn how to read. we are talking specifically about 3rd party games,not first party. We know first party games will run better than 3rd party games,because the game is targeted specifically for that hardware first. This isn't a problem. What the problem is, is because of incompetent tools from Sony,verified by these developers for this game, 3rd party games are looking like they will run like crap. 2-3 people doing the port,and initially the port is running very slow,so most of the PS4 "power" needs to be used just to get a respectable framerate. Hell,The Crew doesn't look like its even graphically intensive. 

Link to comment
Share on other sites

Wow no way, Microsoft development environment doesn't spit out optimised PS4 code, who'd have thought.

This is great for PC gaming. Games can be developed to the highest common denominator (PC) and easily ported to both consoles. This means more games for PCs and they won't be held back by being developed on the lowest common denominator. Better to scale down than to try and scale up.

 

Good for all gamers.

Link to comment
Share on other sites

The compiler does more than converting to machine code. In this case, there is API translation just like macros and preprocessor directives prior to translation to machine code by the compiler  

 

Got a source on that?

 

Because since you didn't qualify what exactly "PS4 optimised code" is, I'm not really inclined to take your word on it.

Link to comment
Share on other sites

Got a source on that?

 

Because since you didn't qualify what exactly "PS4 optimised code" is, I'm not really inclined to take your word on it.

its in the article

 

There are even options within Sony's compiler specifically added in order to increase compatibility with the Microsoft counterpart used in compiling DirectX 11 games.
Link to comment
Share on other sites

its in the article

 

That doesn't answer or address my question.

 

What is your basis for claiming that a (any) compiler is performing automatic generation of API call translation layers?

Link to comment
Share on other sites

That doesn't answer or address my question.

 

What is your basis for claiming that a (any) compiler is performing automatic generation of API call translation layers?

 

what is your interpretation of this

 

There are even options within Sony's compiler specifically added in order to increase compatibility with the Microsoft counterpart used in compiling DirectX 11 games.

 

DirectX is a set of APIs. Now why would a sony compiler be modified to increase compatibility in compiling directx games?

Link to comment
Share on other sites

what is your interpretation of this

 

DirectX is a set of APIs. Now why would a sony compiler be modified to increase compatibility in compiling directx games?

 

Possible interpretations could be a myriad of things, automatic authoring of a API call translation layer however is farfetched at best.

 

Think about it for a second, if Sony could write a compiler to that was capable of doing such a thing, why aren't there FOSS compilers to do the same on Linux (Win32, DirectX, etc)? Why would companies like Valve go to the effort of writing their own layers (togl) for their Mac/Linux ports when they could auto-generate it?

 

I think what is more likely is Sony have got some sort of ReactOS type thing going on with DirectX on the PS4.

Link to comment
Share on other sites

Possible interpretations could be a myriad of things, automatic authoring of a API call translation layer however is farfetched at best.

 

Think about it for a second, if Sony could write a compiler to that was capable of doing such a thing, why aren't there FOSS compilers to do the same on Linux (Win32, DirectX, etc)? Why would companies like Valve go to the effort of writing their own layers (togl) for their Mac/Linux ports when they could auto-generate it?

 

I think what is more likely is Sony have got some sort of ReactOS type thing going on with DirectX on the PS4.

 

how does wine work for 3d games under Linux? its just a wrapper for d3d calls to opengl. its not like this is something that's never been done before. just because its not in a compiler doesn't mean it couldn't be. what are these other things youre talking about that it could be? you asked on what basis I claimed those things. well,like I said,directx is an api,and if a compiler is modified to be compatible with directx code, what do you think that means? im not saying all directx code is translated though. maybe just areas that need a lot of optimization are done using the sony API.

 

there were 12,000 source code files,according to the developers. do you think 2 or 3 people translated all the api calls and tied everything together,and got the game running in 6 months? they obviously used some "help"

Link to comment
Share on other sites

"The PS4's GPU is very programmable. There's a lot of power in there that we're just not using yet. So what we want to do are some PS4-specific things for our rendering but within reason - it's a cross-platform game so we can't do too much that's PS4-specific," he reveals.

 

They can't be talking about the PC so could the relatively slower X1 be holding back multiplatform graphics?

 

Asynchronous compute is something that the PS4 excels at, they have increased the queue depth from 2 to 64, they have designed it so that it can execute graphics and compute code in parallel rather than having one thread to wait for the other to execute and the PS4 has 18CUs that have this asynchronous compute compared to 12 on the X1 which doesn't have it.

 

I wouldn't think that it's the XB1's fault in such that it has less power; rather I read it as saying that to achieve parity over all platforms they can't really do too much PS4-specific stuff at this moment.

 

The alternate explanation is that they can't target these PS4-specific features because because they're lazy they need to work on 3 platforms at once and the PS4-specific features are at this stage aren't worth it (can be because of lack of familiarity, immature dev tools, whatever).

 

But it's funny looking at this thread and seeing how two people reading the same words can form completely different opinions  :rofl:

Link to comment
Share on other sites

how does wine work for 3d games under Linux? its just a wrapper for d3d calls to opengl. its not like this is something that's never been done before. just because its not in a compiler doesn't mean it couldn't be. what are these other things youre talking about that it could be? you asked on what basis I claimed those things. well,like I said,directx is an api,and if a compiler is modified to be compatible with directx code, what do you think that means? im not saying all directx code is translated though. maybe just areas that need a lot of optimization are done using the sony API.

 

there were 12,000 source code files,according to the developers. do you think 2 or 3 people translated all the api calls and tied everything together,and got the game running in 6 months? they obviously used some "help"

 

You're muddling things. There is no such thing as "DirectX code" or even "OpenGL code" as far as a compiler is concerned, it takes the source and creates a binary. That's it.

 

If there are special Sony optimisations in the compiler going on, it's going to be targeted optimisations for the hardware platform - rather than the generally optimised compilers used on the PC.

 

It makes no sense to do porting in the compiler like that. It would be far more sensible to create an implementation of the DirectX API set on the PS4.

Link to comment
Share on other sites

This topic is now closed to further replies.