The Technical Difficulty In Porting a PS3 Game To the PS4 152
An anonymous reader writes "The Last of Us was one of the last major projects for the PlayStation 3. The code optimization done by development studio Naughty Dog was a real technical achievement — making graphics look modern and impressive on a 7-year-old piece of hardware. Now, they're in the process of porting it to the much more capable PS4, which will end up being a technical accomplishment in its own right. Creative director Neil Druckmann said, 'Just getting an image onscreen, even an inferior one with the shadows broken, lighting broken and with it crashing every 30 seconds that took a long time. These engineers are some of the best in the industry and they optimized the game so much for the PS3's SPUs specifically. It was optimized on a binary level, but after shifting those things over [to PS4] you have to go back to the high level, make sure the [game] systems are intact, and optimize it again. I can't describe how difficult a task that is. And once it's running well, you're running the [versions] side by side to make sure you didn't screw something up in the process, like physics being slightly off, which throws the game off, or lighting being shifted and all of a sudden it's a drastically different look. That's not 'improved' any more; that's different. We want to stay faithful while being better.'"
Super stoked (Score:1)
Re: (Score:1)
os3? OS/3 after OS/2? :P
Re: (Score:2)
That runs on an IBM PS/3 :). I have one of those, it costs $10K, the case is made of depleted uranium, hard disk drives are gigantic and the bus is MCA Express (but you won't find cards except for 1TB RAM expansions and gigabit Token Ring)
Sadly a $500 PC is faster.
So someone didn't follow the practice ... (Score:1)
Sorry, but *yawn*.
Had they followed the practice, they would have a version of the source code that runs correctly (but slowly) that they could optimize for different target platforms.
Re:So someone didn't follow the practice ... (Score:5, Insightful)
Is it a good practice for cases like these? I argue not.
Let's say that we do create a reference version, then optimize. Since we are intending to push the hardware to its maximum, we have to assume that we will hit the occasional performance wall. How do we deal with that? We change the behavior of the program to fit within the limitations. This means that our definition of correct behavior has changed and the reference version is no longer correct. So, we update our reference version to match the version we plan to publish. This involves backporting the changes, then carefully testing to verify that the behavior is exactly the same as in the optimized version.
We're left with the question: Why do we call it a reference version if it is derived from the version that is supposedly derived from it?
The optimized version is the real reference version. The "reference" version is really just a port to a hypothetical platform. And, rather than just porting the final version, we are porting every bit of wasted effort along the way.
We get all the cost of the PS3 to PS4 port, dragged out over the whole path of development, with no target platform to sell it on. Sure, porting "reference" to PS4 will be cheaper than PS3 to PS4; however, PS3 to reference to PS4 will be much more expensive than directly porting PS3 to PS4.
So, best case, we spend more money to save time porting to a platform we never intended to support. Worst case, we spend a lot of money on a port that doesn't go anywhere. It's a lose-lose.
Re: (Score:2)
The optimisations are the program, there is no unoptimised state to work from. Have you ever worked with soft real-time code?
Re: (Score:1)
And that is the mistake. You first need something that actually runs correctly, and then optimize it to work with the hardware that is at your disposal.
Have you ever worked with soft real-time code?
Part of my work involved hard real-time code, down to twiddling with sub-microsecond timings and of course counting CPU cycles. Still, I usually start with code that runs correctly (i.e. it would fulfill the specifications if ru
Re: (Score:3)
I'd suggest that the PS3 is radically different enough that if your *reference design* wasn't PS3 specific, you've probably already failed.
You can't "optimize" a bubble sort into a quick sort.
(One interesting effect of both the PS2 and PS3 was that their design was so bizarre that it took years for programmers to be able to optimize effectively. This meant that games were consistently better every year even without any changes in the hardware. With a more conventional architecture, what you buy in the fir
Re: (Score:2)
When you're deciding on a sorting algorithm, you're already optimizing. The unoptimized version just needs to run correctly, i.e. deliver the expected result. You pick a search algorithm that's easy to understand for that (so, bubble sort rather than quick sort). Chosing one that is best suited to the target hardware and implementing it optimally on the target hardware is part of the optimization process.
Re: (Score:2)
> You can't "optimize" a bubble sort into a quick sort.
At the risk of being rude, you are not really understanding what optimization actually means.
You need to take a step back from the trees and look at the forest.
Sorting is defined as:
* Input: Given a set of unordered data
* Output: Return a set of ordered data
Optimization entails both macro and micro efficiency.
The algorithm determines the high level efficiency.
The programming language may offer low level efficiency.
For example you coul
Re: (Score:3)
*sigh*.
I see my analogy failed.
If my job is to write a program that does a sort, and I write a bubble sort, then if I really need it to work better, I don't tweak it, I redesign from scratch. Most people won't call that an optimization - they'll call it a redesign. Hence my original comment. (And yes, if we're being pedantic, *if* the sort is part of a larger program, then I would call rewriting the sort an optimization.)
My point was that if you don't *start* by taking all the strengths and weaknesses of
Re: (Score:2)
Can you give a couple of very very high level examples of what is bizarre about them? (..if you know why they were designed that way, even better)
Re: (Score:2)
By bizarre, I mean that it has taken years for PS3 designers to be able to re-architect their games to keep all six SPE's busy because of limitations on the SPEs (as detailed multiple times in postings above by others). In other words, bizarre means "different", not necessarily bad. Essentially, there was not a lot of skills transfer between being able to program most machines out there and effectively programming the PS3.
Very briefly, the PS3 has one main core and six accessible Synergistic Processing El
Re: (Score:2)
Also the GPU was relatively weak, with the limitations of the geforce 6/7 architecture while the Xbox had an almost modern one in comparison.
Devs found ways to "help" the GPU such as doing preliminary geometry work and culling, and doing post-processing on SPE rather than on GPU.
That allowed to do something with the SPE resources that were still unused, even if they managed to fit other kinds of work on them.
Re:So someone didn't follow the practice ... (Score:4, Informative)
Had they followed the practice, they would have a version of the source code that runs correctly (but slowly) that they could optimize for different target platforms.
I expect that when they started, they had no intention of porting to other platforms.
Naughty Dog is Sony these days. They only make games for Sony platforms. So they targeted only the PS3. I'll bet when development started, Sony hadn't finalized PS4 plans.
Now the PS4 is out and desperate for games (go ahead, name a PS4 exclusive), so Sony is having them port it to PS4. And since the game was never intended for anything other than the PS3, they're running into difficulties.
I wouldn't blame the programmers for optimizing for the only platform they were told to target, I'd blame the managers for suddenly springing a new platform on them after the game was done.
Re: (Score:1)
Now the PS4 is out and desperate for games (go ahead, name a PS4 exclusive)
Easy. Infamous: Second son. Which apparently sold better than Titanfall on Xbone [theverge.com].
Re: (Score:2)
Except I've heard of Titanfall, and I though "Infamous: Second Son" was the PS3 sequel to Infamous. Apparently it's in fact the third game in the series, proving just how good Sony is at both marketing and naming things.
Hilariously, when I Googled it to find that out, the top hit was "How Second Son Really Hurt The inFamous Franchise [onlysp.com]" so I'm not sure that's really a good exclusive to have...
Plus your own link points out Titanfall sold better than Infamous Second Son, it just did it across more platforms bec
Re: (Score:2)
Re: (Score:3)
Oh, yeah ... that is the other mistake. "No one's ever gonna look at this code again, so it's okay if it's an incomprehensible, unmaintainable mess. Ship it!".
Re: (Score:2)
But that's not what the summary said. It said the code is specific to a particular architecture, and there's considerable effort required to port it to a completely different architecture.
It doesn't matter how neat your C program might be, moving the computations to OpenCL is still going to be a pain.
Re: (Score:2)
But that's not what the summary said. It said the code is specific to a particular architecture, and there's considerable effort required to port it to a completely different architecture.
And that's why many developers (who have often sounded off here on slashdot) hated the PS2 and the PS3. Because it was so different, they made life harder and for what? In the end, most titles developed for both platforms (whether Xbox vs PS2 or Xbox 360 vs PS3) were smoother or had more detail on the Microsoft platform because it was easier to get more out of the machine. Developers don't want platforms that take so much effort to learn. They won't be able to take the skills to the next wacky architecture.
Re: (Score:2)
This is normal manager behavior. An experienced programmer plans for it, or makes sure he's not the one who has to adapt the old code to the new platform.
Re: (Score:3)
Now the PS4 is out and desperate for games (go ahead, name a PS4 exclusive)
Umm wait, I think I can name one..ummm. Resogun? Ummmm Infamous Second Sun? And there's a Brown Shooter or two I can't remember the name of. [looks over at the PS4 sittingmostly idle because of the lack of games in genres I want to play....maybe I should have got a Vita instead. I do play DCUO on it now and again....but that is not exclusive the PS4]
Re: (Score:2)
> I'll bet when development started, Sony hadn't finalized PS4 plans.
That's correct. The PS4 was in development for about 4+ years. Naughty Dog's focus wasn't on writing a game for unannounced hardware whose specs were volatile but to finish and ship a game on a known platform. (Disclaimer: I used to work for SCEA.)
> I'd blame the managers for suddenly springing a new platform on them after the game was done.
That's exactly right. Short-term Profits vs Long-Term thinking.
Someone needs to mod your p
Re: (Score:2)
The Playstation-has-no-games meme was true back when the PS3 first came out, but it ended up with significantly more (and often better) exclusives than the 360 - hell, their camera & motion-tracking add-on had more and better exclusives than the 360's kinect. Of course, since memes never die, the next-gen console with more exclusives is being mocked for having no games. What's next, people claiming the xbox controller is huge for people with huge hands?
Now that leeds to the following cartoon [penny-arcade.com] :).
Re: (Score:2)
Correct First, Clever Later is my core philosophy. There is nothing I don't abstract via portability layer.
I wrote a "hobby" OS kernel from scratch, starting only with a bootable hex editor on x86. The FIRST thing I did was create a simple bytecode VM to call into a function table to give me ASM level abstraction, before I even switched out of realmode to protected mode. THEN I created the bootloader, a simple text editor, assembler, disassembler, a crappy starter file system, and that was enough to boot
Re: (Score:2)
THEN I created the bootloader, a simple text editor, assembler, disassembler, a crappy starter file system, and that was enough to bootstrap into a a full OS completely free from the Ken Thompson's Unix Compiler Hack.
That's one way to defeat Trusting Trust. The other relies on having multiple implementations of a particular programming language, such as Visual C++ vs. GCC vs. Intel vs. Clang. David A. Wheeler pointed out in 2009 [dwheeler.com] that if you bootstrap a compiler with a bunch of independently developed compilers, the binaries will converge unless a Ken Thompson attack is in progress.
All programs on my OS (yes even Java or C code) compiles into bytecode
Interesting.
Re: (Score:2)
Your crystal ball is quite obviously broken, as half of my work involves embedded system (the other half, the one that comes before the whole embedded thing, involves Matlab).
PS4 hardware (Score:1)
Re: (Score:3)
Because the PS3's hardware was stupid. It never paid out the kind of performance dividends they claimed it would, and to even approach them took insane amounts of effort.
Re:PS4 hardware (Score:5, Insightful)
Because the PS3's hardware was stupid.
No, it was not.
Yes, yes it was. I didn't argue that cell had no purpose, but it was stupid to use it for gaming. And sadly, cell was only ever widely used in scientific computing in PS3s, because the only other way to get it was madly overpriced. Then Sony removed OtherOS and the supply of PS3s usable for scientific computing was constrained, although by that time the cell had been far surpassed.
Sony gained dominance in part because development for the Playstation was simpler than development for the Saturn or the Jaguar. Microsoft gained a foothold in part because development for the PS2 was a super bitch. Then Sony went on to make another console for which development was difficult, and the 360 became the dominant console of its generation. Microsoft probably wouldn't even be in gaming today if Sony had adopted a more conservative architecture for the PS3. It took them until the PS4 to figure that out, and they did indeed finally manage it — by making the same console Microsoft was making, or vice versa.
Re: (Score:2)
No, it was not. =D
You make a very poor judgment of the last decade developers. And somewhat lack of history knowledge.
What did PS3 a good start was the huge Microsoft failure on delivering a faithfully working hardware (that Red Ring of Death issue, remember?). Any other company would had fold, but Microsoft had (and still has) a huge cash cow to milk (Microsoft Office), and that was the sorely reason XBox didn't fold at that time.
But Microsoft people aren't stupid (for the most part, at least), and XBox wa
Re: (Score:2)
There's absolutely nothing weird on PowerPC being used on videogames.
No one is saying using a PowerPC-based chip was stupid. Virtually everyone is saying using a Cell-based chip was stupid. You automatically lose performance relative to your competitors on games that don't take full advantage of the Cell architecture, which is precisely those multi-platform games where people can directly compare performance on the PS3 with performance on the Xbox. This article is a testament to the code specialization required to take full advantage of the architecture, and game developers
Re: (Score:2)
Car analogy time: it's like giving a bunch of drivers who don't know how to use manual transmissions a manual car. Yes, manual transmission is faster than automatic, but if your drivers don't know how to use it properly, it's always going to end up being slower in practice.
No if *you* hire the good drivers, and use them to take a edge on your competitors - what's pretty feasible when you get the market leadership (of near it).
Anyway,I never stated that CELL or Emotion Engine were *easier*, I stated that they were *faster* at their time.
Yes, PlayStation One got the developer's heart because Sony did a pretty good job on make the developer's life easier. But then Sony throwed this through the window on PS/2, an excellent but totally awkward machine at that time: fast as hell, b
Re: (Score:2)
By the way, The XBox 360 is also a PowerPC machine - the same core used on sony's PS3.
It's not an identical core, it's only of the same generation. And there's only one to the PS3's three.
And the NIntendo Wii (and also the WIi-U). And also on GameCube, Apple's failed Pippin and a lot of others dead on arrived videgames.
No, all those have different PPC cores.
The complexity is still there - we just shifted it to another side.
A lot more is done for you in a typical SMP system than in the Cell. The complexity is shifted away from the programmer, which is what we were talking about.
Not a single videogame maker will sacrifice any of the previous requirements to make the developer's life easier.
Videogame maker? You mean console vendor? Or what?
correction (Score:2)
It's not an identical core, it's only of the same generation. And there's only one to the PS3's three.
Obviously, I meant to the 360's three. But if I don't issue a correction, surely some wag will pounce. Here, I'll add in an actual link to a real comparison of the architectures [gatech.edu]. Or you know, This old thing [gamasutra.com]. The 360's PPC cores have twice as many LSUs, integer and fp cores [psu.com] as the PPC core in the PS3 — two of each instead of one. That's right, each PPC core in the 360 can do twice as much math as the PPC core in Cell. That's because you were meant to do all your heavy lifting in the cell cores.
Re: (Score:2)
Videogame maker? You mean console vendor? Or what?
Console maker, I'm sorry. I misused the words.
double (triple?) replying (Score:2)
I just noticed something else goofy about your comment.
There's absolutely nothing weird on PowerPC being used on videogames. Sony made things complicated for developers by tacking 6 specialized coprocessors inside its chip - what, for programmers used to have just one (MMX, 3DNow!, etc), was clearly a new level of computing.
Actually, they were already used to having two asymmetric coprocessors, since floating point is handled by a coprocessor on traditional x86, while integer and fp math are both handled by separate units inside modern processor cores.
Re: (Score:2)
As a mater of fact, your (almost desperate) counter-arguments to every single and minimal "goofy" of mine just demonstrates how difficult are being to you to simply present some facts that proves me wrong.
Let me tell you something: inside your Intel chip, there're not only three "integer coprocessor", but a entire array of ALUs.
From Pentium and ahead (if I remember correctly), Intel decided to o "RISC" style and invested a lot of efforts on pipelining the thing, in order to achieve a better instruction per
Re: (Score:2)
One factor is that Ken Kuturagi had big technical aspirations; he's an engineer at heart, and the PS2 and PS3 were his attempts to make a mark on the way consumer computing is done. Unfortunately they were wholly inappropriate for the time they appeared. Ironically GPU compute, which actually is important these days, looks a lot like what he was trying to do. Just not terribly premature and inflexible.
Re: (Score:2)
http://www.geekwire.com/2013/xbox-360-wii-ps3-won-console-generation/
Dominant? I do not think that word means what you think it means [geekwire.com]. And 360s are still selling. Who's buying a PS3 now? Granted, that says nothing good about Xbone sales, but this isn't about Microsoft being great, but about Sony being lame. Given that Sony was giving away online gaming while Microsoft was charging, they should have ground Microsoft into a paste.
Re: (Score:2)
More people are still buying PS3s than 360s worldwide. The 360 has only dominated (and is still selling relatively well) in the US and UK.
Re: (Score:2)
More people are still buying PS3s than 360s worldwide. The 360 has only dominated (and is still selling relatively well) in the US and UK.
Oh, you mean the countries where people buy the most [legitimately licensed] game consoles? Please, do go on.
Re: (Score:2)
More people are still buying PS3s than 360s worldwide. The 360 has only dominated (and is still selling relatively well) in the US and UK.
Oh, you mean the countries where people buy the most [legitimately licensed] game consoles? Please, do go on.
Yes, exactly that countries. Now, keep in your mind that only a tiny fraction of PS3 are currently "jailfree", as only the first models (the "Fat PS/3") run the firmware version that allowed the hack, and only a even smaller fraction of that fraction was never updated (downgrading the firmware is risky - usually bricks the console).
On the other hand, the hacked XBox "installed based" is huge. Every single friend of mine that are XBox users has a hacked console to play pirated games. About half has also an o
Re: (Score:2)
Because IBM didn't improve the PowerPC processor line since them, while Intel, AMD et all spent a lot of money on the x86_64 architecture.
In the end, it's not what the architecture did in the past - what matters is what the architecture will do in the future. Now, x86_64 is far more capable than the CELL architecture. So, if you want to build a top performance machine today, you will go with x86_64.
Re: (Score:2)
I stand corrected.
Please read "Because IBM didn't improve the PowerPC processor line enough to meet Sony's new requirements since them" instead.
Re: (Score:2)
> Why didn't Sony make the PS4 hardware more like that of the PS3?
There are 2 parts to the answer: hardware + software.
SCEA, the games division of Sony, is NOT in the hardware business -- they are in the entertainment business. SAY WHAT?! But you ask "They designed all the hardware for the PS1, PS2, and PS3. What changed??"
Designing and Developing custom hardware is incredibly expensive. Sony was in the RED for about 4 years due to paying an expensive development cost on the PS3. The PS2 GPU - the GS
Wish they'd have thrown PCs a bone (Score:2)
Last consoles I owned was Atari 2600 & original Nintendo.
I've been a PC gamer since.
Plating Ghostbusters & Chuck Yeager's Flight Simulator with joystick on a Tandy 1000 EX was fun, and all the free games in basic that came in the old magazine "Home and Office Computing" which became Family Computing (http://en.wikipedia.org/wiki/Family_Computing)
Anyhow I've never been a fan of consoles and while that might make me in the minority I still wished they'd ported to PC.
Someone posted the entire last of
Re: (Score:2)
and all the free games in basic that came in the old magazine "Home and Office Computing" which became Family Computing (http://en.wikipedia.org/wiki/Family_Computing)
You got that backwards, it was Family Computing first with the basic listings and game reviews and "full home computer coverage, not just covering x86 only"...and then later became Family and Home office computing, adding more articles for the "wannabe home-office entrepreneur" and then becoming "Home office computing" and dumping anything not home-office and IBM PC related.
Re: (Score:2)
Yes I just remember it was that magazine that taught me basic programming.
After typing in hundreds of game code line by line they had as their "centerfold" it seemed, hundreds of games, modding them and I got pretty perfect at it. Even won first place in 8th grade FBLA state programming competition with a program you did your taxes on, then roll the 1040/ez form into an okidata printer and it would print the form, do the math and only thing to do was sign it is what won first in 8th grade, I was only one in
So much effort (Score:2)
and brains and talent and resources... for a fucking video game. I wonder if people a hundred years from now will laugh at us or hate us for the squandered resources?
Re:Shitty code (Score:5, Interesting)
There's actually some validity to the GP's post. (Score:5, Informative)
You realize the PS3's hardware WAS exotic right? That's exactly why it's hard! Write code optimized for multiple SPE units, and see how well you can get it to run on x86.
There's actually some validity to the GP's post.
Ideally, you would write the game portably, knowing that you will need to potentially take it to market on a lot of platforms, if it ends up being a popular title, and so as a result, you'd have a minimal porting set that could just be compiled and run, with additional optimizations on top of that tuned for the platform on which it's going to run.
Although not done a lot recently, the implementation of the original libc had C versions for all the code contained therein, and then had hand optimized assembly versions that would replace the C versions on a specific platform.
The intent was to be able to get it up and running on a new platform fairly quickly by having a small *required* assembly language footprint in the context switch, bootstrap, and CRT0 code, and then optimize the C code to assembly on a platform specific basis once you wer up and running self-hosted on the platform. This also gave you the opportunity to check assembly optimizations in user space first, without breaking everything by trying something that wouldn't work because of some mistake, and ending up with a lot of work to back the changes out (this was back in the RCS/SCCS days, where source code control systems weren't as capable as they are today).
It makes sense to do the same thing for games; minimally, the complaints they had about shaders should have been totally workaroundable, given that Direct X doesn't allow indefinite termination shaders, and requires the code to be fully unrolled compared to, say OpenGL, where there's no guarantee that a shader terminates (one of the reasons a game can crash a Mac or Linux using OpenGL, but can't crash Windows, using the OpenGL compatibility layer -- if it won't unroll, then it's discarded by DirectX).
In any case, it does show that there were at least some corners cut, and just because the host library is similar, you shouldn't expect the hand tuned code to be at all similar, especially going from a Cell architecture PS/3 (essentially, a data flow processor) to Von Neumann architecture on an AMD processor on the PS/4. It's obvious that all the hand tuned pieces would need to be rewritten, just as if you were porting to Windows or XBox or some other platform that wasn't also Cell-based. You'd think if they had planned ahead for ports to other platforms other than the PS/3, that that planning would be directly applicable to geting the code running on the PS/4 as well.
Re: (Score:1, Insightful)
Re:There's actually some validity to the GP's post (Score:5, Insightful)
Alternatively they're really good programmers who got explicitly told "make this run like shit off a shovel and don't worry about portability - this will only ever be on PS3". You can say "but we should really write portable code", but if SMT still tell you to ignore portability then you're left with either doing what you're told or quitting.
Re:There's actually some validity to the GP's post (Score:5, Informative)
They could decide between "write this platform-specific program in a suboptimal way so that it's easier to port to another platform" or "heavily optimize for the sole target platform in order to increase market success". I don't think the latter was an invalid choice. If anything, this story illustrates just how bad an idea it was to put a Cell in a game console.
Re: (Score:2)
Re: (Score:2)
I expect the main difficulty in porting from PS3 to PS4 is the effort of converting all those programs between two broadly similar but different in the detail systems. The GPU shaders too were
PS3 Optimization: Parallelizing code 7 ways (Score:5, Informative)
That's easy! I wouldn't try to run SPE units code on x86 but x86 code on x86. The "optimization" shouldn't have affected the Game or it's portability and that's why it's their own damn fault.
Optimized PS3 code is not what you think it is. Its not taking some general C code and rewriting it a bit to be friendlier to the underlying CPU architecture or rewriting it completely in assembly. The PS3's Cell processor is, in simplified terms, a general purpose CPU and six special purpose coprocessors. So optimization is really figuring out how to pull major pieces of code out of the general purpose and move it to the appropriate specialized coprocessor, and then add the control code necessary to coordinate the two. Or to put it even more simply, optimizing for the PS3's cell processor is really an exercise in parallelizing code 7 ways.
Re:PS3 Optimization: Parallelizing code 7 ways (Score:5, Interesting)
The PS3's Cell processor is, in simplified terms, a general purpose CPU and six special purpose coprocessors.
The "coprocessors" are decent general-purpose computers. The problem is that they only have 128K of RAM each. They can access main memory, with high latency but good bandwidth, through a DMA mechanism. (There's also a relatively conventional NVidia GPU on the back end, so the GPU part of the job isn't the big difference. This isn't about shaders.)
That 128K of RAM is too small for a frame. Too small for a level. Too small for any big part of game state. PS3 programming thus consists in turning a problem into some form of streaming process, where data is pumped into Cell processors, processed a bit, and pumped back out. This is a signal processing architecture. It's great for audio. Sucks for everything else.
The PS3 was a "build it and they will come" architecture. It was cheap to make, but large numbers of smart people spent years trying to figure out how to use the thing properly. (Sony basically gutted their US R&D group to beat on that problem.) In practice, a lot of games did most of their work in the main CPU (a MIPS machine) and the GPU, using the Cell processors only for audio, fire and explosions, particle systems, and other tasks that didn't have a lot of interconnected state.
Re:PS3 Optimization: Parallelizing code 7 ways (Score:5, Informative)
"This isn't about shaders."
I'm recalling a story about the production of Uncharted 2, also by Naughty Dog, mentioning that this is definitely about the shaders and other graphical effects.
The game engine is not just general gaming code, pulled apart and optimized, it was written for the specifics of the Cell CPU, and the PS3 architecture, then optimized at a byte level. One of the tricks Naughty Dog learned, was to leverage the 7 active SPE's in the Cell CPU to assist the GPU in rendering the scenes.
They have the SPE's do some of the tasks the ageing GPU can't, as well as physics.
Besides, the GP CPU in the Cell is not an x86 CPU core, it's another relic, a PowerPC core, and not a particularly fast one at that, IIRC its primary job is to manage the 7 SPE's
Re: (Score:2)
a PowerPC core, and not a particularly fast one at that
It's 3.2 GHz, hyperthreaded, with an Altivec unit. Probably more capable than the CPU's on all those WinXP machines still running. Heck it might even beat the Athlon X2 240 (2.8GHz) I have in this machine.
Re: (Score:2)
It's 3.2 GHz, hyperthreaded, with an Altivec unit. Probably more capable than the CPU's on all those WinXP machines still running. Heck it might even beat the Athlon X2 240 (2.8GHz) I have in this machine.
But the Altivec unit is not as capable as the three units in the 360's core. And that processor most certainly will not beat your Athlon 64 X2.
Re: (Score:2)
It's 3.2 GHz, hyperthreaded, with an Altivec unit.Probably more capable than the CPU's on all those WinXP machines still running.
Though its not necessarily the PowerPC's fault, try running flash on the thing and see which feels more capable.
Re: (Score:2)
It would depend on what it was running. I've ran Linux on the PS3 so I was able to make "some" comparisons. In my experience, yes, the PS3 was faster for some tasks. It was noticeable in the GIMP in particular. For some other tasks, it was slower, but not "that much" slower. Part of the problem was the RAM limit.
But there is a reason I rip CD's in the PS3 and not on this machine, the PS3 is faster.
Re:PS3 Optimization: Parallelizing code 7 ways (Score:5, Informative)
Minor correction: Cell's main CPU - called the Power Processing Element [wikipedia.org] - was a PowerPC processor, not MIPS.
Re: (Score:3)
Another correction: the SPEs have 256KiB of local storage, not 128KiB.
Re:PS3 Optimization: Parallelizing code 7 ways (Score:5, Funny)
Re: (Score:2)
I'll come in again.
Re: PS3 Optimization: Parallelizing code 7 ways (Score:2)
It's not fundamentally different than programming DSPs but for floating point. The Cell isn't that exotic.
Re: (Score:2)
In practice, a lot of games did most of their work in the main CPU (a MIPS machine)
The PS3's Cell isn't MIPS, it's PPC.
Re: (Score:2)
The problem with such an approach is that while you can indeed simulate it, simulating it will be inherrently slower than running it on the cell in the first place. While you do on the PS4 have one x86 core per SPU on the PS3, they're running at half the clock speed, and for very specific tasks, the PS3's SPUs had great IPC, so simply getting a core on the PS4 to do the same thing as an SPU on the PS3 will simply be slower.
Re: (Score:2)
Simulating SPU code is nearly impossible, if you want to get it running at a reasonable speed at least. What makes it special I think is the use of its "local storage", which is impossibly fast and low latency, as if your PC used the L2 cache as RAM. Up to six SPE can be used in a game, so multiply the bandwith by six!
If you have enough low level control on a PS4 or XBO's CPU, you have 4MB L2 for the eight cores, actually two 2MB L2 each shared by four cores (the CPU is two quad-core CPUs copy-pasted next t
Re: (Score:2)
There are plenty of ways (either through better software design that game development and release timelines probably don't allow) or through heavier use of licensed engines and middleware that do abstraction for you, at a cost in money
Re: (Score:1)
Naughty Dog are a first party developer of Sony. So exclusive here, probably really means platform-exclusive.
So I'd assume at the time of development portability never even came up.
Re: (Score:1)
Their code is pretty much a job queue where some of the code is a SPU job manager, and the dispatchers are SPU jobs. They have two kinds of code, for the PPU and the SPU. Now they pretty much need to write for one processor, the x86. I imagine they are bullshitting us if they find it harder to optimize for a homogenous kind of hardware, and we know very well that most of their code is portable C++ and their scripting is some variant of LISP.
Please, I've thought about this and Naughty Dog are just bullshitti
Re: (Score:3, Informative)
Yeah, sure. But no.
Optimizing code for cell means re-writing the code so it operates on small data, and data is transferred explicitly between the cores.
The SPUs have fast communication between some of them, which means that if you run the wrong kernel on the wrong SPU the whole thing slows down dramatically.
This combined with all the explicit DMA transfers you have to do makes the code extremely architecture specific.
Essentially the only code that can stay "the same" is the code running on the MIPS core, w
Re: (Score:1)
What a horribly STUPID idea.
You suggest that they should have written all their code in some generic x86 format.
Well guess what, that kind of code runs like SHIT on a ps3. You'd be able to make games that look like pc games from 15 years ago. If you want better stuff you'll need to actually write code for the architecture at hand.
If you write the code for the actual machine then you invarably end up with fundamental adaptations to the engine, in how it handles data, how interupts are handled, how bandwidth
Re: (Score:1)
If you wrote 50MB of assembly code without writing any development/not optimized/debug versions, good luck trying to develop anything substantial with that. AFAIK, most other game studios (Guerrilla, Insomniac) have already been able to ship games on x64 hardware. If you do dig into the details, Insomniac is another large supplier and user of SPU tech.
Re: (Score:1)
The PS4 is x86, the PS3... not so much.
Anything assembler-level optimized for the cell architecture would be absolute hell to port.
Re: (Score:2)
I don't know about that. Sometimes there is an inherent trade-off between being machine-friendly and human-maintainer-friendly. Tuning for machine performance sometimes gets in the way of high-level abstractions that make porting to a different architecture easier.
Reminds me a bit of the Story of Mel:
http://www.cs.utah.edu/~elb/fo... [utah.edu]
Re: (Score:3)
No... You're not talking about some code that's designed to be portable, you're talking about code that was targeting exactly one piece of hardware, and trying to make the output look better on that exactly one piece of hardware than anyone else developing for that same exact one piece of hardware. Because of this, games for consoles have an insane level of optimisation for that one piece of hardware. More so in this case, you're talking about a piece of hardware that had one of the most exotic CPUs in de
Re: (Score:2)
The amount of ignorance in this post is incredible.
BLAZE ON ANONYMOUS COWARD.
Re: (Score:1)
Its not about assembly code ... (Score:3)
Mainly because the PS3 was a radically different architecture, and when the company had to do assembler-level optimisations to get the game working well, and now they're trying to recode those optimisations for x86, while ensuring the shaders, physics, lighting etc all work perfectly, it's an impressive project.
Its not about assembly code, this mischaracterizes the problem.
Optimizing for the PS3's Cell architecture is not simply rewriting some critical code in assembly. Its more of a parallel processing effort. To greatly simplify things the Cell has a general purpose CPU and six specialized coprocessors. The trick to Cell optimization is moving code from the CPU to the coprocessors and keeping those coprocessors as busy as possible. Now add the complication that the coprocessors are not interchangeable.
Asse
When you consider the fact.... (Score:1)
That the PS4 has the same or greater number of cpus as the cell had cpu+spu, plus the ability to use compute units on the GPU as 'simplified' SPUs, it becomes much more difficult to understand how these guys had significant trouble re-optimizing their code for the PS4's architecture. Now mind you there ARE places they could've been having stalls (since the AMD jaguar cores share resources per pair(like bulldozer, correct?)), but most of the places where such issues would come into play should be optimizable
Re: (Score:2)
I think Jaguar's L2 run at half clock? sounds terrible, but the architecture is optimized for low power. Also, not all caches/memory are equal. They're optimized for certain access patterns (there's cache associativity, which I don't understand much. Or imagine that some memory only realistically allows to write 4KiB pages while another is okay with writing bytes..)
Re: (Score:1)
Seem to me like there's some pretty good advantage in doing games for x86 and Windows .. (but maybe not as strong if you optimise at this level.)
Re: (Score:1)
Re: (Score:1)
He exageratted.
But over in Nintendo camp supposedly it's bye bye for all online multiplayer gaming for the Wii and DS now.
(Well, that have happened on PC too, but it's still due to vendor lock-in at least :))
Nintendo WFC was GameSpy (Score:2)
Re: (Score:1)
Failed to keep up with the latest yearly sports release? TS.
Re: (Score:2)
How are the games obsolete? I bought a PS3 in September and have over 20 games on disk along with a bunch of digital ones and I love it.
Not only that but if you have PS1 games you can still play them on your PS3, but with the exception of a few PS1 games you probably won't. Unfortunately only the first FAT PS3's played PS1, PS2 and of course PS3 games, however if you compare graphics on a decent large HDTV most PS1 games are fairly grainy even with smoothing on, the PS2 (FAT only) is quite reasonable and many games are very playable.
It is unfortunate but as time goes by the only way to play older PS1, PS2 and eventually PS3 games is to r
Re: (Score:2)
Another solution would be to use a PS2 with the hack to run games of a HDD (you can rip legit games I think), that would help with the concern of optical drive dying and discs getting damaged at least.
PS2 is hard to emulate, might be doable at last with an extremely powerful GPU with hundreds GB/s of memory bandwith like Radeon R9 290 or future mid-range ones when they get memory on silicon interposer.. PS2 has that eDRAM with crazy bandwith, and crazy fillrate to use it.
Emulating PS3 might be doable in a f
Re: (Score:2)
Uhm, you mean, finally a game that actually makes use of the hardware you bought.. It's the biggest problem with PC's, because there is a new GPU every quarter (even though consumers don't buy them only once a few years), and the incredible ammount of different configurations, there is no incentive to even to TRY to optimize and actually use the hardware.. That's the beauty of buying a console, you know the games will still look ok/good/great by the end of the lifetime and you won't have to upgrade it, but
Re: (Score:2)
Wow.. Crysis came out in 2007 and I gave up on being able to run it! I did get a nice 65 watt graphics card at some point, but had to run at 800x600 or 1024x768 to get high detail and anti-aliasing, game looking bad IMO without those.. and whatever I did the framerate tanked in fire fights. So I figured I was CPU limited even though I had a recent one I thought it was nice enough. Mobo/CPU still haven't died on me and I see no reason to upgrade
Re: (Score:1)
What about all the indie bundles / small games?
Surely you can find a shitload of platformers, shoot 'em ups, puzzle games, physics games, space development games and so on to fill your time with?
Re: (Score:2)
What about all the indie bundles / small games?
Years ago it was like pulling teeth for an indie developer to get a devkit out of a console maker. Only very recently did PlayStation open up to smaller developers with things like Pub Fund.
Re: (Score:2)
Afaict console game series can be divided into two main categories.
1: Those funded/published by a big publisher who is independent of the console vendors. EA, Take 2, Activision etc. These games may have a timed exclusive but if they sell well they will most likely end up on multiple platforms.
2: Those funded/published by a console vendor, these are highly unlikely to end up on any platform not controlled by that console vendor.
Afaict this one falls into the latter category.
Re: (Score:2)
Can you please stop with this meme :
We don't need better graphics, [game I played as a teen] was good enough. We need better gameplay. Modern games (Call of Duty) suck.
Ok, time to remove the nostalgia goggles.
First of all, not all modern games are Call of Duty. There are plenty of very good games with interesting gameplay *and* good HD graphics, both in the big budget and indie scene. Of course, you won't like all of them, not everybody have the same tastes after all.
And Call of Duty 28 is not a bad game. I