Seven: The Days Long Gone - Making 3D Climbing Work in an Isometric Game

Jakub Rokosz and Karolina Kuzia-Rokosz, two of the developers behind the recent isometric stealth-action RPG Seven: The Days Long Gone have participated in a Gamasutra livestream not so long ago. They talked about their game, running an indie studio, trying something new in the good old cRPG genre, and more. Here's the VOD:

And here's an excerpt from the interview-like transcript:

Managing a complicated game camera in a multi-level world

Wawro: What is the rule you use for how to clip away objects in terms of where the camera rotates, and how do you decide which thing to clip away, and when?

Rokosz: Basically, in our game all the environments are done from modules. So there are little breaks that construct the whole map. Our lead programmer, Łukasz Królikowski, was working hard and delivering this feature where basically he has numerous traces from the camera to the player which gather all the objects that could get in the way, and then... I hope I am not making this stuff up! You can follow it up with Lukasz after this stream. But I think he's dynamically doing material replacement with those objects, replacing them in real-time basically. I hope Lukasz answers your question because this is basically a custom-built system that our programmer did.

Francis: It is really cool, I was struck by, in a player's sense, I'm overwhelmed with it in this town just now, how there's so much to do in this one area. Unlike other CRPGs, like verticality here becomes not just a sloping of a 2D space, but it exists in a very big way. Like, right now I'm sitting in the middle of three levels. And of course I can climb on top of things and jump over things.

Wawro: Yeah. This is running on Unreal Engine 4. Let's talk about the challenges you face in trying to make this isometric RPG on Unreal 4 where the character isn't stuck to the ground. One of the most striking things that we'll see is that he keeps climbing over things, sliding off things. That's fascinating. How did you do that? What challenges did you face?

Rokosz: Of the challenges that we encountered, the biggest challenge was how we handled navmesh. All of those objects have edges generated with on them with links and stuff like that, so it had to be generated, and at some point when we started to do our prototypes, we discovered that there is actually a limit of those edges that you can have streamed at the same time. So we had to do a little bit of tweaking to the engine.

I don't know if it had this feature right now, since we're on a fairly old Unreal engine version. We're going to be upgrading soon. But we had to do our custom system which would stream, which would first cut the navmesh into grids, and then it would stream the grids as you progress through the map. The same would go with streaming geometry, just simply cutting the geometry by hand on a level just wasn't cutting it, so we had to design and implement a special system that would take our geometry and take a snapshot of it cut into pieces, and then stream those pieces instead of regular geometry. Those were bigger issues for the early end of development, at the year mark.

Then we started having problems with AIs, like chokepoints on too many AIs streamed. Which is kind of the situations where you can see that the most is exactly the moment you can see the big backdrop at the end where you can see all the levels, and all the monsters and NPCs on those levels, and sometimes you get into having 500 AIs at the same time on the screen. Even though you don't see them because they're small, they're still there.

You can also try the free demo of the game if it sounds like something you might enjoy.