1. New Heights
  2. News

New Heights News

How we created our climber - Part 2


Like we mentioned in the previous article: for New Heights, creating a realistic physics-based human climber was key for making a genuine climbing experience. But how does one create such a thing? Well, having a human character with realistic physics is mostly a solved problem by the industry: you use ragdolls. The real trick is trying to control that ragdoll in such a way that you can use it to climb walls and boulders in a realistic way. That is what led us down the rabbit hole of Active Ragdolls. That hole goes deep, way deeper than you’d think at first glance.

For starters we needed our ragdoll to stand up, walk and follow animations like a normal character. For this we used an off the shelf solution which simply did that part for us, great! But just having an animated character is not enough to scale walls. We needed to be able to control the limbs separately and aim them wherever we wanted. If you’re familiar with game development, or if you read the previous article you already know the next step: we added an Inverse Kinematics (IK) solution to the project so we could point the arms and legs wherever we needed. To help us out with that we used an IK package which contains a lot of different IK solutions for us to use. At this point we had a solution for making a ragdoll follow an animated character and we had a solution for making the animated character point its limbs wherever we wanted with IK. Now we just had to combine the two of them together!

Alright, easy enough. We just make our ragdoll follow our animated character climbing up the wall! And…. wait. If our ragdoll simply follows the movements of our animated character we still don’t have any realistic physical climbing! We just have what we had before, except more wobbly because of the ragdoll. Clearly, in order to have an actual physics-based climber our ragdoll needs to be in the lead. We need to do it the other way around: we should make our animated character follow the ragdoll!

Rest In Peace :(

Oh yeah that’s right… Puppetmaster was using our animated character to keep our ragdoll upright. Without that reference, we just slump down like a sack of potatoes. Clearly there are two different situations we need to differentiate: walking and climbing. For the walking we can just use Puppetmaster to make our ragdoll follow the character animations like before, nothing fancy here.

Our ragdoll can walk!

But when we start climbing, the physics need to take over and make our animated character follow the ragdoll. So as soon as we grab the wall, we switch control over to the ragdoll!

When switching to “ragdoll mode” our character just falls down

Alright, that’s a start! Now let’s work on aiming the limbs of the ragdoll. As we said before, we can simply use IK to make a limb aim towards a certain point. But we can’t just set the positions of the ragdoll limbs directly, we need to use physics! Otherwise our limbs might clip through rocks or even worse: they could tear our ragdoll apart. To achieve this we make our animated character follow our ragdoll and then perform IK on the limbs of the animated character (shown as the blue skeleton). With this animated limb as our reference, we can then add physics forces to our ragdoll limb to make it match the animated limb. For example: the ragdoll’s shoulder, elbow and hand use physics to move towards their corresponding parts on the animated character as indicated by the spheres. In other words: the ragdoll arm tries to use physics to align itself with the animated arm.

The ragdoll arm tries to align itself with the spheres

Nice, now we can actually aim our limbs and grab the wall. Let’s start climbing!

Our character is too weak to climb, she needs to drink more protein shakes

Oh no… our climber is too weak to pull itself up in any way. We can aim our limbs but there’s nothing that can actually make our ragdoll move up and climb the wall. Right now, we are just weak. We need muscles. WE NEED TO BULK.

In the next article we’ll talk about how we can actually make our ragdoll go up towards… new heights?

Taking our Boulder Gym graphics to New Heights


Most of the levels in our game are based on real world locations and put into the game using photogrammetry. These photo scanned levels have a high baseline of quality because they so closely resemble real life. The photogrammetry pipeline we have supplies multiple layers of textures we can apply to a physically based rendering (PBR) material in Unity; These texture maps include occlusion, roughness, normal maps resulting in a realistic looking surface.

We do have one level that is not based on a real world location: the boulder gym, where you learn the ropes of our climbing system. It's the first level the player sees and experiences and it has been built by hand instead of using photogrammetry. The level is based around the idea of an outdoor climbing gym at an old/abandoned industrial compound. We blocked out the level using some props and buildings. For the climbing walls we used ProBuilder to block out meshes resembling climbing walls. The boulder holds the player uses to climb these walls were made by us (using Blender).

An early version of the boulder gym level

With our photogrammetry process improving over time the boulder gym level quickly fell behind in graphical quality. It did not stand up against the other levels we have in the game. This was problematic for us because the boulder gym is the players' first impression and is also something you see when you watch someone play the game for the first time. With our photoscanned levels being so beautiful the boulder gym needed a graphical lift.

Big quality difference between our boulder gym and photoscanned levels

The first and most pressing items to beautify were the climbing walls themselves. The shapes we made with ProBuilder for the walls were unrealistic looking and had a basic texture on them without any PBR properties. Basically, it was just a block with a simple wooden looking diffuse texture and a basic normal map. We needed better textures to make our climbing walls look more realistic.
I took my camera with me for my next bouldering session and took a lot of photos of the walls (also of the holds, more on that later).
The next step was making these photos tile properly. I tried some AI assisted tools, but they were mostly prompt-driven for generating textures from scratch. I just ended up making the photos tile in Photoshop. My process was as follows: duplicating the texture on the X- and Y-axis, fixing up the seams, removing glaringly repeating elements and making the shading on the image consistent.

From photograph to the diffuse texture used in game

To create a more photo-realistic and modern look the textures needed to fit into the PBR pipeline. I came across a program called Materialize (https://boundingboxsoftware.com/materialize/index.php) that can take a single photo as input and create all the needed texture maps from there. You end up with a complete PBR material, exactly what I needed!
I placed the newly created material on the existing walls and it looked great, but still the wall models were really out of place, so these needed to be updated as well. I modeled some hand crafted looking walls that were supported by beams and planks. It fits great with the industrial boulder gym look that we have. My texture actually has a seam where it repeats but we ended up emphasizing this as it makes a single wall or block appear to be made up of multiple slabs which looks great.

The PBR material creation in Materialize

With the texture workflow in place the climbing holds were also updated using Materialize. I had also taken several high resolution photos of climbing holds in our local boulder gym which I converted to PBR materials. Our holds now look like the real ones with great, grippy texture. I did the same thing for the mats beneath the walls as the old mats were very bland and shiny looking which I didn't like. The new mats are actually indoor mats, but since it never rains in our boulder gym they'll be fine!

More realistic looking holds

The new walls, with mats and holds

Other changes to the boulder gym include adding in some ground clutter for variation and placing some props around the place to make it more believable. One of these props is a long brush that is used in bouldering to brush the holds clean. These brushes were placed around the level by giving them a collider and physics then copying their position after they fell into place; way easier than placing them by hand! I also put the building’s textures through Materialize to increase the overall graphical fidelity of the level.
Additionally we have cats in our levels that the player can find to get an achievement; Unique to the boulder gym level is the dog, which even has its own dog house.

Additional props and assets that were added to the level

The end result is a way more realistic looking boulder gym that looks like it has actual climbing going on. The graphics are also more in line with the rest of the game regarding fidelity and level of detail.

Old versus new!

How we created our climber - Part 1


In this series of articles I’ll tell you all about how we created our climbing system for New Heights. Not only will I explain how it was implemented, but also what steps we took and what decisions we made along the way to get to where we are today.

Like many games before us, New Heights started out as a simple prototype. The goal was to create a game with a realistic climbing system to simulate the climbing and bouldering we do in real life. But then meant to be implemented in a more story-driven adventure game! The first version was based on animations and Inverse Kinematics.

Our first climbing game prototype

We picked some nice walking and climbing animations and we used Inverse Kinematics (specifically: Final IK) to aim the limbs where we wanted them. For the first version this worked well enough. While you were moving along the wall we played a nice “shimmying” animation which we blended based on the direction you were moving, we kept the arms where we wanted them with IK and we simply moved the entire body up/down/left/right based on the input of the player.

You can see the hands away from their holds while the character is moving around

But there were some awkward quirks to this system. Most prominently: it was pretty hard to keep the hands and feet locked at the position they were grabbing. After all, IK simply aims a limb towards a point but doesn’t impose any restrictions on our character movement at all. We had to program these restrictions ourselves by introducing a maximum distance the player could move from each of the limbs they were holding. For example: we didn’t allow the player to move further from a hand that was grabbing a hold than its arm length.

But what if the player is rotated slightly? What if the limb is restricted in some other way? What if the limb grabs something around a corner? The system was beginning to show its flaws…

Yet, we pressed on. We improved it as much as we could, we removed some of the climbing animations to prevent the character from wriggling on the wall too much and improved the movement limitations. We implemented some rotation limits and tried to make the climbing look as realistic as possible. For the first prototype this worked fine, the character felt snappy and responsive, it looked decent enough and people could test our climbing mechanics. All of which gave us the confidence to continue the project and to build it into a fully-fledged climbing simulator.

But we kept having the feeling that the climbing just didn’t look good enough. In certain situations the character felt like it was floating instead of climbing. The character lacked “weight” and the climber always just stuck to the wall without ever losing its balance or sliding down. Everything felt too static and predictable, it lacked the suspense of real climbing.

You can make the character float

The more we discussed it and the more we tried to implement changes to improve the feeling of the climbing mechanics the more the limitations of our current animated-based implementation started to show. In order to improve it we were trying to simulate the physics involved in climbing itself: how your character would “hang” on your limbs, how your rotation affected your reach, how your character would fall over if you were out of balance and probably a countless number of other ways real-life physics would affect your climbing experience.

We realized we were fighting the inevitable: in order to make it feel truly realistic, we couldn’t just simulate these things ourselves. We needed to introduce actual physics to our character and while it required us to rework the entire climbing system we built thus far, there was no other way around it: we needed to make our climber entirely physics-based. We needed to use active ragdolls.

In the next article we take our first steps towards making our active ragdoll climber. We’ll look at the basic setup, how we aim its limbs and how we can combine the ragdoll with character animations.

Next Fest Developer Gameplay Stream



A chance to see someone with waaaay too much in-game experience in New Heights!

This evening, one of the developers of New Heights will be playing the game, occasionally commenting on how things are made and what we are still working on. He'll attempt to climb the hardest routes and compete for the fastest times on the leaderboard as well.

Chat will be enabled, so Ask Me Anything!

Early Access Release Date: July 6th


I'm very excited to announce that the Early Access version of New Height will be released on July 6th, 2023! That means you'll be able to play the full version of the game in less than a month!

Of course you'll find that we are going to add content throughout the year. There are lots of locations in the planning.

The retail price is likely to go up as we add a lot more content. If you get the game now, you'll have access to all of it for a low price! And you'll support us, when we travel around to scan locations.

We are constantly improving the climbing system. Also there are going to be more features and more languages. If you have an idea about how to improve the climbing in New Heights, please let us know in the Discord server!

Starting today, you can try out climbing to New Heights for yourself! A brand new demo is playable during the Steam Next Fest this week. You can find it at the store page.