FaceDeer wrote:
I've been working on a mod called dfcaverns that adds huge underground caverns and have been wanting to put little villages and clusters of ruins in them,
Underground caverns may require an entirely diffrent building style. I'd imagine people settling mostly in small caves in the side of the walls, with some nice entrances built into the cave walls. The floor of the cave may be conveniently flat...but what if a stone from the ceiling gets loose and falls down? Better sleep in a smaller cave...
FaceDeer wrote:
If a player gets close enough to the center of town that town is marked as "discovered" by them, and subsequently if they come within a certain radius it will be marked on their HUD with a waypoint.
Very nice. That could be useful for mg_villages as well. I spawn the player inside a village so that it's easier to find one.
ShadMOrdre wrote:
My working "solution" involves using modified, uniquely named versions of this mod, almost akin to what mg_villages does.
Hm, the diffrent village_* style mods are a bit diffrent. They're not copies of the code but collections of schematics with some instructions of what the schematics are (i.e. this is a forge, has one workplace, no bed to sleep, can occour 3 times per village, and so on).
ShadMOrdre wrote:
It's simplicity cannot be understated. Having used mg_villages for years, the most striking thing about the villages from this mod, are that they can exist at any height, and are placed with the terrain, instead of planted in a big circle.
mg_villages concentrates on the mapchunks at/close above sea level because those are logical places for villages. Other places are not considered in order not to slow mapgen down unnecessarily.
The settlements approach has its limitations as well: Can't get larger than one mapchunk (might be a plus in some situations), the smaller the size of the houses the better (easier to find a place for them), the higher the houses the better (else people may not notice the village at all).
ShadMOrdre wrote:
I wish Sokomine could add this ability to mg_villages, as a mix of the two village styles really adds further depth.
I've been playing with this kind of village placement (the newest version of mg_villages allows making use of the village types etc. without placing villages by itself if so configured), but I'm not satisfied with the results yet. It just looks horrible if there's no walkable way from one house in the settlement to the next. And that may happen easily with mapgen beeing very small-scale.
Here's a screenshot of the current state:
The wool "road" meet in the center of each mapchunk. Houses are placed wherever possible. Each mapchunk recives a village if possible. The houses used here are of the village type "logcabin" - extremly small ones with rarely a full block used for anything but the floor. With larger houses, far fewer suitable places are found.
ShadMOrdre wrote:
While mentioning Sokomine, I've also wanted to implement a simplified city_builder logic to give even more depth to towns. The simplicity of this mod, combined with the simplicity of city_builder, could easily be coded to provide an almost RTS feel to village building, from a game play perspective, while also allowing customized building from an RPG game style, and still be easily accessible to any sandbox type game as well.
Well, that's mostly the goal of citybuilder, yes. But I'd hestistate to call it a "simple" mod. It (and the required handle_schematics mod) are rather complex. And you can't skip most of that complexity due to annoying edge cases and the like. What citybuilder currently is missing most are mobs that could build the structures. While there's no shortage of mobs that build structures, those mobs are controlled directly by the structures-placing mod. With citybuilder, mobs ought to roam around freely, occasionally searching for the two nodes "dig here indicator" and "scaffolding", walk there, do a bit of animation (wield things, dig animation, place animation), call a function and thus build the structure without having any idea of what their tiny contribution will create in the end.
FaceDeer wrote:
the version of the mod I'm currently working from still relies entirely on the built-in mapgen heighfield object and that won't work when I eventually attempt to integrate this into dfcaverns.
The heightmap is very valuable for this kind of job. But if none is available...perhaps it'll help you a bit to consider what I'm doing right now to place something: Flat land can be detected, but - if we want to put something there, we can simplify that a bit. No need for the land to be flat at those positions where the structure will be placed - it will be flat/contain the nodes of the structure afterwards anyway. But we do want the circumference around that area to be as flat as possible. Still, platforms can't entirely be avoided. So at least make them not too high, outstanding and ugly. A slightly roundish shape works better than a rectangular one.
FaceDeer wrote:
I switched over to lua schematics in my refactor as well, the node replacement map system is a pain to work with using the binary format (the replacements are done once when first loading the .mts and then you can't redo it with other replacements until the server restarts).
Yes, and that's one of the reasons why mg_villages and handle_schematics need to be so complex. They have to handle that sort of thing (and other edge cases).
FaceDeer wrote:
some sort of settlement definition that includes most of the stuff that I've left in the "const.lua" file so far - a list of surface materials that the settlements appear on, a list of schematics with frequency rules, sets of node replacement maps to randomly choose from, name generator configs, and so forth.
That's basically what the diffrent village_* mods for mg_villages are for.
What keeps me from releasing the current test experiment with settlements-like villages (with mg_villages in the background but generating no villages on its own) is mostly the lack of roads. It doesn't look convincing if there's no way to get from one house to the other - no bridges, no tunnels, just rough terrain...no, people don't live that way. And the gravel paths in this mod here don't work so well for my purposes either.
In the end, settlements the size of a mapchunk may be much easier for mobs to handle. A realistic medieval village (as mg_village aims to create) can have a few hundred inhabitants. If it's inhabitants didn't fall prey to a disease or war recently, then there ought to live a few people in each house. And that means quite a significant amount of mobs...which then ought to seek their beds when it becomes night, or when it's night, they last got loaded at day, and now a player walks past...