We are a small team working on an isometric game inspired by titles like Death’s Door and Tunic. We’re looking to implement a room system similar to the ones used in those games, but we’ve been stuck for a while on how to approach it. Any advice or guidance would be greatly appreciated
What’s the part that you’re concerned about? The code? It might help to describe the system in those games as you understand and appreciate them.
The easiest way would be to have each room be a different scene, make the player “DontDestroyOnLoad” and just unload and load the scenes while fading to black when the player passes some object which keeps the information of which scene to load next.
I don’t think that’s really the easiest way at all. The easiest way would just be to make room prefabs instead since now you don’t have to deal with transferring over any of that data or dealing with async loading in the first place. Then all you have to do is call SetActive.
That does mean everything is in memory the whole time though, but true it would be even easier.
I wouldn’t consider memory use an issue with the complexity of the rooms on display in the example video.
Yeah I’ve tried that but it doesn’t look like the transition in game
In game (gif) it looks like he transport or walk in the same room not transition between scenes
I mean how they designed separate rooms while maintaining a seamless background, and how the transition between rooms appears so smooth. And about how they handle the change in environments without breaking immersion.
A simple post-processing effect darkens the screen, the old room is unloaded, the new room is loaded, the same effect brings the screen back to normal.
From having played the game those instant transitions did feel like those rooms were already present (loaded). There’s proper loading done between each major area.
But you can notice that the room you’ve moving to doesn’t fade in until the previous one has faded out, so it’s just a simple but very quick fade-to-black that gives the impression of a smooth transition. But at the end of the day, it’s just one game object being made inactive, and another made active. Or, the player is being quickly moved between two points.