villages [WIP]
-
- Member
- Posts: 4290
- Joined: Sun Sep 09, 2012 17:31
- GitHub: Sokomine
- IRC: Sokomine
- In-game: Sokomine
villages [WIP]
Do not use on servers yet! Use on a flat map where you have nothing to loose.
Several mods aim more or less at the creation of villages. The old villages mod was first. Towntest allows to help build a house, and deploy nodes places individual buildings on the map. MTcities (part of MM2.6) seems to be no longer available. Structure I/O places random buildings on a map and is the most modern, and my own random_buildings spawns lumberjack- and clay trader houses randomly on the map. The closest all these mods come to a city/village is that they may place houses relatively close together. But that's not yet a city. Even a village has more structure than that. Unfortionately, the terrain in MT is not easy to handle for building. The height differences make it difficult (don't want to open your front door and fall down a cliff). However, most human players do not seem to be capable to integrate the landscape into their buildings either. Only very few builders care about that. And even those sometimes create flat platforms for larger projects. So why care about it at all? Going 2d makes everything much much easier! It will also help a lot if mobs willl roam the village later on (they don't do that yet). Height differences are obstacles and traps for mobs.
Regarding structure: This mod creates villages with a complexity/structure that ought to be ok for villages: One main road of which other roads may branch off, no parallel roads, central structure: village square with church, inn and forge.
Recent developments in the engine allowed to spawn objects like buildings a lot faster - and, what is even more important, more reliable. In older versions, even a small house was difficult to spawn because mapgen would interfere or the area not entirely be loaded - thus resulting in half-spawned houses.
Many thanks to hmmm for adding the Lua voxelmanipulator and the place_schematic function! It speeds village creation up considerably and allows to create pretty large villages reliably. And many thanks to PilzAdam who added the option to exchange materials in the schematics when placing them (i.e. use sandstone instead of cobble). That allows to create villages that look slightly diffrent and are thus more intresting.
Download: https://github.com/Sokomine/villages/archive/master.zip
Browse code: https://github.com/Sokomine/villages
Version: 0.1 alpha test version - not for productive use!
Licence: GPLv3
Depends on: Depends - you need all those mods installed that the buildings of your village will use; for the standard villages, that will be cottages, bells and farming plus.
Further requirements: Use a sufficiently recent built.
Usage:
Go to a free place in your flat world, stand on the ground (don't fly - else your village will fly) and type "/road 0" or "/road 90" (180 and 270 are supported as well), and the village will be placed at your location. Since there's no priv required for that, it ought to be obvious that you won't want to have it on a server in its current development state!
Next (large) steps planned:
Create a flat area so that the village can be spawned on normal maps.
Add fields around the village.
Integrate the flat area somehow into the rest of the map (help welcomed!).
Add inhabitants that live there and sell seeds/fruits/crafted building material.
Allow players to help build a new house (partly done in random_buildings, but needs to be ported to the new system).
Allow players to manage their own villages.
Several mods aim more or less at the creation of villages. The old villages mod was first. Towntest allows to help build a house, and deploy nodes places individual buildings on the map. MTcities (part of MM2.6) seems to be no longer available. Structure I/O places random buildings on a map and is the most modern, and my own random_buildings spawns lumberjack- and clay trader houses randomly on the map. The closest all these mods come to a city/village is that they may place houses relatively close together. But that's not yet a city. Even a village has more structure than that. Unfortionately, the terrain in MT is not easy to handle for building. The height differences make it difficult (don't want to open your front door and fall down a cliff). However, most human players do not seem to be capable to integrate the landscape into their buildings either. Only very few builders care about that. And even those sometimes create flat platforms for larger projects. So why care about it at all? Going 2d makes everything much much easier! It will also help a lot if mobs willl roam the village later on (they don't do that yet). Height differences are obstacles and traps for mobs.
Regarding structure: This mod creates villages with a complexity/structure that ought to be ok for villages: One main road of which other roads may branch off, no parallel roads, central structure: village square with church, inn and forge.
Recent developments in the engine allowed to spawn objects like buildings a lot faster - and, what is even more important, more reliable. In older versions, even a small house was difficult to spawn because mapgen would interfere or the area not entirely be loaded - thus resulting in half-spawned houses.
Many thanks to hmmm for adding the Lua voxelmanipulator and the place_schematic function! It speeds village creation up considerably and allows to create pretty large villages reliably. And many thanks to PilzAdam who added the option to exchange materials in the schematics when placing them (i.e. use sandstone instead of cobble). That allows to create villages that look slightly diffrent and are thus more intresting.
Download: https://github.com/Sokomine/villages/archive/master.zip
Browse code: https://github.com/Sokomine/villages
Version: 0.1 alpha test version - not for productive use!
Licence: GPLv3
Depends on: Depends - you need all those mods installed that the buildings of your village will use; for the standard villages, that will be cottages, bells and farming plus.
Further requirements: Use a sufficiently recent built.
Usage:
Go to a free place in your flat world, stand on the ground (don't fly - else your village will fly) and type "/road 0" or "/road 90" (180 and 270 are supported as well), and the village will be placed at your location. Since there's no priv required for that, it ought to be obvious that you won't want to have it on a server in its current development state!
Next (large) steps planned:
Create a flat area so that the village can be spawned on normal maps.
Add fields around the village.
Integrate the flat area somehow into the rest of the map (help welcomed!).
Add inhabitants that live there and sell seeds/fruits/crafted building material.
Allow players to help build a new house (partly done in random_buildings, but needs to be ported to the new system).
Allow players to manage their own villages.
Last edited by Sokomine on Sun Sep 14, 2014 02:50, edited 1 time in total.
A list of my mods can be found here.
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
Amazing ... excellent work, look forward to trying this with 0.4.8.
I can modify my landup mod to do that, it already stretches land, it can also compress land into a flat plane smoothly across a distance. I think i can do a round flat area with a circular transition zone. I will contemplate this ...Sokomine wrote:Integrate the flat area somehow into the rest of the map (help welcomed!).
Last edited by paramat on Sat Aug 17, 2013 21:47, edited 1 time in total.
-
- Member
- Posts: 4290
- Joined: Sun Sep 09, 2012 17:31
- GitHub: Sokomine
- IRC: Sokomine
- In-game: Sokomine
That's great! I was secretly hoping for you to gain intrest :-) Without integration into the rest of the map, the villages would look like artefacts. More than they ought to.paramat wrote: I can modify my landup mod to do that, it already stretches land, it can also compress land into a flat plane smoothly across a distance. I think i can do a round flat area with a circular transition zone. I will contemplate this ...
A list of my mods can be found here.
I know this a village mod but would you be able to make castles for certain villages and maybe walls too so as to show that that village is of a higher status?
Sometimes, it's harder to think up a mod than it is to create it.
Mods: Orichalcum Stonebricks Extra Chests
Mods: Orichalcum Stonebricks Extra Chests
-
- Member
- Posts: 4290
- Joined: Sun Sep 09, 2012 17:31
- GitHub: Sokomine
- IRC: Sokomine
- In-game: Sokomine
A castle might be a good idea. Not the 4-equal-sized-towers-movie-version but a more realistic, simpler one. Walls...they may have had fences and a wooden wall, but anything above that was limited to towns. Perhaps there ought to be a version for them as well eventually? A town is more complex and needs another road structure. It'll be quite some work finishing the villages, so I'll do that first.Chinchow wrote: I know this a village mod but would you be able to make castles for certain villages and maybe walls too so as to show that that village is of a higher status?
A list of my mods can be found here.
I was just thinking that a village would need some way of protecting itself but its your mod. Also my last post left this out: Nice Work.
EDIT:Also can you make a version using just the default or no
EDIT:Also can you make a version using just the default or no
Last edited by Chinchow on Sat Aug 17, 2013 22:41, edited 1 time in total.
Sometimes, it's harder to think up a mod than it is to create it.
Mods: Orichalcum Stonebricks Extra Chests
Mods: Orichalcum Stonebricks Extra Chests
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
Sokomine, is the landscape to be flattened on generated chunk? This will be easier for me, but because there is no way of knowing what the terrain is like before it generates the flat area may end up in an ocean on a circle of reclaimed land, it will be down to chance.
I will try to make the altitude of the flat area chosen by parameter but i am thinking y = 2,3 or 4? just above sea level so that any added rivers will be just below path / road level, so you can have bridges over them.
Finally what is the minimum radius for the circular flat area, such that it contains the village?
Because i use stable releases i can't use the lua voxel manipulator, so i will first write the mod the old way to test it myself.
I will try to make the altitude of the flat area chosen by parameter but i am thinking y = 2,3 or 4? just above sea level so that any added rivers will be just below path / road level, so you can have bridges over them.
Finally what is the minimum radius for the circular flat area, such that it contains the village?
Because i use stable releases i can't use the lua voxel manipulator, so i will first write the mod the old way to test it myself.
Last edited by paramat on Sat Aug 17, 2013 23:45, edited 1 time in total.
-
- Member
- Posts: 4290
- Joined: Sun Sep 09, 2012 17:31
- GitHub: Sokomine
- IRC: Sokomine
- In-game: Sokomine
Yes, that's what a castle where good for. IIRC only the towns had the right (and ressources) to construct a real wall.Chinchow wrote: I was just thinking that a village would need some way of protecting itself but its your mod. Also my last post left this out: Nice Work.
It would be easy to add buildings that only use default nodes if there where any. I decided that it looked better if they're more detailled and wrote my cottages-mod for that. The mod also works with the buildings from Taokis Structure I/O mod.Chinchow wrote: EDIT:Also can you make a version using just the default or no
If there is a way to figure out if a special area is suitable for spawning the village (i.e. if the ground could be prepared successfully), then that would be no problem at all.paramat wrote: Sokomine, is the landscape to be flattened on generated chunk? This will be easier for me, but because there is no way of knowing what the terrain is like before it generates the flat area may end up in an ocean on a circle of reclaimed land, it will be down to chance.
Sounds fine. I was planning something not too heigh anyway. Might make the integration into the landscape easier and looks less...strange...than a platform.paramat wrote: I will try to make the altitude of the flat area chosen by parameter but i am thinking y = 2,3 or 4? just above sea level so that any added rivers will be just below path / road level, so you can have bridges over them.
That's configurable. I usually use 130-180m as the length for the main road. Roads may branch off to both sides, and there has to be a margin if the first side is a branch. There also has to be some space on the flat map part for fields and meadows for the animals. A place for the windmill and maybe a clay pit later on plus a lumberjack with a mini-forrest might be further add-ons, so it ought to be not too small. In the end, it ought to use voxelmanip. That has the advantage that it makes sure that the area is generated.paramat wrote: Finally what is the minimum radius for the circular flat area, such that it contains the village?
Because i use stable releases i can't use the lua voxel manipulator, so i will first write the mod the old way to test it myself.
A list of my mods can be found here.
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
I'll start with on generated then later will try to make it manual with a flattening chat command. Flat area radius will be configurable, but looking at your screenshots i will choose a starting default radius of roughly 200. Once it's working i'll convert it to LVM form.
Last edited by paramat on Sun Aug 18, 2013 05:24, edited 1 time in total.
-
- Member
- Posts: 211
- Joined: Tue Jul 31, 2012 20:37
Sokomine, this looks really really nice. I hope you and paramat can figure out a way to make these spawn automatically in worlds. I don't know if this can be considered to be included upstream, but it would be amazing if it were part of 0.4.8.
Villages along with friendly mobs in them (I know, I know, too much like MC :S) would be amazing.
Also, I read that somebody mentioned a castle and for some reason I thought that a section of the castle could be heavily guarded (in the distant future, when we have actual mobs) and a nether portal could await inside if you manage to defeat the defenses.
Villages along with friendly mobs in them (I know, I know, too much like MC :S) would be amazing.
Also, I read that somebody mentioned a castle and for some reason I thought that a section of the castle could be heavily guarded (in the distant future, when we have actual mobs) and a nether portal could await inside if you manage to defeat the defenses.
- kaeza
- Moderator
- Posts: 2162
- Joined: Thu Oct 18, 2012 05:00
- GitHub: kaeza
- IRC: kaeza diemartin blaaaaargh
- In-game: kaeza
- Location: Montevideo, Uruguay
- Contact:
I noticed one of the houses has a small fireplace with lava in it, which combined with nearby flammable materials can cause disaster. Other than that, this mod is awesomeness.
Your signature is not the place for a blog post. Please keep it as concise as possible. Thank you!
Check out my stuff! | Donations greatly appreciated! PayPal
Check out my stuff! | Donations greatly appreciated! PayPal
I have code to spawn a flat area too, which blends good with the environment surronding it. See my post there: viewtopic.php?pid=104112#p104112. FYI, I use kernel smoothing, so the kernel can be changed to give different results http://en.wikipedia.org/wiki/Kernel_%28 ... common_use, anything except gaussian kernel will work.
Last edited by Nore on Sun Aug 18, 2013 06:48, edited 1 time in total.
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
Interesting idea kernel smoothing, but i prefer to not smooth the terrain but to retain it's rough character while compressing it into a plane. The transition looks good to me ... except the trees ... the trees have been cleared for the village
Last edited by paramat on Sun Aug 18, 2013 07:15, edited 1 time in total.
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
Ah you mean the serrated pattern in the sand contour lines? Yeah i like that bug, i prefer simplicity to the extra processing of smoothing. Yes lots of bugs, possibly cavegen doing that, that can be disabled. The few bugs could be cleaned up quickly enough and the village will slice through those
Even in non LVM form this mod is fast, just a few seconds per chunk.
Even in non LVM form this mod is fast, just a few seconds per chunk.
Last edited by paramat on Sun Aug 18, 2013 07:28, edited 1 time in total.
Here is an album. I know it is in minecraft but you can see the way they integrated the terrain.
http://imgur.com/a/zPMWO
http://imgur.com/a/zPMWO
Coding;
1X coding
3X debugging
12X tweaking to be just right
1X coding
3X debugging
12X tweaking to be just right
- paramat
- Developer
- Posts: 3700
- Joined: Sun Oct 28, 2012 00:05
- GitHub: paramat
- IRC: paramat
- Location: UK
The initial non-LVM terrain flattening mod is released viewtopic.php?id=6959
Last edited by paramat on Mon Aug 19, 2013 01:54, edited 1 time in total.
- philipbenr
- Member
- Posts: 1897
- Joined: Fri Jun 14, 2013 01:56
- GitHub: philipbenr
- IRC: philipbenr
- In-game: robinspi
- Location: United States
Code: Select all
10:32:09: ERROR[main]: ServerError: LuaError: error: ...- Copy\bin\..\games\minetest_game\mods\villages\init.lua:289: bad argument #1 to 'byte' (string expected, got nil)
Last edited by philipbenr on Wed Aug 21, 2013 17:37, edited 1 time in total.
- philipbenr
- Member
- Posts: 1897
- Joined: Fri Jun 14, 2013 01:56
- GitHub: philipbenr
- IRC: philipbenr
- In-game: robinspi
- Location: United States
Code: Select all
-- thanks to sfan5 for this advanced code that reads the size from schematic files
local read_s16 = function(fi)
return string.byte(fi:read(1)) * 256 + string.byte(fi:read(1))
end
local function get_schematic_size(f)
-
- Member
- Posts: 4290
- Joined: Sun Sep 09, 2012 17:31
- GitHub: Sokomine
- IRC: Sokomine
- In-game: Sokomine
I've planned to add traders to the town. Currently, they'd only stand around and turn to you when you trade with them. For the small cottages, the women would trade the plants, fruits and especially seeds of the type they grow in their garden, and the men would trade what they craft (i.e. doors, chests, fences, roof parts, ..). Adding a couple for each house might result in too many mobs in a too small area. I'll have to check that. Also, it is boring if they just stand araound. Children would also be nice.leo_rockway wrote: Villages along with friendly mobs in them (I know, I know, too much like MC :S) would be amazing.
The mobf mod does have archers and guards. A few could linger around in a castle. I'm afraid nether protals will not be located anywhere near the villages. Building regulations forbit it :-) But if you want a fantasy-like setting with suitable buildings and a nether portal, you can always extend the mod.leo_rockway wrote: Also, I read that somebody mentioned a castle and for some reason I thought that a section of the castle could be heavily guarded (in the distant future, when we have actual mobs) and a nether portal could await inside if you manage to defeat the defenses.
That's the forge. In order to avoid disaster in case of accidents, it has a well close by. The material the lava is contained in will only be replaced with other solid stone types. Hope this is safe enough?kaeza wrote: I noticed one of the houses has a small fireplace with lava in it, which combined with nearby flammable materials can cause disaster. Other than that, this mod is awesomeness.
Intresting how it blends into the terrain. Last time I saw a Minecraft village, it had much more simple buildings. The ones shown in your screenshots are more advanced. They seem to be standalone buildings and not really part of a village/town.jojoa1997 wrote: Here is an album. I know it is in minecraft but you can see the way they integrated the terrain.
Usually, people complain that my buildings are too small and cramped. The cottages are - as far as possible - realistic. Much smaller houses would be rather simple huts. That can be fine as well for other regions/periods of time. The stoneage mod shows a nice small hut. Some of them arranged in a circle could form another type of village.Linxx wrote: hmmmm looks good but buildings are too big imho.
Or there's something wrong with the schematic.philipbenr wrote: apparently this code doesn't work here, or sfan5 messed up
And now to the flattening of the land: I was astonished about the fast replies!
Nore: I had forgotten about your solution. When I tried it out, the area created by your mapgen looked very intresting on its own - much more gentle hills, simpler landscape (only grass). It's a bit odd that it is only one node thick, but you mentioned that already. The world from the underside looks like the ringworld :-) Jungletrees stick their roots through the dirt cover, and vines immediately started to conquer the underside. Perhaps this kind of terrain could be added as a transition area between the flat ground for the city and the rest of the world? About 1-4 chunks wide?
One huge problem I have with Nores solution is that it replaces mapgen entirely. Most of the map ought to remain normal mapgen - only few parts (those around the village) ought to be replaced with the new method. Switching to that new mapgen creates those strange border effects switches in mapgen or seed usually cause. Is there a way to limit a new mapgen function to a specific area only? Doing some sort of transition between "normal" mapgen and the slightly hilly terrain the mod creates would be necessary.
The screenshots look very promising! The circular shape is perhaps not ideal - a slightly oval one might look less un-natural. Or simply stick to more or less rectangular. Also, some high cliffs may remain at the side of the flattened area. Most of it may not matter as it is only visible from great height.paramat wrote: The initial non-LVM terrain flattening mod is released viewtopic.php?id=6959
When I tested the mod, a quadratic shape was cut out from the map. The huge moretrees trees remained half standing, as did part of a hill. Perhaps the area was not entirely loaded. Using voxelmanip for this operation is extremly important as it eliminates those requirements I cannot meet - like "area generated and loaded, cavegen not interfering".
The central area (that where the village will be spawned) ought to consist of these nodes for the ground: dirt_with_grass on top, dirt below, and on layer 3 water_source (so that fields on top can work without making it look like rice cultivation); below that 2-3 layers of loam. On the bottom: At least one layer of stone. Below that, cavegen can have its fun (or not).
A list of my mods can be found here.
Who is online
Users browsing this forum: No registered users and 27 guests