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.
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:
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.
The first version of the portal looked like this:
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:
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.
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: