Crytek on PS3/X360 (+ more - great read)

c0_re said:
Sounds to me like hey are saying the PS3 is much more complex to dev for that they need to build it's own engine from scratchin order to take advanage of Cell's strengths.

Well it sounds like some of it will be specific to PS3, from scratch perhaps. Not entirely though.

c0_re said:
This is no surprise to me, it's widely excepted that developing for Cell is going to be easily more difficult than PC or 360 and goes along with what the Valve guys said the other day on 1up.

Except he sounds a little happier to do it ;)
 
But the point being that Crytek thinks that the effort is worth it. They should be able to get more features into the PS3 CryEngine than the XB360 or PC versions.

Either that, or get a minimum level of performance (number of simultaneous AI characters, view distance, physics effects) that's higher on PS3 than competing platforms.

I still wonder how PS3 is going to pan out. So far the demos of SPE power have all been based on "doing one thing" across the SPEs, whether that's raycasting, water-physics, explosion physics etc. When the SPEs are competing with each other for access to main memory in "randomised" game-world scenarios, that'll be when it gets "interesting"...

Jawed
 
Titanio said:
Is there a specific part that makes you think that? Not sure, but it sounds like they're going to have a somewhat seperate engine for PS3 to take advantage of it fully.

I read through it again and Im definitely jumping the gun there. You're right, it seems more seperate than necessarily base. Still its interesting that PS3 is being prioritized in some fashion, especially for a PC developer with so many conversions on their plate (32 bit, 64 bit, single core, multi core). It'll certainly be intriguing to see how their PS3 CryEngine relates to the rest of the more "straightforward" conversions.
 
Jawed said:
But the point being that Crytek thinks that the effort is worth it. They should be able to get more features into the PS3 CryEngine than the XB360 or PC versions.

Either that, or get a minimum level of performance (number of simultaneous AI characters, view distance, physics effects) that's higher on PS3 than competing platforms.

I still wonder how PS3 is going to pan out. So far the demos of SPE power have all been based on "doing one thing" across the SPEs, whether that's raycasting, water-physics, explosion physics etc. When the SPEs are competing with each other for access to main memory in "randomised" game-world scenarios, that'll be when it gets "interesting"...

Jawed


Highly unlikely, if a game came out on all 3 platforms(same story line gameplay features) your gonna get the most bells and whistles on the on the PC verison I don't care what kind of magic fairies people think the cell is going to pull off. A game on all 3 platforms will be the "best"(yes I prefer console games) on PC because of the flexibuility and openess of the platform. Now on the flipside you would think the PS3 will have the best\most features since eventually it will have the biggest install base of all 3 systems, but unless Sony can make the system easy to develope for I think this is going to take some time to happen.
 
I disagree with that. The Rubber Duck demo showed something, SPE's, PPE's, I dunno what, processing
  • fluid dynamics
  • Rigid Body physics
  • fabric simulation including transforming meshes to add damage
  • image processing the EyeToy captured image to determine the glasses virtual 3D positions T&L and rasterization of the graphics
We've all seen the slides with labels showing what's being processed. I think the visuals were all Cell based but memory'es hazy and though I saw the screenshot recently I don't know where to look for it now! Anyhow, I don't see that in the LOD demo there was only one thing like fluid dynamics or even physics, though there wasn't much realtime game happenings, especially noticeable was a lack of AI. Oh, except that was shown in the Getaway. But we don't have details on what the SPE's were doing in these demos so don't know how well their being used.
 
c0_re said:
Highly unlikely, if a game came out on all 3 platforms(same story line gameplay features) your gonna get the most bells and whistles on the on the PC verison I don't care what kind of magic fairies people think the cell is going to pull off. A game on all 3 platforms will be the "best"(yes I prefer console games) on PC because of the flexibuility and openess of the platform. Now on the flipside you would think the PS3 will have the best\most features since eventually it will have the biggest install base of all 3 systems, but unless Sony can make the system easy to develope for I think this is going to take some time to happen.

Actually it's the flexibility and openness of the platform that often limits a lot of its features.
 
I agree the rubber ducks was sophisticated (fantastic) - but it's worth bearing in mind how "small" the world is in that demo. I can imagine all the physics data fitting into the SPEs' LSs.

Jawed
 
Jawed said:
I agree the rubber ducks was sophisticated (fantastic) - but it's worth bearing in mind how "small" the world is in that demo. I can imagine all the physics data fitting into the SPEs' LSs.

Jawed

There was actually a lot of objects in there to keep track of and compare. Well I don't know if we ever got any concrete figures, but it looked like a lot :p They said that if you moved one duck in the bath, it would affect all the others, which suggests a lot of interdependency in the data. That said, they may have been drawing efficiencies from the ducks all being from the same model in terms of collision detection or whatnot (don't know?).

On a more general note, I think wild open random memory access is something you might want to try and avoid on any CPU if you can. There's more penalty for it on a SPU, but it's better to avoid it generally anyway. I know you know this, but SPUs aren't simply limited to working on small datasets, you can work on as much as you like as long as you access it properly. Optimisation of data structures for collision detection and soforth on the SPUs would be desireable though, of course, and I think you will see that. You could set up some really nice searching algos on the SPUs for data structures, it just requires thinking about it a little differently. And I guess you could see how a software cache works out for you if you really want just totally general and random memory access in a more conventional sense ;)
 
Last edited by a moderator:
I was thinking along the lines of, say, 4 SPEs for the water physics - with 1MB of LS memory between them - that's a fairly dense mesh running on about 100GFLOPs.

Say 2 SPEs for the ducks (100?) with 512KB of LS.

The rest running on the final SPE and PPE - 60GFLOPs ish - 768KB of RAM.

Jawed
 
What I like about the interview is Crytek`s attitude. They mention it`s gonna be difficult to make their new engine run on such different platforms, but they don`t whine about it like other PC devs.
I hope they`ll make a kickass engine to give UE3 some competition.

About the PS3 part of the engine: I also got it that it`s a seperate section of the engine, not only because of cell, but also for the OpenGL renderer.
 
Last edited by a moderator:
My attempt to translate the whole thing:

/GameStar/dev: So where's the technical journey leading?

Cevat Yerli: In general it's leading to multi-threading, so multi-core and multi-cpu, a streaming architecture, cross platform, and for each pixel there will be at least one shader.

/GameStar/dev: Are you staying with SM3.0 or are you jumping to SM4.0 straight away?

Cevat Yerli: We're gonna support SM2.0 and above

/GameStar/dev: And above?

Cevat Yerli: And above

/GameStar/dev: The new PC processors and the upcoming consoles are heavily applying multithreading. How are you gonna utilize the potential?

Cevat Yerli: We're scaling the individual modules , like animation, physics and parts of the graphics with the cpu, depending how many threads the hardware has to offer. We're going to support both multi-cpu systems and multithreading and multicore. With 3 cpu's with 2 hardware threads each (dual core cpu's) it's possible that we are going to scale for 6 threads. Maybe we're not gonna do it though, depending how fast the individual cores or the cpu-threads are running respectively. We're developing a system that's analyzing how much threading power is available and we are going to scale accordingly.

/GameStar/dev: x86, PowerPC and PowerPC + Cell. All architectures have their own threading organization ...

Cevat Yerli: The 360 solution resembles Hyper threading. In principle it's 2 cpu's with 2 Hyper threads each. If you're asking the hardware manufacturers, that's not the case though. But analyzing it from a software developer’s standpoint it's no different from hyper threading. That means that you're supposed to have 6 threads, but it's only 1.5 threads by 3 in reality. With PS3's cell things are looking differently: the main cpu has 2 threads (slightly better than hyper threading) and then you're getting the synergetic processors. The 8th spu was cut.

/GameStar/dev: Yields?

Cevat Yerli: A pure manufacturing reason. The spu's are not as flexible as your conventional cpu, that's why we have to scale differently.

/GameStar/dev: Between the individual architectures it's almost impossible to port the whole code. You have to at least modify the low level commands. x86 and PowerPC are different, but how easily can you port from one console to the other considering they're both PowerPC based?

Cevat Yerli: You can't port it either really. We're the only german developer that has a PS3 dev kit I believe. Accordingly we can look at the hardware in real life rather than speculating about it. The PS3 is a system that needs further adaptions that are especially written for the PS3 architecture - simply porting just isn't working.

/GameStar/dev: So Sony's claim - you have a nice layer, your throwing your code at it, and everything is working beautifully on Cell - is not the case?

Cevat Yerli: They wish. But it's a long way off that still. The devkits aren't that far either yet. Based on the information on the devkits you have to do a lot of low level work, to get something out of this hardware.

/GameStar/dev: Regarding interprocess-communication: How relevant are the differences between the different multi-threading approaches?

Cevat Yerli: An important question. The following things are very important for hardware based multithreading: Are the threads running on real cores (do they have their own registry set)? Or is there a hardware abstraction like with the PowerPC, where the -two in this case- threads have their own registry sets, but they are still on the same core, so with the issuing of instructions to individual units, both threads can't work at the same time. Multi-threading at hyper threading is only trying to distribute the instructions to the superscalar units (math-operations to integer and float units, load store etc.). With multiple cores the question of bus-connection to the peripherals and to the main memory. How is the cache implemented, are all threads sharing the same cache? Plus: shared memory vs. stand alone local memory. A complete PowerPC core is also part of the cell system. But it's not only an independed processing unit, it's also the host for the individual cell cores. In the cell architecture you
have apart from the PowerPC core also individual cell cores that are connected through an ultra-high end-bus and can communicate with each other independently. If you exploit the optimized parallelizing, you can achieve a linear scaling over all cell cores.

/GameStar/dev: How are multi-core systems behaving on single-core pc's?

Cevat Yerli: As developers we are in the worst possible situation. We have to support 32 and 64 bit, Single and Multicore cpu's, single and multithreading, cell and not-cell and OpenGL and DirectX. The expenditure to develop one technology, that is utilizing all those parameters perfectly is extremely high. The technical expenditure is at least twice as highs than CryEngine 1.

/GameStar/dev: The step from 32 to 64 bit was technically surely easier than going from single to multithreading.

Cevat Yerli: Unfortunately there is no step. We cannot really take the step, we have to support both.

/GameStar/dev: Are there performance issues with the multi-threaded CryEngine 2 running on single core pc's?

Cevat Yerli: The code can run sequentially. You're losing a bit of efficiency, but what you are gaining with optimization is higher. SO the price of sustaining a loss of the frame rate when running on a single-thread pc is so small, that you can easily get it back from that. Most of the PC games are not optimized anyway, Far Cry isn't either.

/GameStar/dev: With consoles, developers are getting astounding performance out of average hardware, because they have to. If this was the case with pc's you'd probably only need a Geoforce4 TI for running Doom 3.

Cevat Yerli: My point exactly. The evolution of hardware is running at such a fast rate, that you don't get to work with it for long. It's the same with cpu's, you have to take your time to optimize. The biggest problem with that are the cache misses. Also, you should avoid a global memory between the individual threads. Simply put: if we are reaching into the same pot, the pot must not change. If I am reaching for an element before you, you are not getting it anymore - or not the one that you expected at the very least. To bypass this you ideally have to change something in one step, pass the result on to the open memory and release it for other cpu's (unlocking).

/GameStar/dev: How to you keep the physics consistent with 6 threads.

Cevat Yerli: You could solve that not only technically but also creatively. You have to go new ways: How can we, and that's a main thing, how can we scale our game from 1 to 8 threads qualitatively. So that the game-play stays the same, but the game is either looking better or I can play it better. On PC it will only be cosmetically changes, because everyone has the power, but then there are big differences in game play. On consoles you can get better game play out of optimizing. That's why you have to test to scales as a multi-platform developer: FX and game play. On a PC you often only optimize FX (higher resolution etc.). We want to scale both FX and game play though, for example from the intensity of AI and shaders.

/GameStar/dev: How does porting work from x86 to X360?

Cevat Yerli: In general the architecture is different of course, but they are quite a bit more similar then Xbox360 and PS3. The cpu's of PC, 360 and PS3 have only one similarity - multi-threading. As a generic cpu the Xbox 360 processor is the most powerful one, if you're taking the 7 Spu's of the PS3 into account things change. Before we had the PS3 devkits we thought PS3 and Xbox 360 were closer in design than PC and console. That's not the case though *laughs*

/GameStar/dev: So you are optimizing your engine for the cell spu's?

Cevat Yerli: Sure. We have to, because we want to utilize PS3's power in full. Accordingly the PS3 will get it's own engine architecture, kind of a sub-architecture of CryEngine 2.

/GameStar/dev: You outsourced the Far Cry Instincts port. Now you have to port yourselves?

Cevat Yerli: Umh ...

/GameStar/dev: ... the graphics interfaces are requiring an extra effort?

Cevat Yerli: Yeah, because of OpenGL ES for the PS3 we have to recode our whole rendering. If you look at it closely, CryEngine 2 will have 2 solutions for each system in total. If a developer abstracts that, the technology is optimized very specifically. Otherwise you cannot utilize the whole power. Alternatively you can abstract it in a way that it is not running on all system, then the strongest platform is losing out the most ...
 
I do not understand him, but I think he is claiming that each X2 core is single threaded, but X2 core is software like "multy-threaded", while PS3 main core is hardware dual threaded. I am 100% that these sentence is a lie. He is sony biased.
 
Lysander said:
I do not understand him, but I think he is claiming that each X2 core is single threaded, but X2 core is software like "multy-threaded", while PS3 main core is hardware dual threaded. I am 100% that these sentence is a lie. He is sony biased.

What?

The X2 has 2 actual HW cores to my knowledge where the P4 with HT does not.

He doesn't seem biased to Sony to me. He certainly doesn't put down MS's CPU. In fact he not moaning about anything...I kinda like that.
 
He said: "In principle [360 solution is] 2 cpu`s with 2 Hyperthreads each. If you are asking the hardware manufactures, that`s not the case though." He is claiming that IBM made fake chip.
 
Back
Top