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 »