This game is currently being pitched to publishers and hasn't been publicly released yet.

About

A roguelike without combat! Climb endlessly fascinating mountains in your quest to become the greatest climber of all time. However, one fatal slip and it could all be over in seconds.

I have been working on this game with Indiana-Jonas since November 2020. We are currently pitching the game to various publishers to get funding to finish the game. At first I was asked to join to help with the procedural level generation, but as the project went on my tasks became more diverse and we started having a more equal partnership.

Teaser

Level Generation

Rocks

The primary problem to be solved was to create mountains with an organic feeling. I tackled this problem by creating the levels as a collection of organically shaped rocks. I take a level layout and overlay a grid of points that are each offset a random amount. From this noisy grid I generate voronoi shapes that form the mass of the rocky wall. Sharp edges are bevelled off the outer edge of the wall and the entire wall is extruded into a mesh. This point-like approach also really helps out when I want specific regions to be more detailed. For example, the critical path on the mountain places extra points at a regular interval to ensure that the path is never accidentally obstructed.

We can now generate organic shapes based on the outlines of a polygon! The shape generator just only picks points that fall within the polygon.

noisy grid
shapes from grid

Routes

We want to make the entire mountain procedural, though. For this I made a simple level editor within Unity that allows you to draw the outlines of a level with simple polygons. I use this to make level chunks that are later stringed together to generate the mountain. You can have many different types of polygon that indicate the different types of shapes that should be generated within that area. It's also possible to just place in prefabs that will be included in the level generation and they are able to snap to surrounding surfaces on generation.

Level Editor

For the silhouette of the mountain we use a large-scale version of the rock generation and then find the summit. We start placing chunks at random rotation here, going downwards. When placing chunks we try to find chunks that fit within the silhouette and make sure they don't obstruct the path. When all the chunks are picked, we combine all of the geometry they contain and do some extra carving to ensure there is always a viable path. We run the shape generation sequence on this geometry and we end up with an interesting mountain to climb!

(There's also rock processors that do neighbor-checking to make more interesting layouts and a couple of noise functions that simulate erosion, but those would require a more in-depth explanation.)

I hope to be able to share the game with more people soon!

Hop

Concept Art by Indiana-Jonas