Categories
Looking glass
Navigate/Search

Archive for the 'Playstation 3' Category

New Blogs

Friday, September 21st, 2007

Marco Salvi who did a large portion of Heavenly Sword’s graphics engine (and worked out the clever way we do AA amongst many other things), has just started a blog which he’s already onto crazy complicated graphics stuff (in particular shadows). On the blogs to the right but here have a link

Also Matt Hart who was the Producer on Heavenly Sword has gotten the blog bug from doing one for IGN, its also on the right but have a link anyway

HS questions

Thursday, May 24th, 2007

Thought it worth pointing out that under the comments for Atomic Cache Unit, I’ve answered a few questions that various readers have posed about Heavenly Sword.

Comments don’t appear on the front page, so might be missed if thats what your here to learn about.

Maybe I should do some summary posts? With various comments about HS and Playstation 3 that i’ve made over the years…

Atomic Cache Unit

Monday, May 21st, 2007

Never heard of it right?

Well its one of my favorite things on the PS3 and gets little love cos its one of those tiny features that make life so much nicer.

Atomic ops refer to the most important principle in multi threading. It say that a single processor must read/modify/write without another thread interrupting (hence atomic). Without atomicy, multiple core system are much harder (if not near impossible)

The ACU (s) are a part of each SPU that allow atomic updates to occur very quickly. It appears fairly simple each SPU had 512 bytes of cache (yes contrary to what you might have heard SPU do have a tiny bit of cache). 512 bytes is divided into 4 128 byte lines. The MFC (DMA) unit can bring a cache line in from memory and mark it reserved… if another processor writes to the same bit of memory the reservation is lost and you know to repeat the read/modify/write cycle to guarantee atomicy.

All good, but whats really clever its how its implemented. If another SPU asks for that bit of memory its get its from another SPUs cache, if its in there. So you effectively have a fast SHARED 512 bytes. When an SPU writes, the other SPU only have to read from the writing SPU cache rather than DMAing it back to main memory and DMAing it into LS. Cuts down alot of memory traffic. I even abuse it and just use it as a conventional cache and communication channel between SPU. You can push alot of data around with a fast 128 byte path.

And the nicest thing about it… It just works… All the cache snooping, routing etc. all just happens magically inside the chip. You say ATOMIC_GET and ATOMIC_SET and treat yourself to a 512 byte shared cache.

So for example for some of the army stuff, I need statistics to be kept (things like how many dead, ko’ed etc.)

These are 128 byte structure, that each SPU read/writes to as nessecary. When first you look at it, its seems to be really slow if not for the ACU. All those 128 bytes DMA, every time I need to add a number I’m doing 2 128 DMA (one read/one write) but due to the fact that its sitting inside SPU cache most of the time its ends up just being EIB ring traffic. And thats fast, really really fast.

I just have a shared counter statistics system that all works even tho I can be making 100′s of atomic updates per frame.

Nice one… Whoever at STI who added that bit of hardware deserves a beer from me :D

Post E3

Monday, May 29th, 2006

So E3 is done and dusted and I’m now finally recovered from the crunch that went with it, it was very busy but a lot of fun.

In case anybody doesn’t know, Heavenly Sword was playable on PS3 at both the Sony Press Event and on the floor for PS3. And thankfully, lots of people seemed to like it :-)
I was in LA for close to 2 weeks, the first week was setting up the Sony E3 Presentation stuff and doing the last minute builds used for that and the E3 floor build. We got a few nominations and awards for various things, and didn’t really hear a bad comment about it. For the entire 3 days, we were 3-6 deep in people wanted to play it, so it got a fair hammering.

I spend a fair bit of time showing people how to play it and answering questions, also did a few interviews which was fairly fun.

Since E3, I’ve took a few days off and then we dropped straight into a milestone. This weekend is a bank holiday here in the UK, so figured it was about time I got me a X360. So far Geometry Wars, Marble Blast and BattleField 2 are occupying my time. I’m a bit rubbish at BF2 but still fun with a good friend of mine, ended up playing to about 3am last night. Geometry Wars is assume exactly how arcade should be, fast and furious until your eyes bleed :-) Marble blast is a very different speed but takes some agility.

Marble Blast and Geometry Wars are both really good examples of cheap, indie games and XBox Live Arcade is and excellent way of getting them… Tis good IMO

Relaxed

Sunday, March 19th, 2006

I feeling nice, relaxed and happier after a much better week and weekend.

Work has been a bit smoother and more pleasant over the last week, but whats probably lightened my mood the most, is working this weekend.

The office was all but empty this weekend, apart from some workmen doing some decorating and Marco in on both afternoons, its been empty, which is really nice. Quiet and able to do some programming work.
Most of my time is spent keeping things ticking over when everybody is around, so getting some ‘quality’ time with the kit is nice.

I can’t exactly describe what I’ve been doing, but its extremely low level, what good console programming is all about. So thats what I’ve been doing, munging some data into formats that the different bits of the system can consume and then writing lots of code to manipulate it all as fast as possible. This is where the Cell architecture really starts to pay off, the SPUs are very powerful when programmed at a low level, with an MFC to move data and a decent integer ISA (as well as the float unit that everybody goes on about) they can do this kind of thing with ease. And because they are completely indepedent, you can use them to really leave the PU to other stuff.

Of course the fun bits is that its just like programming an Amiga’s Copper but N times more complex, just like the good ol’ days ;-)

Refuting the lies

Sunday, March 12th, 2006

Somebody at Gamespot forums has decided to claim its all the PS3 fault for my ranty posts… just to make sure its clear that complete crap.

It would have been the same rant if I was working on PC or X360. Its not the platform its the development scale.

For the record, I quite enjoy developing on the PS3 and would love to see what a small indie team could do with her. As a lead, I don’t get much time programming but I actually use PS3 development as relaxation. Even been known to come in at the weekend and ‘play’ with her.

Sorry for destroying a good fanboys illusion… And if I am cracking under the strain, some of it is because some people keep twisting my words beyond all recognisation…