GB Zelda style scene transitions

Get help using Construct 2

Post » Sat Jan 16, 2016 9:27 pm

Hey guys,

I'm currently building an engine that's supposed to mimic the old GB Zelda games - Link's Awakening, Oracles - and I'm trying to figure out the best way to go about this. What happens is that the screen remains static until you run into the edge, when it then moves and focuses on another screen. It does this for the entire overworld, which is laid out like a very large grid. (Had a YouTube link to demonstrate but the forums killed it, so... I hope that description made sense!)

My question is less about how to accomplish a screen transition that looks like this and more how to handle a giant world map. I could, theoretically, build the entire world map in one layout and just have the camera move on scene transitions, but I feel like that might not be optimal, especially if the world map ends up being really large. My other idea is to store all the data for tiles/enemies/NPCs in code somehow, and do the transitions that way, but I'm not sure how I'd go about doing this.

So - will having a really large world map with a large tilemap in one layout give me problems? And, if so, any ideas for how to start thinking about doing it the other way? Thanks guys.
B
10
S
2
Posts: 22
Reputation: 644

Post » Sat Jan 16, 2016 11:22 pm

Using multiple tilemap objects would be an optimal way of doing this. For example, one level in my game has 65 tilemaps, but C2 knows to not draw areas out of the screen

But we do have a system to handle enemies and other objects. Each tilemap (in your case, each screen) has a "camera zone" object, a 9-patch, that is the size of the tilemap. When the game starts, we destroy every object that isn't in the same "camera zone" as the player
When the player enters a new camera zone, we use the "recreate initial" action to recreate the objects for the area
B
84
S
22
G
15
Posts: 1,039
Reputation: 15,249

Post » Sat Jan 16, 2016 11:58 pm

Interesting - so what's the benefit of using multiple tilemaps instead of just one really big one? And how would I give each tilemap this camera zone object?

Also, regarding recreate initial - let's say in game you did something that made an NPC change position, or change one of its values. If we leave that screen and then come back, it would all reset if we used recreate initial, right? What would be a good way to keep those changes?

Thanks for your help!
B
10
S
2
Posts: 22
Reputation: 644

Post » Sun Jan 17, 2016 3:03 am

Jalopes wrote:Interesting - so what's the benefit of using multiple tilemaps instead of just one really big one? And how would I give each tilemap this camera zone object?


In my case it's just because it's easier to edit smaller maps. I'm using Tiled and then importing to C2

Here's what it looks like in the editor:
http://i.imgur.com/hlknad1.png - Each red area is a camera zone, and below each zone there's a tilemap

Jalopes wrote:Also, regarding recreate initial - let's say in game you did something that made an NPC change position, or change one of its values. If we leave that screen and then come back, it would all reset if we used recreate initial, right? What would be a good way to keep those changes?


Hm idk... in my game you never go back. The only thing that changes is that if you die and respawn, any item you picked up previously won't show up again. That's done by saving the information (UID of the camera zone and an ID for the item) of the item you picked up and then when you enter the room again, you check the save information to see if you recreate the item or not. It's... a pretty complex system, I'm having a hard time even checking it to tell you what it does
B
84
S
22
G
15
Posts: 1,039
Reputation: 15,249

Post » Sun Jan 17, 2016 3:38 am

Ok, I think I see what you're doing. Makes sense, I think I'll be able to do something similar.

As for recreate initial, I might have to use some kind of data structure to store changes and only use recreate initial if no changes occurred... Hmm. I'll have to keep thinking about it.

Thanks again, I'll update here if I figure something out or need more help. And if anyone else has any other ideas, let me know, I'm willing to try anything!
B
10
S
2
Posts: 22
Reputation: 644


Return to How do I....?

Who is online

Users browsing this forum: minigame, R0J0hound and 22 guests