Portal Decisions
Portal Decisions
Posted by Jeff Disher
Reply to: Continuing Portal Thoughts (Posted by Posted by Jeff Disher)
Portal Decisions
Much of the complex content for the next release is now in place (although there are some bugs I want to fix and still some worldgen and crafting changes to come).

Decisions I ended up making, in response to the parent post:
-the portal "frame" is a composite and the portal "surface" is a multi-block created/destroyed based on portal validity
-the portal location is determined by a "portal orb" stored in the "portal keystone" (in the future, these can be crafted and bound by a user, but not in this release)
-while composite structures use a "polling" approach to check their validity (may be changed in the future, if it becomes a problem), the target location isn't validated at all and is just assumed to be a valid destination (not sure if this will change in the future)

So, the portal currently looks like what is in the image (you can also see the new ladder behind it and a new pedestal to the side).

The annoying thing is that I did all that work to make internal cuboid keep-alive work but then didn't end up using it. The only item which uses that is the cuboid loader block, which cannot be crafted (by design), nor does it even have graphics (since I am not sure what will be done with this, in the future). I will likely return to this idea in the future but using it for this first cut of portals was just a lot of over-design which isn't needed (at least not now). Also, I wanted to fix the issue of keep-alive cycles but I think I have a good idea for that (you can always keep your own block alive - cuboid loader block - but other keep-alive requests are only honoured if you are in a cuboid being kept alive by a player). At least the consequences of implementing it will likely avoid load/store thrashing when walking around (at the cost of keeping more cuboids loaded).

So, aside from bugs, the next steps are in world-gen:
-generate the "castle and satellite towers" idea (which requires that I build what it should look like and then add it to the generators - flat world will use this instead of its existing centre-piece)
-thicken the world crust to add more depth
-increase spawn rates for iron and coal ores (since I rarely see them when looking into caves)
-add diamond (for making better tools) and copper (for weak tools and electronics) to world generation
-increase the default cuboid loading radius and correspondingly update the IO scheduler for new cuboids (this is currently not aggressive enough for loading thousands of cuboids)

Slowly moving along,
Jeff.