[Suggestion/Inquiry] Moving Maps across SMPs?

Discussion in 'Suggestion Box Archives' started by JDHallows, Oct 13, 2017.

  1. So, I know that in the past the response to this has been that it's not feasible, because the system it would take to do this would be massive and use a lot of server resources, and take a lot of work to set up.

    My question is: why? It seems like a 128x128 pixel picture would be easy enough to store and access as needed. Of course, it all depends on how the data is stored and how easy it is to access that data. So, if somebody knows about this process, feel free to share/explain in the comments below :D

    However, assuming this is logically possible within the limitations of Minecraft, do you guys think this is something that EMC devs should work on? Or, are there other things that they should spend time on that are more important than this? Let me know what you all think!
  2. If i'm not mistaken, the only uses I can think of for this would be aesthetic. Of course, it'd be lovely to be able to exchange map-decorations cross-SMP, but I can't think of any other reason I might need to take a map from one smp to another. I'm not sure about the functions of the system for maps from cartographers, but i'm pretty sure they're only valid for the world they're created in.

    It's a +/- 0 from me right now. I won't be sad if it's implemented, and I won't be sad if it never happens :p
    Aracerer, JDHallows and Tah2 like this.
  3. How would you load the pixels onto the map, though?
    I haven't looked into this, but it seems like a tough task, if obtainable...
    JDHallows likes this.
  4. +9001
    JDHallows likes this.
  5. I don't think this will ever be feasible to set up.

    A map points to a physical location 'somewhere' in the world where the actual map was build. This could be a (group of) residence(s) or a place in the wild.

    So in order to move the map and retain it you'd also have to copy/move the whole area to which the map points, and ensure it'll be placed at the exact same relative coordinates. Meaning so much that when you're dealing with a "town residence map" you'd risk having the map pointed to an already occupied residence. Even if the res. is empty this would pose an immediate problem because: who would own this "map residence"? Wouldn't it be a little unfair to give a player access to more residences than he might be able to own?

    A much more likely scenario though is that the map will point to "a location" in town where the location is basically a place which isn't limited to any residence at all. So it could easily start on a road somewhere and then occupy splace on 4 different residences. Obviously it would never be feasible to try and reproduce that.

    Frontier doesn't get any better, because now you'd have to cope with established outposts, and other players buildings.

    And even if the space doesn't happen to be occupied then there's still a risk of annoying other players. Maybe a player just finished a nice build within the 5k border (so no risk of disturbing established outposts) only to suddenly come online the next day and discover a HUGE patch of weird blocks almost directly in his backyard. A lot of fun for the player who'd like to have this map on another server, but it could end up to be a major annoyance for this "wild dweller".

    Now, sure, there's an easy escape: just copy the whole thing "somewhere", make a new map and give that to the player. Problem solved.

    Quite frankly I'd also consider this scenario to be a little unfair: why would players be given a ton of extra blocks "just like that"? The only thing to make this fair is to have some player (the original map builder?) provide the blocks which were used to build the map in the first place so that those can be (virtually) used to copy the map.

    Which poses another problem: how to find out who build it? Heck, how to easily find out what blocks (and what amounts) went into it (I know there are plugins which can do this, Schematica would be very suited for it).

    Did the original owner even want the map he build to be made available on other places?

    So yeah...

    I think there are way too many caveats here to "simply" make this work.
    Velma_T_Jinkies, JDHallows and 607 like this.
  6. The main purpose of this would indeed be for the transfer of pixel art across the SMPs. Currently, pixel art is 'SMP locked,' meaning you have to be on that SMP for the art to be used. While this works for players who just want to put the art up in their own home on their SMP, players who would like to sell their pixel art are restricted to only people on their SMP.

    IMO, the only reason the pixel art market seems so small right now (and it actually isn't, there is a lot of player made pixel art on EMC) is because each SMP is broken up into its own market. Imagine if the promo market was SMP-locked, or any other market. It would make the market very small, since you could only deal with players on your SMP, and would hinder its growth.

    The main purpose of this thread is to gather interest about this functionality being added to EMC. Basically:
    Assume this is possible, but would take developer time to work, whether it be a few weeks or a few months. With this assumption, would you want the dev team to spend time on this? Is it a feature you would like to see added to EMC?
    Also, see my response to Shel below to see a bit more of an explanation on why I do think this could be possible, with some dev work.

    1. Yes, a map physically points to a location somewhere. However, that data still has to be stored somewhere. In fact, there is reason to believe this data could be accessed very easily. While a map does point to a set location, the map does not automatically update when the blocks in that region are updated. The map only updates when it is taken back to that region. This means that the 'image' shown on the map is stored somewhere, since it doesn't reference the original area anymore after it is removed from that area.
    2. With this idea in mind, you wouldn't need to rebuild the pixel art on every SMP. Rather, the map would then reference the image stored in the server files and display the image stored there. So, no copying/pasting or rebuilding is required, just a server-side reference to the image location in the server data files.
    3. Also, whether the original map owner wants the map to be available elsewhere is totally up to them. This whole system is no different than the current method of map making. If you make pixel art in-town, anyone can create a map of it without your consent. Same as in the frontier, the only difference is being able to find the pixel art build. So if a player didn't want their map shared, then they would build it in the frontier somewhere where nobody would find it, and just not sell copies of the map.
    So with this in mind, the main issues that "I" see with this idea:
    • How easy/difficult is it to access this stored data?
    • Is it possible to access this data from 'outside' the server, and from inside another server. (Since every SMP is basically its own server)
    • One large caveat: what kind of processing power would it take for the game to refer to this database of stored maps? The game already does it easily with maps on each individual SMP, but is it capable of accessing off-server maps just as easily?
    However, these are questions that only a dev could answer. So, assuming the answers to the above questions are "yes, it is possible and yes, we could potentially do it" - would you, the EMC players, like to see this implemented?
    Sazukemono, ShelLuser and 607 like this.
    Yeah, that's why I wasn't sure if it would be impossible. :)
    JDHallows likes this.
  7. The way that the data stores is the primary issue. Currently the map is assigned a number. If you look at the maps, they have this ID after them. The reason they don't work across Smps is because number 35 on smp4 may be the German flag, but number 35 on smp7 may be the Spanish flag. This is also the reason why they sometimes don't appear properly, especially if you do a lot of server hopping. The only way for it to work would be if number 35 pointed to the same coordinates on both 4 and 7. Which isn't easily done, considering players make maps daily and the numbers change every time a new map is generated.

    It is possible that we might have a way to save the maps as a special code that players couldn't affect, but that's something we haven't even attempted for server made flags yet, and certainly would be null and void to have players with access to the system if the intention is to prevent a number imbalance.
    JDHallows and 607 like this.
  8. Correct, to my knowledge it is kept client sided. This also explains why 2 players can easily look at the same map yet see two totally different images. Of course this happens very sporadically, but even so...
    That is not entirely correct: it continues to reference the original area. You can also see this happening with the treasure maps (which change color once a player moved into closer position of the target (Ocean Monument or Woodland Mansion)). And the regular maps will start showing the players position again when they get into the area.

    I know what you're hinting at though. However... I'm not too sure what would happen if you'd copy a map while the original area it points to got changed. Something for the weekend todo list :)

    My bet is that you'd end up with 2 different maps, and if that is the case then there would be no solid way for a map to exist without its reference point. While the original map may exist every copy would end up 'gibberished'.

    But, I'll set up a test case for that, seems like an intriguing thing to verify.
    607 and JDHallows like this.
  9. +1

    I really like the idea! I'm not much of a promo collector, but I could be an art collector. :)

    Lot of good points on the thread.

    I think code side this might be pretty simple. Though it hinges on the idea that one SMP can reference map data from another. The rest of the map behaviors we could probably toggle based on a some kind of home ID.
    607, JDHallows and Sazukemono like this.
  10. After reading through a few more of these and letting the idea percolate a bit longer, I have to say I've been convinced: I want to be an art-collector, too!

    I don't really have the time or patience to do pixel art, but I would love to have a huge selection to decorate with. The influx of map art from the other 9 SMPs would be lovely. Plus, it means a greater market for my friends who make pixel art.

    I still won't be sad if it can't be implemented, but I'll be quite excited if it can be done!
    JDHallows likes this.
  11. As a map maker, I'd love to see this become a thing. However, it seems kinda difficult to access the image file, which might turn into a big amount of wasted resources when you consider that most maps won't even be crossed across smps (nice consonance right there).

    I say this because as much as there are lots of people that really enjoy map art, there are really not many artists (when it comes to regular map artists, I can only name master mapmaker supereskimo and myself).

    That had me thinking, however. What if there were special empty maps (promo like), and only those specific maps could be crossed (perhaps even a command that turns a regular empty map into a special one at the cost of some tokens); the "crossing" process could still be more resource consuming (server saves a schematic and pastes on a designated location 10kk out in town lol), if it resulted in an easier or faster way of doing the connection between smps, and I'm sure it wouldn't be as bad as doing the process for every single generated map.

    Shameless plug, check out my maps at 3016 on smp2, and the ones below /spawn, if you're interested in map art! Also access emc.gs/mapart if you wish to learn how to create your own :D
    Tah2, AlexC__, 607 and 1 other person like this.
  12. I knew that this would receive a lot of responses in regards to how difficult a process this would be to set up. However, the suggestion has received a lot of good feedback so far, too. Not only in positive support for the idea, but also feedback suggesting that it could be possible to do this, with some work of course. I look forward to seeing where this goes from here :)
  13. So, took me a little longer but... As promised:

    Well, I stand corrected.

    So here's what I did:
    • Made a small structure in the overworld, then made a map from it ("Map A").
    • Went into the nether (to unload chunks) and placed the map there in an item frame.
    • Went back to the overworld, removed / changed the structure and made another map ("Map B").
    • Back into the nether; placed the map again.
    Well, my theory was that the first map could end up distorted after you copied it because of a possible update. That's not the case. Once you make a copy from 'map a', you'll end up with the exact same thing (even stacks). Same applies to 'map b'.

    Therefor, pure theoretical, if you can move the map without it triggering an update then it should be able to sustain its image. At least that's the theory :)
  14. I offer no help in regards as to the how.
    I wish I could, but my only idea is either malformed or involves breaking almost every current map.
    Give each smp a separate set of bounds to use for maps ids. Then have a universal list of ids that can be given to all smps during maintenance.

    I so much want this to be possible and prioritized.
    Here's a picture of my current map art project:

    /v+ hyperbeam on smp8 to see the progress....and here's what the end result will be
    ShelLuser, JesusPower2 and Eviltoade like this.
  15. I've asked for this a few times, and offered my maps for free to be moved by s.s across smps, only to be denied each time. I would love to see this as an option, and my offer stands. Any time this is available, my maps are donated. Until then, get them at /v +poof on smp2, or come ask me for one
  16. Could this be a paid/rupee service to have a map replicated to a "locked/unassailable" location on each server and then given the same id across each server? May have to vary by size too. If this could be done, the original map location and map id would be inconsequential. The only downside I see to this, other than the work, is eventually it may burn up all the space set aside. If any "minecraft" world could be used, maybe a spun up world that only holds maps could be created.
    607 and Tah2 like this.
  17. I believe that maps are a special thing that some SMPs have the privilege of owning, but that is just me.