Indie Dev

Hello Guest!. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, sell your games, upload content, as well as connect with other members through your own private inbox!

RPG Maker MV Mini-Map Plugin

RPG Maker MV Mini-Map Plugin 2.3.2

No permission to download

TheUnproPro

Boondoggle
Staff member
Resource Team
Partner
TheUnproPro submitted a new resource:

RPG Maker MV Mini-Map Plugin - A minimap for your games!

Hello everyone! I'd like to introduce my first MV plugin. This plugin basically creates a mini-map for your games. You draw the minimap using Regions, so there are tons of color combinations you can use, making your mini-map unique from others.

The mini-map is 100% customizable, you can define its size, as well as the color displayed for EACH and every region id.

Video: (Coming Soon)


HOW TO USE:

This plugin lets you draw out a mini-map using Regions! Region 0 = background color.

To...
Read more about this resource...
 

Xilefian

Adventurer
Xy$
0.00
Excellent for a first plugin.

I'm not sure about using the regions for defining the mini-map. Some games probably already use regions for other features, so that could be a deal-breaker.

If you are going to use regions, I think I'd have made it so you need to enable which regions you want to use individually.

It would probably be a good idea to use the collision map, rather than the region map, to generate the mini-map. Perhaps use regions as a way to touch-and-tidy generated mini-maps (things like hiding passage ways).

There are a LOT of parameters. That's great for customisation, but isn't nice for implementation. I think a parameter that handles JSON input for manually enabling what regions are used (as I mentioned just above) would have been a lot more flexible, with only 1 parameter rather than 255.

Relying on the string conversion for colours is a bit iffy too. I can imagine some user errors caused there (from a commercial game my studio is producing in a different engine there was once a small error where colours were input with #AARRGGBB, but coded as 0xAARRGGBB which caused confusion as to which one should be used with the string parser, I can foresee a similar mistake happening with users of this plugin). There's many ways to do colours, I think supporting the different ways would have been a nice little bonus.


Your mini-map renderer is only called once when the mini-map is loaded, which is good because the renderer is inefficient (not a problem at all). If you were to make it live-update, however, then it could be an issue.


I don't think I like the way the player indicator is handled. Every frame you clear a buffer that is the same size as the mini-map, only to draw a tiny little indicator for the player, which is removed on the next frame?

What you should do is detect if the player has moved (rather than redraw every frame), then clear only the area where the player was, then draw where they are now. Even better would be if this was done on the mini-map itself to avoid all the transparency (transparency costs blending, it's not worth it).


Not a fan of the command system using upper-case, but the true/false booleans are lower case. Also, your booleans are compared as strings, not really the best thing to do.


Overall; a really, really good first plugin. All my complaints are about technical implementation and the developer's usage, for players this Plugin is 100% fine.


I'm tempted to steal your idea and remake it in the way I'd prefer, similar to how I stole CT_Bolt's idea of events touching triggers and improved on that. Would you give me permission to do so?
 

TheUnproPro

Boondoggle
Staff member
Resource Team
Partner
Xile;
Thank you so much for that feedback. I'll do what I can to improve it! The only way I knew how to set params was Number and String, but I'll continue to learn and produce higher quality plugins.

"It would probably be a good idea to use the collision map, rather than the region map, to generate the mini-map. Perhaps use regions as a way to touch-and-tidy generated mini-maps (things like hiding passage ways)."

Agreed, I think I'll make 2 versions... 1 of them being automatic using the Collision Map, and the other using Regions.


"I don't think I like the way the player indicator is handled."

Also agreed, was desperate to make it happen, and thanks! I'll try to find a way to check if the player has moved then clear only the specific area.

I was aware of some of the redundancies, but didn't think about that one for some reason... which is odd, because normally I'd have thought of that.

That being said, I'll try to learn about how JSON works as well!
 

Dad3353

Praised Adventurer
I'm somewhat 'allergic' to plug-ins, and have yet to really use any (I don't trust all of this 'in the right order' and compatibilité issues as yet...), but this looks as if it'll come in handy for those playing my Game, so I'll give it a try. No promises (and I already use Regions myself, so I'll have to see how it behaves with coexistence...). It certainly looks impressive. The Multi-Currency system you came up with is working a treat, so confidence has been raised. Back later with a mini-revue...
 

Xilefian

Adventurer
Xy$
0.00
Also agreed, was desperate to make it happen, and thanks! I'll try to find a way to check if the player has moved then clear only the specific area.
Specific areas would be cleared by painting a rectangle with the "transparent" colour. If you're drawing directly to the mini-map, you can just reuse the code that selects the colour from the region map and redraw that.

As for checking if the player has moved, you can overload Game_Player.prototype.increaseSteps to detect if the player's step has increased and overload the transfer event to detect if the player has teleported, then erase the old player location at the stored X/Y, then set the stored X/Y to the new player location and paint that on the mini-map.

Alternatively, you can check if the X/Y has changed every update, which is less efficient but means you won't have to track down all the individual functions that could potentially change the player's location.

If you were really clever, you could set up a setter for the player's X/Y and hook onto that - but there'll be ways to break this also.
 

TheUnproPro

Boondoggle
Staff member
Resource Team
Partner
Ah, many thanks, Xile! I'm working on the basic version now which uses collision map. I'll apply all the things you gave feedback on as well, improving overall performance.

I've also removed the Number and String from my params, now all of the values are exact and I'm hoping you can even use rgba().

Also, for now, I think I"ll go for the way thats a little less efficient until I can get a better grasp of plugins and become more comfortable creating them...
 

Dad3353

Praised Adventurer
Back again, after having installed this in my 'Dummy' testbed sandbox. It works a treat. Easily adjusted for Map dimensions, easy to set up, at least for basic 'Go-No go Map indications, and easy to set up specific Event indications. I added a Map On-Off Switch Event, for instance, and gave it its own colour code and Region, and could easily spot it on the MiniMap, and was able to easily toggle the Mini-Map On and Off. Good stuff, lad; good stuff.
Downsides..? Not lot, as a neophyte old duffer of a User, but I'm not up to speed with the colour codes, so had to guess a bit. I thought it more prudent to limit my trials to just 'web-friendly' codes, but didn't get the colour I was expecting on the Mini-Map. No great shakes; it won't take me long to work out what works and what doesn't (although RGB might be easier...). I'd use this 'as is', with no qualms. If it gets improved or optimised further, I'll adopt, too. I'll not start putting regions and such into my real Rachdale Cheese Game Maps yet, if it's going to evolve, but I'll keep playing around with this to get a better hold on it. My thumb is up and my hat duly doffed. Well done, Sir, and thank you.
[doublepost=1470260364,1470258016][/doublepost]Just a small remark... When I toggle the Mimi-Map Off, the Player position is still displayed (a tiny dot on the now totally transparent Mini-Map...) I'm not sure if this is intentional, and it's easy enough to toggle Show Player whilst I'm at it, but I thought I'd mention it. I just found it odd to have the player visible without the Map.
That's all; as you were, men; stand easy.
 

TheUnproPro

Boondoggle
Staff member
Resource Team
Partner
UPDATE:
New, simpler version that uses collision data is complete, just gotta modify it and will post an update tonight or tomorrow.


News on this version:
I plan on making it even better, supporting rgba() modes instead of just hex codes, as well as improving a bit of rendering performance.
 

Dad3353

Praised Adventurer
Would anyone care to explain to an idiot exactly what 'collision data' implies, please..? (blush)

Edit...

... and now for the flood of complaints, reclamations, requests and more..! (No, no complaints; just kidding..! (joking))

Firstly, not all of my Maps will have need of this; indeed, I wouldn't want it available at all until it is 'discovered' by the Hero in his Quest. To this end, would it not be possible to have, as a parameter, to have the Mini-Map Visible or Hidden as default at Game start..? (I would choose Hidden for my needs...) It's true that I can turn it off, but would presently have to do this for each Map.

Secondly, and maybe more difficult, my Maps are of differing sizes (some wildly so...); there is no 'one size fits all' that I could define in the parameters. Some of my maps are horizontal (200 x 50...), others vertical (20 x 200...), still others square (60 x 60...). Could the plug-in look up the Map size and adjust itself accordingly, with a 'scale' factor..? As an example, my 60 x 60 map is suitable for me with a scaling of 2 (I enter 120, 120 into the parameters...).
An option to this could be to have a 'scrolling' Mini-map, showing an area centred around the Hero of, say, 32 Tiles around..? Just a thought...

Lastly (for now..!), as a future evolution, could there be a way of 'tracking' an Event (a lurking vilain, or wandering Unicorn; anything, really, but moving...)..? Not by using Regions, of course; maybe in a similar way as tracking the Hero..?

Sorry if this is a pain in the rear, and it really does work well on the many Mazes, Labyrinths and Puzzle Maps in my Game. Am I asking too much, too soon..? I wouldn't want to discourage you from posting future plug-ins..! (blush)
 
Last edited:

TheUnproPro

Boondoggle
Staff member
Resource Team
Partner
There is a parameter to set it invisible to start :P and the mini-map should scale accurately to any size of a map you have. I'll work on a way to adjust its size in real time. And, yes, I'm also working on the event display as well O:

Collision Data basically means if a tile is passable or not O:
 

Dad3353

Praised Adventurer
There is a parameter to set it invisible to start :P and the mini-map should scale accurately to any size of a map you have. I'll work on a way to adjust its size in real time. And, yes, I'm also working on the event display as well O:

Collision Data basically means if a tile is passable or not O:
You are, of course, correct, Sir (how could it be otherwise..! (joyful) ); my fault for not looking closer. The auto-scale works, but 'squashes' the X or Y when the Map is rectangular and the parameter is square. Liveable with, though, so that's fine.
Slightly worried by the 'passable' bit (but thanks, of course, for the explanation...). Would this preclude the marking of key Events or special passages, which is easily done with the Regions..? Could I, for instance, indicate on the Mini-Map the presence of a Door, or Secret Passage, or a Treasure Chest..? Or are the two methods able to be combined, to have 'Passable', plus individual Regions for special stuff..? Hmm... Maybe I should wait and see, eh..? (jolly)
 

TheUnproPro

Boondoggle
Staff member
Resource Team
Partner
You are, of course, correct, Sir (how could it be otherwise..! (joyful) ); my fault for not looking closer. The auto-scale works, but 'squashes' the X or Y when the Map is rectangular and the parameter is square. Liveable with, though, so that's fine.
Slightly worried by the 'passable' bit (but thanks, of course, for the explanation...). Would this preclude the marking of key Events or special passages, which is easily done with the Regions..? Could I, for instance, indicate on the Mini-Map the presence of a Door, or Secret Passage, or a Treasure Chest..? Or are the two methods able to be combined, to have 'Passable', plus individual Regions for special stuff..? Hmm... Maybe I should wait and see, eh..? (jolly)
Set the minimap size to have equal width and height, (try 96x96 or 128x128)
 

Dad3353

Praised Adventurer
Here's a screenshot of the Southern Lost Forest, about to head North. The Mini-Map is set to 128 x 128, as suggested. The Map is 60 x 60...
We head North and come into the Forest of Decay; the Map is 60 x 100...
We can see all of the Map (that's a Good Thing...), but its ratio N/S has been squashed. Are the X/Y axis swapped..? X looks as if it could be 100, and Y 60. As I remarked though, it's liveable.
Note the extra colours in the second Mini-Map, which correspond to Regions showing hidden passages and stairs. Would this still be possible with the Collision Data method..? Passability is not, for me, the only factor. With Regions, I show the whole landscape, trees, rocks and all. The road is traced, but there are obstacles, detail of which is not shown on the Mini-Map. In fact, I've a very large Maze stuffed with moveable (but not passable...) boulders; I wouldn't want a Mini-Map to show up the boulders (they'll move, anyway...), just the Maze. How would a Collision Data deal with this sort of Map, please..?
With the answers to my (Dumb..! D'oh...) questions above, I'm quite happy with the plug-in 'as is'. If a Collision Data system adds to this, I'd be pleased, of course.
 
Last edited:

TheUnproPro

Boondoggle
Staff member
Resource Team
Partner
Here's a screenshot of the Southern Lost Forest, about to head North. The Mini-Map is set to 128 x 128, as suggested. The Map is 60 x 60...
We head North and come into the Forest of Decay; the Map is 60 x 100...
We can see all of the Map (that's a Good Thing...), but its ratio N/S has been squashed. Are the X/Y axis swapped..? X looks as if it could be 100, and Y 60. As I remarked though, it's liveable.
Note the extra colours in the second Mini-Map, which correspond to Regions showing hidden passages and stairs. Would this still be possible with the Collision Data method..? Passability is not, for me, the only factor. With Regions, I show the whole landscape, trees, rocks and all. The road is traced, but there are obstacles, detail of which is not shown on the Mini-Map. In fact, I've a very large Maze stuffed with moveable (but not passable...) boulders; I wouldn't want a Mini-Map to show up the boulders (they'll move, anyway...), just the Maze. How would a Collision Data deal with this sort of Map, please..?
With the answers to my (Dumb..! D'oh...) questions above, I'm quite happy with the plug-in 'as is'. If a Collision Data system adds to this, I'd be pleased, of course.
Hmm.. perhaps I"ll make the mini-map somehow adapt... will see what I can do O:

EDIT:
now it scales properly :D

[doublepost=1470412293,1470314645][/doublepost]MAJOR UPDATE - Coming very soon, need to fix a few minor bugs and maybe add another feature... EVENT DISPLAYING! - thats right, now you can see where events are. It also automatically draws the map based on collision tiles! Regional Drawing is now optional, but I do recommend it, as it makes for some pretty sweet looking mini-maps.

Also, there's an added zoom feature! =D you can customize what button makes the zoom in. The zoom is a toggle, so that players can get a better grasp of things.

No more stretching - the window automatically resizes its self based on the aspect ratio of your map, there is no more stretching, but instead of using width/height to determine the window, you now have a scale setting which determines how big the pixels are for the maps.

Map name drawing - You can (optionally) display area names and even change the displayed name with a plugin command.

Events can be displayed on the mini-map by using a note tag which also controls its color :D
 

Boy Who Codes

Praised Adventurer
Xy$
0.00
Looks great man :) I love how you even streamed how you did this plugin. It may come in handy for those people who would want to do their own or a plugin that has something to do with making a plugin like so.
 

TheUnproPro

Boondoggle
Staff member
Resource Team
Partner
thanks soul =D Finishing up the plugin commands and adding a couple of other features before releasing it. this plugin is so fun to work on =D
 

Boy Who Codes

Praised Adventurer
Xy$
0.00
I can see that you're learning up pretty fast on it. The streaming is helpful for all :D The plugin looks cool now and I am sure you can find more and more ways to make it better.
 

TheUnproPro

Boondoggle
Staff member
Resource Team
Partner
I can see that you're learning up pretty fast on it. The streaming is helpful for all :D The plugin looks cool now and I am sure you can find more and more ways to make it better.
Maybe, maybe I'll update it again in the future :) events can be colored via note tag, and all the colors fully support rgba modes, giving you an almost-always unique minimap for your game, especially with the added, optional region drawing to improve and add colors/height effects to your minimap. Did you check out the spoiler tag? :D
 

Boy Who Codes

Praised Adventurer
Xy$
0.00
Yes. It looks amazing. You can even heighten up your mini map by flashing the events, if you ever want to make an enemy radar out of your mini map :P
 
Top