Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

The Legend of Zelda map and compass

I don't know if this belong here or Script Requests, since I don't ask anyone to make it. I want to make it by myself, and I need some supports then. If I post this in the wrong section, could you (mods) move it? Thank you.

In The Legend of Zelda maps, when we are in a dungeon, we can go to the menu and look at an overview of a dungeon, only if we have Map item. Usually it goes like this.

The map does not refer to one map, the active map where a player is currently in, but all maps that are connected, forming the dungeon.
The visited rooms are shown in brighter colors while unvisited ones are shown darker.
The active room will appear blinking, or have player's icon within it (usually correspond to player's position on the active map).
A dungeon can consist of more than one floor.
If you don't have Map item, only visited rooms will appear. Unvisited rooms remain hidden.

Screenshots here: http://www.rpgfantasy.web.id/dunia_impian/legend_of_zelda/loz3/loz03-09.jpg (I'm sorry if it's too small; tell me and I'll make a bigger one)

As a complement, Compass item is also vital in finding treasures in LoZ series, as well as locating boss room. When we have this item, dots will appear in the map (even if we don't have Map item, they will show on unvisited rooms) providing the position of chests anywhere in the dungeon.

Now, I have managed to have a minimap, but I don't find any script that is able to perform these. So, I'd like to make one.

I need your suggestions on making this script:

1. To display each room, should I draw manually (using external imaging software) or just draw a tiny version of RMXP maps?
I am thinking to draw tiny version of RMXP maps, but I encounter this: Room alignments vary greatly from each other, so how do I align (their position on map screen) and connect them correctly? It might need a new data structure (a whole new Game_ class I think). Or maybe something like this:

Code:
def draw_room(map_id, x, y)
  # Do something here...
end

I don't really know how to redraw RMXP map in tiny version; I should learn first from a minimap script I use (or is there a tutorial of this?).

Of course it can be done manually, but why don't make it automatic?

2. If using external pictures, should I draw a whole overview of a floor in a dungeon or each room?
I think, when using whole overview, I should provide different images to show unvisited/visited rooms and active rooms. Quite time-consuming and troublesome. But, if I draw each room, how do I interconnect them and determine which one is active? I'm planning to give an icon instead of blinking the active room. Or maybe I should use Window_Selectable trick (only selected item will be blinking), but how do I determine who should be blinking (the position)...

3. For mimicking compass feature, how do I draw events according to their position in a room?
Using external pics for drawing a room will make this step troubled I think.

I think if I can manage this for one-floor dungeon, I can do it for multi-floor dungeons. I hope I explain everything clearly...

Oh, and I'm writing it without using SDK, since my game is already SDK-free.

Any suggestion to improve this script?

Thank you for reading (and suggesting).
 
Yes, I have, it is an old script (I think) found in rmxp.net (I can't find it here). squall made it. It works just the same as drawing the entire map and showing only the visible part to the screen, except it is much smaller and every event (player and normal events that marked as NPC, chest, enemy, event, teleport, etc.) is represented by a 1x1 dot. That's why maybe I should learn it first, how to redraw RMXP maps in smaller forms, before accomplishing this :)
 

knmt

Member

You want a map like this , right ?

http://i150.photobucket.com/albums/s106 ... shCapU.jpg[/IMG]

A map like that would be very nice . You have two ways to accomplish it I think . The first way is to draw the map using a graphic editor ( you've already known that haa... ), in this way you can make a room blink by making that room transparent and then put a blinking picture under that room . The second way is to make the map using script , which is not too difficult if you only draw the room , as for blinking effect it works just like the first way .

You have to choose anyway , but I prefer to script ha...

But you said that you were still examining squall's script so maybe you would find the answer you need eventually .

Good luck .
 
Yup.

As I said before, if using external graphics to display maps as shown, I must draw manually the position of those chests (and any other things I need) and draw each room for each floor in each dungeon, which might be troublesome and time-consuming if you have many dungeons and some of them are big. By scripting, I hope I can automate these so I don't even need to draw. Maybe just the icons.

Speaking squall's script, it draws the entire tilesets (except tileset changes by event). I should consider drawing boxes instead of tilesets...

Now I must think how the rooms are connected and how I draw the connections (doors).

Thanks for your input anyway, I'll try that.

Any more suggestions?
 
If you are drawing several maps together as one overview map, rather than making one in a graphics program, it will have to vary from every dungeon you are in, this leaves you with quite a big pile of code if you plan to have loads of these maps in your game, as you would have to place the rooms.

Unless you make a comment in the door/connection event between the two rooms that has the same ID or something, and so it will draw the two maps on each other depending on its direction. Like if specified that the door is exited north, the map would be drawn north from the door event.

I'm sure you get what I mean. I've not looked into the spritesets of RMXP maps, but it should not be a problem if you know the classes well.
 

knmt

Member

if you're planning on doing this alone then I'm not disturbing anymore but if you can hold your work a little longer I really want to participate . Ahh but I will have to wait until July , nevertheless I might just make my own...

good luck to you!
 
knmt":zebn485x said:
if you're planning on doing this alone then I'm not disturbing anymore but if you can hold your work a little longer I really want to participate . Ahh but I will have to wait until July , nevertheless I might just make my own...
Actually I'll be working on this script after July/August, after my final project has completed. The only reason I posted it right now is so I can have an overview of what I should do and how to. I'd love to if you want to participate. But if you want to make your own, that's OK too with me (unless I decide to wait for yours to complete :D).

Mac":zebn485x said:
I recommend looking into the Tilemap class....a class practically used for making Mini Maps.
Speaking of tilemaps, is it worthy if I redraw all maps to be smaller? Depending on how big a floor is, I think the tiles will eventually look too small to see (maybe will also make the overview map looks messy). I'm thinking of replacing them with black/colored boxes instead, as Legend of Zelda maps usually look (see examples above). I don't know about the walls though, since in some cases two or more rooms can be connected each other with open walls, not with doors as usual. Or maybe I should take the advantage of tileset priority (or something in Tilemap class) to accomplish this...

FireRaven":zebn485x said:
Unless you make a comment in the door/connection event between the two rooms that has the same ID or something, and so it will draw the two maps on each other depending on its direction. Like if specified that the door is exited north, the map would be drawn north from the door event.
Yes, I was thinking of that. Every teleports, that connect two rooms, will have comment, although I haven't decided what would it be. Might be tricky though (esp. if there are more than one connections in one side of a room), but doable.

Thanks everyone for your input, I really appreciate them.

More suggestions maybe?
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top