Archive for the 'Code' Category

Apr 13 2008

Multithreaded Rendering

Published by mdanks under Code, Games

One of the big things for games programming these days is dealing with multiprocessing. I have been working on a multithreaded renderer in my spare time to do interactive brush work. The previous movies for peduncle are all non-interactive. They actually render in faster than realtime, but they just run from a command line. First, I had to create the basic infrastructure, which is not much different than a game. This infrastructure means all of the usual subsystems like fileIO, memory, debug scaffolding, and rendering. I already had fileIO running in another thread. This evening, I got my multithreaded renderer working.

Continue Reading »

No responses yet

Apr 02 2008

Stormfront Studios Closes

Published by mdanks under Code, Games

stormfrontstudios.jpgStormfront Studios has closed its doors. While I have not worked there for a number of years now, it was my first games job…they took a chance on a strange music guy who had been focusing on image processing. I am incredibly proud of The Lord of the Rings: The Two Towers. The tech that my engineering team and I created was truly some of best in the industry at the time.

No responses yet

Mar 16 2008

Cross Core Code

Published by mdanks under Code

I have been dealing with multicore code lately. This is both at work and in my spare programming time. At work, the PS3 is an interesting problem because there are heterogenous CPUs (the PPU and SPUs). It becomes more complicated when there is not unified memory. Licensed PS3 programmers can download my C++ template class which tries to address this problem. At home, I am programming on a dual-core Wintel box, and in some ways it is not any easier.

Continue Reading »

No responses yet

Feb 17 2008

GDC 2008 Prep Work

Published by mdanks under Code, Games

Sunday afternoon…mostly nice day outside.  I’m trapped inside working on my presentations for GDC.  So many good things have happened over the past year with the PS3 that it is taking quite a while to put it all together.  It does not mean that we are done improving it, but it certainly makes me feel good about the future.

One response so far

Feb 13 2008

GDC 2008

Published by mdanks under Code, Games

The Game Developers Conference 2008 is next week. Suffice to say, preparing for it has been occupying most of my time lately. To the game developers who read this (and you know who you are :-)  )and want to meet with Sony, let me know. Our meeting times are mostly booked, but we have a few left.

No responses yet

Jan 23 2008

Numbers with Brushes

Published by mdanks under Code

I spent some more time playing with video output in Peduncle. This time, instead of using a movie file, I fed the system four still images. Each image had a single word on it in a different color – One, Two, Three, Four. The brushes were randomly placed on the images and wanted to move to brighter areas. If a brush was only on a black pixel, then it would randomly move in some direction. I also blended the color from frame to frame so that there would not be sudden changes as the underlying images switched.

Continue Reading »

No responses yet

Jan 22 2008

One year at SCEA

Published by mdanks under Code, Games, Travel

Today is my one year anniversary with Sony. A lot happens in one year…

No responses yet

Jan 22 2008

Amdahl’s Law

Published by mdanks under Code, Games

Amdahl’s law is mentioned a lot these days, especially with the multi-processor consoles which are out in the marketplace. I have been thinking a lot about how it actually applies to a typical game tick-loop. The main thing with Amdahl’s law is that it needs to be applied with all of the information or you can get incorrect results.

Amdahl’s law is the following formula:

 

Where:

F = serial part

N = num cores

For example, if you had an application which was set up as follows:

Amdahl Pic 1

Continue Reading »

No responses yet

Jan 11 2008

Peduncle Video

Published by mdanks under Code

Fish Brush StillI got video output working in Peduncle.  I started with a movie with a couple of fish swimming around.  I randomly place 1024 little “brushes” on it (just small circles).  Each brush always has the color of the pixel under it.  Every frame, each brush wants to move in the direction of a brighter pixel from the underlying movie.  This means that over time, the brushes cluster together on the brighter sections of the movie.

I have a short version and long one.

No responses yet

Oct 09 2007

What is DMA?

Published by mdanks under Code

One of the things which I encounter in my day job is lots of engineers who do not know what DMA is. DMA is “direct memory access.” It is a way to transfer data from one memory location to another. For most PC and Xbox 360 programmers, DMA is handled by the OS and they do not have to care about it. DMA is fundamentally how bytes of data are moved through the hardware. This means that PCI buses do DMA, USB devices do DMA, hard drives do DMA, etc.

For PS3 (and PS2) programmers, DMA is a critical part of how to get the best performance. With the PS3, one needs to understand how the SPUs work, especially since the Cell architecture is based around it. The PS3 has two types of CPUs: the PPU and the SPU. The PPU is a traditional main CPU. It is a PowerPC chip, but it behaves basically like any CPU in your PC, like a Pentium chip. The SPU is a specialized chip which has limited RAM (256k) and is optimized for processing vector data. It is not made for general game code.

Continue Reading »

One response so far

« Prev - Next »