Tomorrow will mark one year since the release of #Jusant, and to mark the end of #Blocktober, I wanted to pay a small tribute to this game I spent three years leading the design for - with an incredible team to say the least. A small(ish)🧵
Oct 30, 2024 · 10:32 PM UTC
Even though I wasn’t in charge of designing levels, I had the pleasure of handling the core gameplay mechanics that the game revolves around. And since I’ve got a thing for camera-related things, let’s dive deep into that!
Our game drew from multiple references, from Journey, to SOTC, or even Death Stranding. They all stood out for their camera systems. These games excel in making the camera almost invisible to players during gameplay, while simultaneously using it to convey powerful emotions.
Drawing from these games (and many others), I applied a few core camera principles:
1⃣Player control always takes priority over the system
2⃣Automatically move the camera only during player movement.
3⃣Keep it simple—unless intentional.
Let's look at Jusant's implementation.
Let’s dive into auto-follow. In Jusant, the camera recenters on yaw and pitch in different scenarios, adapting to vertical movement as much as lateral. Unlike typical third-person games, vertical space is key here, so the camera actively supports the player’s journey upward.
In all these video examples, I didn’t touch the camera controls. The system tries to find the best angle based on your actions. Obviously, players wouldn’t leave it all to auto-follow—it’s more like I nudge 20% in the right direction, and you handle the other 80%.
Sometimes, I want players to feel they still need to act. Take this video, where I rappel up and down without touching the camera—when I hit the pitch limit I’ve set, there’s still 15° left for manual adjustment. Once again: assist, but keep control in the player’s hands.
Now, about camera offsets in Jusant. Though rare, they always serve gameplay. The hero is mostly centered, but exceptions can include a slight horizontal offset during rope swings to help aim for holds, and a pullback at the backward apex to reveal more of the environment.
Or how we apply a very minimal offset (a hundred unit) when you're grabbing a ledge that you can vault into - letting you know that all is good, you've reached your current destination, you can relax😌
In the games mentioned earlier, the camera often pulls back to reveal the avatar's position within the environment. Jusant uses similar on-rail cameras, either to support gameplay or to build atmosphere (or both). As always, player control remains available, though limited.
On-rail cameras posed unique tech and design challenges, like blending in and out of gameplay cameras and preserving stick memory during transitions. Also, each one had to be carefully tweaked by designers, as they’re tools rather than traditional gameplay cameras.
Now, onto pumping and collisions. We all hate when the camera freaks out from too much going on. Since we didn’t make objects transparent, we used a dual tagging system: some static meshes, like cliffs or pillars, are tagged as normal to fully block the camera’s raycast, while…
...other objects are tagged as thin, allowing the prediction raycast to ignore them (like barriers). This doesn’t mean the camera can pass through; it just shortens detection. These small tweaks create a smoother camera experience, especially in tight spaces.
And if the camera must “pump” due to a collision, don’t let it pull back instantly when new space opens up. Instead, wait a few milliseconds and check if the player isn’t using the camera. It’s easier on the eyes to stay close to the player than to snap back and forth abruptly.
Alright, let’s wrap this up—this thread’s getting long! There’s so much more we did with the camera: subtle shakes, an 89° max pitch (⁉️), directional lag, cinematics, and more. Working on cameras is a paradox; it takes immense effort, yet...
...it'll be effortless and invisible for players. Noticing the camera is the start of trouble, so make your cameras invisible, always with intent about what they should convey!
Anyway, happy anniversary, Jusant! ❤️💙









