Graphics Transitioning Between Indoors and Outdoors

Ragster

Member
I used to have a fading transition when the player walks from indoors to outdoors, but I removed it because...
1.) My isometric tiles have a few pixels that are hidden when next to other tiles, and the transparency caused them to show through in an unwanted way.
2.) Giving the tiles a transparency value when drawing the terrain drastically slowed my game down.

Right now I just have an instant transition, but it can be jarring to the eyes. I was wondering if anyone knew any good transition styles that are both nice looking and performance friendly.
I've been thinking of a way to save the whole screen to a surface then transition using that, similar to something like Yoshi Story. I honestly don't know how much of a performance hit this would be though.

 
What you can do is remove the tiles appearing in front of the area while keeping the back ones so we still have the feeling of knowing in which building we are. My personal taste in this very simple gif is that the complete darkness is an immersion breaker and a feel of emptiness. I would just play with the building's sprite or sprites, seperate your building in 2 halves and just remove the front half. You CAN darken the outside like DIM it, but not pitch black.

That's my opinion :)
 

Yal

šŸ§ *penguin noises*
GMC Elder
You could copy the application_surface to a new surface right before you engage the transition, do the instant transition as you have now, block player movement momentarily, and then have a new transition object draw that surface with lower and lower alpha (on top of everything else) until it's fully faded out. Should have almost no performance impact since you're just doing a memory copy for the surfaces in the first step (granted, a big one, but it still should be faster than rendering all tiles separately) and draw a single quad in the transition step.
 

pixeltroid

Member
Yeah, it is very jarring to see everything go black when you enter a house.
Since you're working with an isometric view, you could just make the house's roof and the front facing walls fade away, and then reveal the houses interiors. Like this:

iso.jpg


But leave the grass background as it is. And then when you exit the house, the roof and walls can come back into view.
 

Ragster

Member
David, I went ahead and made the outside turn a darker shade when entering the building instead of completely removing it. I definitely like it better now, but I'll have to figure out how I'm gonna hide the front half of the house.

Yal, I disabled the application_surface in my game, but I think I can use that technique on only the the house, and make it appear as if it is "peeling" away when the player enters it. I think that might be cool.

Pixel, going back to dividing the house into a front and back section, I'm not sure how I could do that properly. The depth of the house would be wack, since it's all one sprite in my game. Either: Things behind the house would appear in front of it, OR things inside the house would appear underneath it. I'd have to redo the whole system to make that work, and doing so would use a lot more objects.

Thanks for the replies, I'll take this all into consideration!
 

Yal

šŸ§ *penguin noises*
GMC Elder
David, I went ahead and made the outside turn a darker shade when entering the building instead of completely removing it. I definitely like it better now, but I'll have to figure out how I'm gonna hide the front half of the house.
One idea is to have interiors on a separate layer (or separate it somehow - having houses draw interiors in a user-defined event could work too, drawing them to a special surface, etc), and then have it be hidden most of the time. When entering an interior, make that layer visible, and add an overlay that darkens all exteriors. If it's just drawn on top of the other stuff, it'll just look like you remove the top layer, but it's much easier to just Painter's Algorithm it than to actually remove it.
 

Ragster

Member
One idea is to have interiors on a separate layer (or separate it somehow - having houses draw interiors in a user-defined event could work too, drawing them to a special surface, etc), and then have it be hidden most of the time. When entering an interior, make that layer visible, and add an overlay that darkens all exteriors. If it's just drawn on top of the other stuff, it'll just look like you remove the top layer, but it's much easier to just Painter's Algorithm it than to actually remove it.
Thanks for the idea Yal. I was in the middle of implementing your idea of a user-defined draw event for the structures when I realized I could tweak my game's depth system to work with interiors better.

Here's the end result:

Objects inside structures will never appear behind the structure's backdrop, and objects outside the structure will still behave as expected--objects behind the house are drawn before, objects in front of the house are drawn after--and my house is still all one object! Cheers everyone
 

Xer0botXer0

Senpai
Is it possible for you to make it so all the grass doesn't start their animation simultaneously.. like some start on the 3rd frame etc.. just wondering how that effect would look. :3
 
Top