I came on this forum because I knew I was going to get a solid answer with out BS. I also knew I was going to have to be bold unlike the other forums. My personality does not reflex well on a forum. I got the answeres I was looking to get on here. Sorry for my "know it all" attitude. I really do not know anything about how the iPad works so that's why I came on here to get answers. I was also really sick and on medication last night. My girlfriend said I was being a butt hole ha. I know I was.
. Thanks for the honest answeres guys.
I am pretty sure a lot of developers who create games, including Bulldog, mentioned that the to GPU has not even come close to the its full potential in the PS3 because of cost. Considering the Xbox is the main rendering plateform, ps3 suffers. I was also told by a tech that he was pretty sure all 7 cores on the Ps3 are not being used because it would cost a fortune at this point to develope such graphical games. I was not stating I believed him but That the info I got from a computer tech who makes games. I was thinking this would be the same case for iPad 2 and 3. Being the iPad 2 has less GPU I wanted to know if there would be games only for the iPad 3.
Well I have personally developed for both the Xbox 360 and PS3 as part of my "continuing education" in software development. While I haven't released anything professionally for either platform, I did write custom sprite engines and "mini demo games" to see how things work. First and foremost I can assure you that the PS3 uses all of its cores as long as the developer uses "threads" in his code. There is nothing special about this type of coding, in fact it is the industry standard. The only issue you run into with threads is locking issues when you want to exchange the completed data between them. And with some simple API calls and solid "semaphore locking" strategies you can overcome even that issue with ease.
The PS3 is technically harder to code for than the Xbox 360. This has nothing to do with the actual SDK however. It has to do with a design choice made in the very early days of the PS3's hardware design. The PS3, unlike the Xbox 360, uses a split memory configuration for the Graphics Data and Program Code. This split memory design is the Achilles heel and can not be fixed without a complete redesign of the PS3. I will give the ten cent tour on the issue to help clear this matter up.
There are two memory segments in the PS3. They are separated in such a way that the only way you can move data from one to the other is to lock down the memory bus and do a direct DMA transfer. This design was created by hardware idiots that didn't bother to ask the software gurus what they really needed. So here are two scenarios with the first being how it should have worked for all of the memory and the second being what really happens today. The first scenario is all seven cores are running code. Core one requests data/code from the main memory. This request goes into a queue and when its turn on the bus comes up, it gets its data/code and continues on its merry way. If all seven cores make requests at the same time, the cores simply get put into a wait state while each request is fulfilled.The delay time as the request are fulfilled are down in the microsecond range. This design is the industry standard for all PCs currently on the market as well as the Xbox 360. Now scenario two is what happens today with the PS3. When data is needed by a cpu core from the graphics side of the memory bus, the graphics cores have to be locked down from memory access and at the same time all cpu cores have to be locked down from accessing the memory bus. That means for a brief moment in time there is no further memory bus processing occurring. The data is then moved from graphics side to the data/program side of memory. Then the cpu core that made the request can access that data. And finally all memory locks can be released with everyone going back to normal operation.
This design is beyond idiotic. The greatest example of how this effects a game is Grand Turismo 5. Look at the shadows of each of the cars. They are garbage. The reason? The programmer knew he couldn't afford to lock down the memory bus constantly to check for the full lighting effects to see how the shadow is effected. The amount of time it would take would kill the overall frame rate of the game because of how much memory locking would occur. Compare that to the XBox 360 and Forza Motorsport 4. The shadows on it look much better because the Xbox 360 doesn't have a split memory system. There is no need to lock everything down. All processors share the bus as normal.
This is why PS3 development has lagged behind the XBox 360. Sony has tried desperately to mitigate this by constantly working on the SDK used for the PS3. When I was developing with it back in 2009 I saw at least 6 major updates come out for it. In that same time frame for the XBox 360, I saw only one major update. That alone shows how bad things were.
As far as the iPad 2 vs the iPad (3rd Gen), the rule is very simple. You have a dual core CPU that runs at the same speed on both platforms. You write your game against that. You then provide two sets of Graphic Assets. Such as ghost.png and
[email protected]. When an API call is made to load this graphic, iOS reports which version of the Asset should be loaded automatically and then control is returned to the code. The developer didn't have to make a specific request. iOS took care of everything automatically. In fact the developer, at present, CAN NOT even directly address a pixel in the iPad (3rd Gen) because the coordinate system is still based on the iPad (1st Gen) of 1024x768. Apple did this so that ALL applications can run on any version of the device. The only current limiting factor for any iOS device is the version of iOS that the device runs under. And that is simply because some API calls don't exist in 3.x that runs on the older iPod Touches and iPhone 1st and 2nd gens.