Oliver Franzke
banner
p1xelcoder.bsky.social
Oliver Franzke
@p1xelcoder.bsky.social
I'm making colored pixels for Double Fine Productions. Lead Programmer of Broken Age. Also worked on Keeper and the remastered versions of Grim, DotT, FT and Monkey Island.
One thing I didn’t cover in the video is how we handle emissive glow. Instead of using a third cubemap (and increasing GPU bandwidth), we used color segmentation: the user picks which part of the base color should glow. It’s surprisingly effective and very cheap.
bsky.app/profile/p1xe...
December 2, 2025 at 8:34 PM
If you are curious how the morphs were made in Keeper, then you can watch me create this "monkey-bunny" from scratch utilizing the tech I developed for the game. Enjoy and let me know what you think. :)
www.youtube.com/watch?v=f9V_...
December 2, 2025 at 8:40 AM
I'm finalizing a video in which I create a morph from scratch and it looks like one needs a over-the-top pose for the "key-art" to grab attention. :P
Which one should I use?
November 28, 2025 at 2:06 PM
Todd Vaziri's great Vanity Fair piece reminded me of the Owlbear morphs in DnD Honour Among Thieves. Due to the non-interactive nature of the medium there are lot more tricks one can use. Super cool stuff.
November 27, 2025 at 10:25 PM
Additionally Annihilation also features a lighthouse... without legs though, so we win on that front in terms of weirdness.
November 26, 2025 at 7:24 PM
Given what I've shown so far it won't come as a big surprise that Annihilation was a huge inspiration for our morph tech. This movie captures how truly weird alien life could be... and weird is what we wanted to achieve in Keeper.
bsky.app/profile/p1xe...
November 26, 2025 at 7:21 PM
Here is another fun example of what one could do with the symmetry operator.
On a related note... I do love my job! :)
bsky.app/profile/p1xe...
November 26, 2025 at 8:26 AM
The symmetry operator is one of my favorite effects in the Keeper morph tech. It is so much fun to play around with since it creates absolutely stunning visual pandemonium like this one.
November 25, 2025 at 8:15 PM
The morph-of-the-week is the awesome "gear door", which was inspired by the "hands door" I talked about. With Lee's concept Nick modelled and animated this morph. I love the fact that gears temporarily appear while the passageway is revealed. The spinning ones are additive.
bsky.app/profile/p1xe...
November 24, 2025 at 7:32 PM
We need more "hand doors" in games like this one from the movie Return to Oz.
November 24, 2025 at 12:15 PM
A major inspiration for the morphs in Keeper is the Nome king and his creatures from the movie "Return to Oz" (1985), which Jeremy brought to our attention. Rock surfaces change shape in unexpected ways and stuff appears / merges with the environment thanks to the wonderful stop motion animation.
November 21, 2025 at 8:43 PM
With the rising platform we recognized, that the morph tech isn't good at growing branches organically. Much later in the project Danielle used Houdini to make these awesome growing vines for the glyphs. Unfortunately we never got the chance to combine these with a morph.
bsky.app/profile/p1xe...
November 21, 2025 at 8:56 AM
This Morph-of-the-Week is the growable platform - one of our earliest production morphs. Starting with the awesome concept by @leepetty.bsky.social the states were modelled by Nick. Once captured I set up the scene-graph and animated the morph. @lanethan.bsky.social added the cool foliage and fruit.
November 20, 2025 at 8:21 PM
The surflets actually flow nicely. :)
For the distance field morphs it doesn't quite work like that. I spent quite some time pondering solutions but it didn't yield in anything useable. Essentially you would need to author a in-between shape that you then use to transition from state A to B.
November 20, 2025 at 7:33 PM
In the Fall of 2021 - long before "AI" lost its soul - I did some experiments with early generative image models. Running a recording of myself looking around the room through VQGAN yielded in a wonderfully bizarre mess.
November 19, 2025 at 10:09 PM
I realized early on that a spatially constant cross-fade is nice, but for maximum expressiveness, spatial variance is required. We’ve added support for different transitions as a component that’s parented to the associated operation’s scene-tree node. You can even use a two-point Bézier spline...
November 19, 2025 at 7:14 PM
Most morphs in the game have a fairly simple scene-tree (like in the illustration), but it can get quite complicated. A perfect example is last weeks morph-of-the-week: the bridge.
November 18, 2025 at 7:18 PM
Keeper's morphs are authored as scene-graph or more specifically as a scene-tree, which is evaluated bottom-up. I wrote a “compiler” which turns the tree into a command list which can be executed on the GPU. The compiler does a fair amount of optimization (e.g. dead branch pruning) to minimize cost.
November 18, 2025 at 7:14 PM
The size of the morph proxy mesh is a major factor when it comes to shading cost. If the shape of a morphed object changes dramatically then a conservative proxy wastes GPU cycles. We therefore implemented an implicit selection method which picks the best proxy based on the state of the scene-graph.
November 17, 2025 at 7:15 PM
To reduce the number of ray-marching steps needed to find the surface of our morphs we generate a proxy from the constituent meshes. It must fully enclose the morphed surfaces while remaining as tight as possible to maximize throughput. We want to minimize the red and blue regions in the debug view.
November 14, 2025 at 7:16 PM
Here is a early prototype of this bridge. Not quite as expressive as the final version, but still looks quite neat.
November 14, 2025 at 8:44 AM
We shipped Lucidity (in 2009) using XNA and writing the engine and toolset in C# was such a pleasure. :)
November 13, 2025 at 8:29 PM
I ported Broken Age and the adventure remasters to the PS Vita and man look at how huge the SteamDeck is compared to the Vita. :o
November 13, 2025 at 8:10 PM
Here is a close-up (and partial slow-down) of one of my favorite morphs in the game: the bridge in the Mountain Shrine. When I first got the rock to look like flowing water at the end I was elated. :)
November 13, 2025 at 7:05 PM
I’ve talked about how Keeper’s morphs use distance fields (DFs) as their surface representation. But if there are no polys, how do we render them? A DF gives the distance to the nearest surface at any point, which we can exploit for rendering by marching along the view ray until we hit the surface.
November 12, 2025 at 6:45 PM