GDC Talk, Portals, and World 002 WIP

The GDC talks from this year have finally been uploaded to the vault. Some of the talks you need a vault membership in order to access.

Fortunately, my talk, “Level Design in Impossible Geometry” is up on the vault for free.

level design with impossible geometry


It covers my approach to designing levels in Manifold Garden, and goes into detail of what impossible geometry is. I explain how to image world-wrapping in 3D, and the talk also has some general guidelines that I’ve found to be useful when working with really confusing geometry.


We finally have portals working in the game now! Well, technically, I had portals about 2 years ago, but the system has been completely overhauled. It ties together with level loading, so is an incredibly complex system. David has been working on it for the past several months. It’s still not complete yet, and there’s still a lot of problems, but it’s really awesome that a basic version is now in place.

This is a significant milestone because portals are the glue that hold the levels together. I’ve mentioned this before, but in the game, there are no loading screens (aside from the first one), and no level select menu. The entire world of the game is seamlessly connected. However, up until now, because portals were not in place, each area had to be tested separately. I could not test for puzzles that took place over multiple levels. I could test for intra-area puzzles, but not inter-area puzzles. Now, with basic portal functions, we can start testing the game as one continuous flow, which is very important.

To connect the portals, David made a great tool, the portal path maker:

portal path maker

Each node is a level, and inside the node is the portals that are contained in the level.

To connect two portals together, I simply need to click on one, and then click on another. The lines show the connections between the portals, which is very useful.

Portal design:

The first version of the portal looked like this:

Portal Going Through

It was similar to the way the portals are in Portal. Stepping through it took you from one world to another.

However, I didn’t really like the way this looked. Looking into the portal, if the other side was a room similar in size to the room you’re currently in, the perspective didn’t look to be that different.

Plus, there is the issue of the edge detection shader picking up the edges of the render texture:


Note that the other side of the portal has the shadow all screwed up. This is apparently a problem on Unity’s end when doing with the particular view matrix being used here. Supposedly it will be fixed in Unity 5.5, so going to wait to upgrade to that.

Here is the new portal design:

portal going through wormhole

The black zebra stripes were initially placed there to deal with the edge detection issue. The black material covers up the edges due to the render texture, and makes it feel seamless. The stripes also really stand out – the pattern is never seen anywhere else, and it’s a very striking effect when walking down the tunnel. Plus, the tunnel view really enhances the difference in perspective of the portal when looking through it, the sense that there is this other world and the geometry is bizarre.

Right now the tunnel is actually it’s own separate scene, but I think we can make it an area in the same scene (just far enough away that the player can see it), so that the portal into it is an intra-level portal, as opposed to an inter-level portal. It may give us more breathing room in terms of loading and unloading levels.

Loading Percentage

loading percentage

Another really cool feature that David added is that the levels are now enabled or disabled in piecemeal, instead of either being completely on or off.

In the above picture, you are in World_001. On the other side of the portal is World_031. You can see that both levels are loaded in 100%. Both levels are actually in same spot, but the colliders for World_031 don’t get switched on until you cross over, and it is on a different camera layer.

As you step near a portal, the level on the other side gets loaded in. Right now, the condition for loading in the level is when you’re 20 units away from a portal, but this can be tweaked according to each situation.

Wold_002 Work In Progress Pics

Here are some images of the level I’m currently working on:

ManifoldGarden_2016-04-09_14-26-35 ManifoldGarden_2016-04-09_14-28-03 ManifoldGarden_2016-04-09_14-29-03 ManifoldGarden_2016-04-09_14-31-16 ManifoldGarden_2016-04-09_18-37-05 ManifoldGarden_2016-04-09_18-37-21 ManifoldGarden_2016-04-09_18-38-26

Pre-PSX Madness

Ran through the latest build of Manifold Garden on the PS4 devkit before PlayStation Experience. It is playable from start to finish. There are still a few things I’d like to add, but it’s icing on the cake.

The biggest improvement in this build is that the game is actually running at 60 FPS on the kit! 60 FPS feels wonderful. Smooth like butter.

David really did some fantastic work with optimization.

Also, new Manifold Garden prints have arrived, and they look fantastic! These will be available for sale at PSX:


Earlier today, I was on a panel (virtually), along with Ken Wong (of Monument Valley) and Ty Taylor (of The Bridge), talking about Escher and game design at the North Carolina Museum of Art. It was pretty cool. Not sure if it will be posted for viewing later. I believe it was recorded.

Anyway, it was fun, and really interesting to hear about the context of Escher in art, as well as Ken and Ty’s thoughts on how they used his work in their designs.


Finally, here are a bunch of screenshots from the latest build of the game, captured directly from the devkit:

manifoldgarden_devkit_capture_001 manifoldgarden_devkit_capture_002 manifoldgarden_devkit_capture_003 manifoldgarden_devkit_capture_004 manifoldgarden_devkit_capture_005

Alright, back to PSX prep!


Been really busy the past several weeks, getting ready for name change announcement, and a ton of stuff in the works.

To be honest, I’m feeling pretty stressed out and overwhelmed. I think once the name change announcement is made, I’ll be able to rest for a bit.

Writing here just to let you all know development is still going, and I will get back into regular posts here soon.

I’m still streaming regularly over on Twitch:

Here are some screenshots of a glitch effect I’ve been playing with:

1 2 3 4

This happened due to some weird bug in the shader that renders the depth buffer inverted from everything else.

Here’s one of my favorite screenshots that I’ve taken in a very long time:


Also been working on water – that’s almost done. The hardest part is getting it to work with world wrapping. There’s a lot of edge cases.

David has also been working on a level editor. More stuff to show about that soon.

Orthographic Edge Detection

Started working on orthographic projection edge detection.

Here were the first few passes. The lines are too thick:

1 2


Glitchy effect due to my other edge detection shader not working well with orthographic camera, but still really cool looking!



You merely adopted the madness. I was born in it, molded by it:

6 7 8 9

Playing around with adding background color:


Getting close:

13 12 11

This geometry above is probably too bland and repetitive. But the lines are getting there.

Stepwell level, still a bit glitchy:


Future poster?