Applies to:DM Language
Status: Open

Issue hasn't been assigned a status value.
Copied from id:670899

I was thinking about a few older games I used to play, and I remembered that the maps would wrap around on each other! I thought it was a really cool idea, but nonetheless, I have no idea about it. I was talking to Jon, and he said that there may have been a post on this already, if there is, delete this. Anyway, to my point. Would this be possible, at all, in DM?

Also, it would be nice to keep yourself centered around the map at all times without having that ugly black-space. I just think it looks better, personally.

More discussion on top of this can be found at the above link, I just never moved that issue over here from the forums.
This would be a wonderful feature and I support it's future inclusion. Until then, you could always try out the late AJX's, A~Hologram.
Also, it would be nice to keep yourself centered around the map at all times without having that ugly black-space. I just think it looks better, personally.


I'm aware of EDGE_PERSPECTIVE, but I believe somewhere in that thread I note it's not a perfect solution -- when you get to the edges it just moves you to them, instead of keeping you centered.
How is it supposed to keep you centered and not show blank space... Aside from the auto-looping system you're requesting.
IMO the best solution in the current situation is to either automatically loop people before the world ends, or have the edge of the map blocked off by fences, water, or other obstructions that provide acceptable visual ques.
This feature would impact lots of built-in procs. Not only obvious ones like view, but things like get_dir and get_dist too. I think this feature could be useful but would be very complex. I'm not sure you gain much from that complexity. Simple user-made wrapping effects aren't perfect but are sufficient in most cases.
I know it would effect a lot myself too but I agree something like this would help a lot as well, it would probably be something implemented in a major update rather than the smaller updates that I see being done at the moment.
Why don't you make it so the edges on the left, right, top, and bottom seem continuous? And then teleport the user to a various spot -

ie; Walking NORTH, it looks like they keep going up and then they are on the SOUTH end of the map without any notice that they just did that.
That's easy enough if you just have a giant ocean around the edges of your map. But if you have a city, or especially if the area is full of moving objects (including players), then it would be a lot of extra work to set up systems that accurately display everything. And setting up interactions with everything would be even more complicated.
Although the complexity of this request is slightly high, this is still one of my favorite concepts I'd like to add sometime--not so much for repeating maps as for continuity, visually joining separate Z-levels as if they're all parts of the same map.

For me I see three implementation hurdles: 1) We need a coherent design for a means of linking the sections. 2) We need to handle the backend processing of stuff like view() so it functions as intended. 3) We need to figure out how to send the linked maps to the client, and make sure that the transitions between Z-levels are treated as normal movement.
Lummox JR wrote:
visually joining separate Z-levels as if they're all parts of the same map.

What would be the point of that? Just turn up your map's x and y limits if you need more space...
The point would be that you could load and unload sections like 100x100 or so on the fly and show a much more open world, for a much smaller memory footprint. This would also be a big benefit to dungeon crawls.
Wouldn't you need to load even more maps data? And how would this apply more specifically to dungeon crawlers?
Make it an option possibly before creating the map to ask if you would like the edges connected etc?
In response to Gokussj99
You can do this already, I know you might be frustrated but it is possible.

Just keep going and teach yourself DM some more.
In response to Gokussj99
I know I'm learning bit by bit but i think it would be cool if it was possible without being softcoded hehe.

I already have most of it done its just afew more procs i need to customize.
In response to Gokussj99
I wonder if this has been suggested already. That is, what this really needs to work properly is for all the view()-type procedures to wrap around as well. It's been soft-coded before, but it was only the appearances that were duplicated; you couldn't interact with the fake-wrapped part of the map.

It's not just moving off into the blackness wraps your movement around. It should be completely seamless; you'd see (1,1,1) to the right of (world.maxx,1,1).
In response to A.T.H.K
Walking off one edge and onto another is definitely doable with soft code, but I think the spirit of this request is to join maps seamlessly so that they look and act like a bigger map.

Such a feature would be incredibly useful, though it'd necessitate altering a number of functions so they were wrap-aware. view(), range(), and block() are obvious ones, as well as pathfinding, get_dist(), get_dir(), and so on. The built-in movement would also need to be able to check if a move was considered a slide or a jump. There's probably a number of other issues I'm not thinking of.

As far as a join syntax, I'd like something like[z][WEST] = z2 or something like that. I think it would also be implied that all connections would have to be symmetrical and that the server would attempt to match up corners properly. That is, if you set map[z][EAST] = z2, then map[z][NORTHEAST] should match map[z2][NORTH] if it exists. Creating a simple datatype for map[z] should actually be pretty easy.
Sounds good but for now it can be soft coded, and Goku is soooo close to getting it done I don't want him to give up now! Otherwise he may just wait for the update..
Page: 1 2 3