Jun
06
2008
I just put up a post on the PlayStation blog about the PlayStation-edu program:
http://blog.us.playstation.com/2008/06/06/playstation-edu/
It is a program to get development hardware into the classrooms of universities and colleges.
I am giving a talk about it at the Game Education Summit next week in Dallas.
[update]
Made slashdot!
Jun
05
2008
I just converted my app from Cg to HLSL. No real reason, except that I didn’t want to be locked into nVidia graphics cards.
In general, I find Cg more straightforward than HLSL. However, once I finished, it does not really make any difference to my app code because I have abstracted the shader layer away. Considering that I plan to stick with very straightforward shader files (and not even bother with .fx files), it probably does not matter in the end.
My next step is to create a job management system which runs on multiple threads…
May
26
2008
The renderer which I have been working on is based around brushes. At the moment, they are very basic, but they produce some pretty images. As mentioned in previous posts, there is a cube with each side having a different image on it.

I finally hooked up a screenshot function to the app as well as a mode to capture at 30fps. All of those images create a movie. It is not perfect, because the D3D function GetBackBuffer() stalls like crazy. I am still trying to figure out how to capture at a decent framerate without having to use a video capture card.
For the movie, it shows the brushes moving around the images, turning the cube, and a few other effects. Right now, there are very few rules for the brushes, so I need to add some more to see what happens.
The movie.
May
25
2008
The soundtrack to the game PixelJunk Monsters has been released on the PSN Store! There is a great interview of Otograph, the group behind the music over on the PlayStation blog. I managed to find time to play a number of levels in the game…I probably got 5-7 rainbows before other things demanded my time. I would love to go back and play it some more. The amazing thing about the soundtrack is that it does not have any DRM. I can move it off my PS3 to my main PC (where I can stream it to my Roku Soundbridge) and to my iPod Nano for when I go running and traveling.
It is really nice that you can play PixelJunk Monsters via RemotePlay. I can sit on my couch and play the game on my PSP with headphones on, instead of taking over my main TV. The game works just fine and the music is even more addictive with headphones on.
May
18
2008
I have been spending time making a realtime brushing engine. It uses CG shaders to do the rendering and can be driven by scripts or a joystick.
The interesting thing when running in real time is that the brushes fade out and move around. It means that often, it is much harder to understand what the underlying picture is (not that the fish or crabs in the previous videos were easy to understand).
The entire engine is a multithreaded render which builds a command buffer in the simulation thread, while drawing the previous frame’s command buffer in the render thread. The synchronization is always tricky, but I have a number of debugging rendering modes which make it easier to figure out what is going on. At compile time, I can select:
- Multithreaded double-buffer
- Single threaded double-buffer
- Single threaded single-buffer
- Single threaded immediate
Continue Reading »
Apr
24
2008
I am in Tokyo for a few days and I went to the Tsukiji Fish Market this morning. The market is the main place for all seafood for Japan…a giant warehouse of fish, crab, eel, and other sea creatures. Of course, the earlier that you arrive, the more interesting it is, so I was up at 5am to head over there.
After wandering around for a while, I went to get breakfast. The best breakfast around the fish market? Sushi! At 7am, I was eating maguro, saba, uni, and other wonderful raw food. Got to love Tokyo!
Apr
13
2008
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 »
Apr
02
2008
Stormfront 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.
Mar
16
2008
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 »
Feb
17
2008
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.