Honestly, I'd start with some very simple basics - like using a BlockCollection to define a multi-block object and be able to place it in the world
That was the last "major" thing I was working on before I got swallowed by administrative stuff and never finished. I added a couple new storage classes for blocks and had a test tool that would place a multi-block portal in the world. This was even pre-entity system, so not sure any of that code would be useful now. I did commit the block storage classes long ago though.
We also used to have a plain copy paste tool that put blocks back into the world (as opposed to the miniaturizer that creates a "mini chunk" that then renders in the world).
The PortalBlueprint + BlockCollection you could initialize with the blueprint allowed to you paste a set number of blocks into the world on top of an attachment coordinate. That wouldn't be hard to recreate, the challenge I faced was two-fold:
1) Interacting with a multi-block object after it is placed. I was close but wasn't doing this quite right (was trying to adopt the entity system way, but it was still new to me). I had a PortalComponent that stored a few coordinates (a BlockSelection, I think?) along with a zone within which mobs would spawn (in a CubicBlockSelection or Collection... been a while). But we really need a generic multi-block Component that will be able to spin off single BlockComponents for per-block interaction. That's
#259 now
2) Defining what
could be a Portal. The Blueprint simply had a 3x4 frame with a couple portal blocks in the middle. However, I think of that more like an implementation of a Portal than a definition for it. A 4x5 frame with portal blocks in the middle should also count as a Portal. This is where I got into thinking about
how we define that properly, and got into thinking DSL, grammar, and fun stuff like that. Which I have no experience with at all
So I'd say just a simple example like that would be a way to get started. Even just #2. How do you describe what a Portal (or another object, like a Door) should be, and how do you check a given object against that definition and declare that it's a Portal (or Door)
Edit now that I'm home and can see Youtube: Nice video
Ten'son' - yeah, procedurally generating a small village won't be quite that involved, but there is still a lot to it