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
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
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.
Feb
13
2008
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.
Jan
23
2008
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 »