Post-Compo Design Iteration
This post is about developing my game Matters of Perspective for after Ludum Dare. In it, I’ll talk about a quick level editor I made to save tons of time, and how I’m reworking 2D physics for better player experience.
If you haven’t seen my game Matters of Perspective, a game about changing perspective from sidescroll to perspective to explore eerie rooms, please do check it out and let me know what you think!
Even if you don’t rate it, any feedback in the comments is very valuable to me!
Here’s a quick gif showing a change in perspective:

Level Editing
I’ve spent some time figuring out the fastest way to iterate level designs. A fast iteration time means a better level design is approached much sooner. During Ludum Dare, I manually placed a ton of cubes (around 1500-2000!) in all the levels. Iterating those designs was painstakingly slow, and took roughly the last 16-20 hours of my time. After trying a few methods, I’ve settled on writing my own simple editor for level geometry.
With this new level editor, I threw together a large level in about 30 mins, iterating the design extremely easily. Iterating a level’s design includes improving navigability, layout, wall heights, directing the player’s view, hiding an easter egg, etc. Here’s an example of what I threw together:
It looks like creating good levels is going to be a heck of a lot easier than I thought 😀
Reworking 2D Physics
As you could expect, the physics in the compo version of the game were hackishly put together to have something playable, rather than something that was necessarily the best experience for the player. 2D sidescrolling was achieved with a SphereCollider, doing various 2D-style checks to make it work like a 2D character controller. The biggest problem with this approach is ensuring the sphere can pass through gaps as desired. At least once during play, players usually find the sphere catching on geometry that should be the foreground or background.
This issue can be fixed by instead using the 2D physics system in Unity3D. However, this brings up another issue. The sidescrolling I want to do is all done on a horizontal plane, with gravity going down along the Z-axis. The sidescrolling built in to Unity3D’s 2D physics is all done on a vertical plane, with gravity going down along the Y-axis. To make matters more tricky, 3D colliders (like ones I could use to collide with a Sphere) don’t collide with 2D colliders at all, ever. In Unity, 2D and 3D are two totally separate physics systems.
To address this issue, I’ve used procedural generation. In the editor, 3D geometry and colliders are created (a rectangular prism with changeable size), then 2D colliders are generated during play. Depending on the player’s height, different 2D colliders are enabled and disabled, which ensures players won’t catch on “invisible” geometry as they run around in sidescroller mode.

