I homeschool my youngest son. Last year we took on a social studies project using the Minecraft Bedrock Edition to explore the concepts of urban development and to also practice using maps. The goal of this project was to build a functional and thriving NPC village. I thought it would be nice to share the process here on my blog with more of a focus on the nuts and bolts behind it.
For those that are curious, this is how Little Bear’s project turned out by the end of last school year.
While the Bedrock Edition offered the chemistry portion of the Minecraft Education Edition features, it also meant discovering that the game is programmed a little different compared to the Java Edition in terms of the AI for the NPC villagers and even the Iron Golems. This meant we ended up exploring some very basic programming concepts in order to get the village to work with the villagers.
Since Little Bear has expressed an interest in creating a village datapack, and I only know how to do that with the Java Edition, I will be focusing this blog project with Java Edition in mind. I will try to point out where the differences are but keep in mind that Mojang is constantly updating the game. As it is, they have already updated it so that the Iron Golems behave the same in both versions between the time Little Bear did his project and me writing this. Maybe at some point the NPC villagers will be programmed to work the same in both editions as well.
The next thing I need to state before I really dig into this is that I am a student led unschooler using a pass fail system. In other words, if they tell me that yes this project sounds cool and they will do it and I set it up and they actually do it, they pass. But if they tell me they will do it and they don’t, they won’t pass. If they tell me it’s not a cool project and they won’t do it, we find something else to do to explore the same concepts. So, yes, oftentimes our projects combine more than one subject on some level and no, we don’t actively include Common Core anything. Adapt this project to fit your needs. The younger the student, the simpler it needs to be. Minecrafters who are not homeschoolers who just want to learn how to build a village are also welcome here.
Are we good? Alright, let’s get started.
What is Urban Planning and Urban Design
According to Wikipedia, Urban Design is:
Urban design is an approach to the design of buildings and the spaces between them that focuses on specific design processes and outcomes. In addition to designing and shaping the physical features of towns, cities, and regional spaces, urban design considers ‘bigger picture’ issues of economic, social and environmental value and social design. Scope of a project can range from a local street or public space to an entire city and surrounding areas. Urban designers connect the fields of architecture, landscape architecture and urban planning to better organize physical space and community environments.
And, also according to Wikipedia, Urban Planning is:
Urban planning, also known as town planning, city planning, regional planning, or rural planning, is a technical and political process that is focused on the development and design of land use and the built environment, including air, water, and the infrastructure passing into and out of urban areas, such as transportation, communications, and distribution networks and their accessibility.
Ultimately, this boils down to two primary questions:
- Who is using this space?
- What do they need for this space?
The beauty of Minecraft is that it provides a virtual space in which we can explore these questions and concepts in a rather wide variety of ways.
Since the goal is to eventually create a datapack, we will be looking at this from a rather broad scope.
Who is Using this Space
Since the space is going to be an NPC village, we actually have two groups of entities here to focus on. The first group is, obviously, the NPC Villager. The second group is the player.
Now, I could be wrong here since it’s only my observation, but there seems to be two very broad categories of players when it comes to the NPC village:
- players that only plunder the village
- players that use and protect the village
- confine the villagers with their workstations
- leave the villagers free roaming (organic player)
So here’s my thoughts about these two very broad categories of players.
The players that only plunder the village? They don’t care what it looks like – or if they do it’s more of an aesthetic adventure type feel they are looking for rather than looking for a permanent place to stay. You could have spent forever on it to make it look nice and they’re still just going to breeze through it to take whatever they can use. For them, you need to make sure your village has the loot because by default, villagers are not programmed with loot tables. Yes, this can be changed with a datapack if you wish. And yes, I can show you how to do that when we get to that part.
It’s in my opinion that this category is the easiest to please. Make your structures interesting with plenty of balanced loot to find.
Now, how do we address the second broad category?
The players that confine their villagers do so because they have fixed the trade offers those villagers have and wish to keep them safe in one place. The players that leave the villagers free roaming do so to create an organic feel to the space they’re playing in.
I think it is best to design your village to specifically cater to the free roaming player for two reasons.
The first is that this allows the confining player the ability to set and fix the trades easily. And this also means that if you have built your structures with the villager pathing AI in mind, they will also be able to confine them afterwards without too much difficulty.
The second reason is this also means that this design should be aimed at keeping the villagers safe and alive. There is nothing worse for either subtype than to approach a village only to find most or all the villagers dead or dying because they weren’t able to get inside their homes or monsters were spawning inside their homes.
Both of these subtypes will be looking for usable and appealing structures. They also will appreciate any loot found within the village.
Ultimately, designing a village that caters to the looter and the organic player benefits everyone, including the NPC Villager.
For the remainder of this project, we will focus primarily on the NPC villager and how they function to ensure we design an organic village.
What do They Need for This Space
Looters need loot. Pretty straightforward. This can be done with chests, barrels, shulker boxes, or even adding/editing loot tables. It’s up to you how you want to meet this need.
NPC Villagers need meeting places, workstations, well lit accessible homes with beds, and well lit streets.
Players will need all of that in addition to whatever else you wish to provide as a feature that villagers don’t actually need in game to thrive – like a water source for example.
Basics to Keep in Mind
- 1 Chunk = 16×16 blocks
- this is how the game loads up and generates everything
- everything happens in chunks – including ticks
- Bell = Meeting Place
- 32 villagers max can claim a bell
- this is where they go during gossip time
- during gossip when they can build their golems
- largely based on how long it’s been since they last saw a golem and how dangerous they perceive their lives to be
- I’m not quite sure that the danger is entirely dependent on them needing to see a zombie/monster given the golem over population problem I have in my underground village base I have in Minecraft Java 1.19.2
- I do know that having a bell helps control where those golems spawn
- largely based on how long it’s been since they last saw a golem and how dangerous they perceive their lives to be
- given all this, make sure the bell area can serve 32 villagers at once with enough space for golems to safely spawn in and that it’s not going to be an area that the player needs to use for anything since it will get crowded in a maxed out village
- the way these guys are programmed is that they will try to get as close to this bell as they can, so depending on how you place it you may see some weird or problematic behavior – if you do, try placing it somewhere else (closer to the ground for example)
- I do not recommend multiple bells in a single chunk
- 1 Bed = 1 Villager
- along with food, this is part of the breeding condition
- Monsters spawn at light level 0 in the Overworld
- a single torch lights 12 blocks out in a straight, flat line so plan your lighting with this in mind
- All zombie variants attack villagers
- they always die in easy difficulty
- 50% chance of turning into zombies in normal difficulty
- 100% chance of turning into zombies in hard difficulty
- in hard mode all zombie variants can break wooden doors
- Golems attack all monsters except for Creepers
- NPC Villagers cannot open iron doors or any trap doors
- NPC Villagers (and golems) can climb anything that behaves like a ladder and often get stuck on them – this is especially true of glow berry vines in my experience
- Sweet Berry bushes causes damage to NPC Villagers and golems
I will edit this list as more comes to mind or if changes to the game occurs and we’re still playing it.
Before you start building, you should plan ahead. I recommend drawing a map with details of where you want everything to be, along with notes of what theme or style you want the structures to follow.
These are the minimum requirements for your village in this project:
Each villager needs to have their own bed. It’s up to you to decide whether they live in their shop or whether they have a separate house to live in. Living in the same place you work is relatively uncommon in modern times in first world countries, but was fairly common say back in medieval times. It all depends on the feel and theme you’re going for with the village you’re building. What’s important is that you remain consistent throughout the design of your village to make it easier for players to know what to expect and find what they’re looking for.
If you need some ideas, you can take a peek at what the default Minecraft datapack has in its houses folder for the plains village. I took a screenshot of it here:
The setup they have here is for a datapack, so the houses are randomly selected upon generation. This is why there are multiple versions of some structures. The accessory is a decorative structure. The pens and stables are useful structures for players to make trading easier. The farms are required for breeding and trading. With this particular setup, the villagers do not live in their shops.
What we will be doing for now, is building our structures on a street grid. This simplifies the layout of the village while we test the designs of our shops and houses. We’ll wait to build streets specifically for a datapack when we’re ready to start assembling everything for the pack. The priority for now is ensuring the buildings are functional with the NPC Villager AI pathing.
The best way to go about this if you’re planning to create a custom village datapack is to build your structures in a grid on a super flat map. Alternatively, if you’d like to build in survival in order to create a fully organic village, I’ve also created a flat grid in a large biomes map set in the plains. For this map, you will need to change to switch it back to survival, turn the daylight, weather cycle, and mob spawning back on for an organic style project. Just keep in mind that since I had to use structure block mods to set up the grid, there is a significant amount of just dirt layers beneath the grid. I’m really sorry about that. I needed to do that in order to keep the grid flat and to prevent weird ugly shelf-like holes from being directly under it.
For now, all I ask is that you start mapping out the village you’d like to build for this project. This way you know your plan includes everything that is required for the project. Next time we’ll get started with building. You don’t have to wait for me, you can start building right away if you’d like. You can use one of the grid map I have provided, or create one of your own.
Both maps have 81 plots in them, which should be more than you need for this project and you’re not required to use all of the plots. Each plot is 15×15 blocks in size and the streets are 3 blocks wide. I know that a chunk is 16×16 blocks, but by making the plots only 15×15 blocks, it gives us a single block center to work with and I feel this will be easier later when it comes time to work with the structure block and jigsaw block.
You are of course free to setup your own street grid if you’d like. Just make sure that you either create your map in either creative mode or with the cheats on so that you have access to the structure block and jigsaw block when the time comes.
Until next time, happy planning!