CannibalVox / DimDoors

Other
44 stars 28 forks source link

[Suggestion] Instead of creating fresh dimensions for each pocket, instead use single dimension to house every pocket dimension #54

Open UndeadZeratul opened 8 years ago

UndeadZeratul commented 8 years ago

This will probably cause a huge restructuring of the mod, but instead of kicking off an entirely new dimension for each pocket/rift/dungeon/etc., why not have a single dimension for every pocket dimension? This would be especially helpful for player-made pocket dimensions, as they are always going to be the same size, 16x16. Given that you know the size of the pocket dimensions, it should be possible to manage every generated pocket dimension internally, and when generating a new one, just pick a new (set of) chunk(s) to use for the new pocket dimension. It may seem strange, but Random Things already does this sort of thing with their Spectre Dimension; each player gets his or her own room, and every time a new player generates their own room, it's just offset by a few chunks and placed next to the previous one. Not only that, but Compact Machines, if I remember correctly, also goes this route and for each compact machine built/placed, it generates a new pocket room in a single dimension.

Having so many dimensions generating when they're only being used for at most 9 chunks for so, seems inefficient and wasteful, especially for other mods that need multiple dimensions such as Mystcraft or RFTools.

Having said all that, I understand this would be a huge undertaking, involving ripping out many assumptions being made in the current code, so I understand if this is too big of a task; just thought I'd bring it up.

Derpford commented 8 years ago

The problem here is that it doesn't matter if the Spectre Rooms or the Compact Machines rooms are visible to other rooms. It does matter if you can see one DimDoors 'room' from another.

DimDoors rooms are meant to be fragmented, broken chunks of a world. They're supposed to be separated by literal nonexistence, in lore terms, which means that if you can dig your way into the next one you've just taken one of the key parts of the mod's lore and torn it to shreds.

Then again, it would be a massive performance boost. So what I'd recommend is creating a block that looks, acts, and is (for all intents and purposes) part of the void. Something that blocks all view, can't be passed through, and sends you straight to Limbo when you hit it. This would keep the performance boost of having everything in one dimension without having to break the lore.

(And yes, I care a lot about the lore, minimal as it is. This mod is cool.)

P3rf3ctXZer0 commented 8 years ago

@Derpford I completely agree with what you just said : D

UndeadZeratul commented 8 years ago

I thought those rooms were completely surrounded in unbreakable blocks? Even if they aren't, why can't they be unbreakable? I know Minimaps would show each room (they do for Compact Machines), but then couldn't you fill the negative space with a "void block" similar to the one you described, where you can't break it in survival and if you somehow find yourself within it, you get sent to limbo?

You also don't necessarily need to generate each room within a few chunks of each other. You can spread them out far enough away where their chunks aren't even loaded when someone is in another room elsewhere (due to maximum render distance being inconsistent across clients, this setting could even be configurable, but default to something like 16 chunks between each pocket dimension).

I do agree though, the difference with Dimensional Doors' Pocket Dimensions and, say, Compact Machines or the Spectre Rooms is that these are supposed to be tiny pockets within the fabric of reality, surrounded by literally nothingness. I'd want the mechanics to stay true to the lore of the mod, but I'm also looking out for server performance. We don't need to make new dimensions for each pocket since each pocket is finite in size, whereas Mystcraft and RFTools dimensions are infinite in size.

Derpford commented 8 years ago

Fabric of Reality blocks are, in fact, breakable, unlike the blocks used in CompactMachines/EU rooms. They can also be replaced with other blocks. Padding the rooms out could work, though.

On Thu, Jan 21, 2016, 11:12 AM Undead Zeratul notifications@github.com wrote:

I thought those rooms were completely surrounded in unbreakable blocks? Even if they aren't, why can't they be unbreakable? I know Minimaps would show each room (they do for Compact Machines), but then couldn't you fill the negative space with a "void block" similar to the one you described, where you can't break it in survival and if you somehow find yourself within it, you get sent to limbo?

You also don't necessarily need to generate each room within a few chunks of each other. You can spread them out far enough away where their chunks aren't even loaded when someone is in another room elsewhere (due to maximum render distance being inconsistent across clients, this setting could even be configurable, but default to something like 16 chunks between each pocket dimension).

I do agree though, the difference with Dimensional Doors' Pocket Dimensions and, say, Compact Machines or the Spectre Rooms is that these are supposed to be tiny pockets within the fabric of reality, surrounded by literally nothingness. I'd want the mechanics to stay true to the lore of the mod, but I'm also looking out for server performance. We don't need to make new dimensions for each pocket since each pocket is finite in size, whereas Mystcraft and RFTools dimensions are infinite in size.

— Reply to this email directly or view it on GitHub https://github.com/CannibalVox/DimDoors/issues/54#issuecomment-173640785 .

UndeadZeratul commented 8 years ago

Ah, hmm... that's silly then; they need a border of unbreakable blocks on the outside.

Derpford commented 8 years ago

On second glance, it looks like there IS a block that's practically unbreakable, which suggests that there is a border around the rooms (though not in the floor).

Shahelion commented 8 years ago

I would like to also support this suggestion, I just reached over 32 dimensions within about an hour, seems a bit much. Didn't realize it was making a new one each time.