GB Zelda style scene transitions

0 favourites
  • 5 posts
From the Asset Store
3D Rendered, High Resolution elements to create an apocalytic scene or war zone
  • 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.

  • 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

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • 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!

  • 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

    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

  • 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!

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)