Nomadic hordes basic idea:
There would be random, roaming hordes of everything from barbarian warriors to traders and other useful NPCs. While they may or may not physically resemble NPC-villagers, they are substantially smarter, and work together to raid, pillage, trade and give assistance.
Difference between nomads and other mobs:
At the moment, Minecraft has:
Mobs that are terrified of combat, or worse, don't no they are dying. (all passive mobs)
Mobs that can either do nothing/be tamed, or fight to the death. (pigzombies, spiders in daylight, sort of endermen, wolves)
Mobs that sit around, waiting to charge the player with 100% berserk aggressiveness. (all melee hostiles)
Mobs that Snipe at the player while sitting there, almost managing to scream "HEY! I AM A STATIONARY TARGET! KILLLLL MEEE!" (all ranged hostiles)
Nomads would be much more complex, behaviorally speaking.
They would move about the world, looking for resources (Food, EXP, etc)
They would raid and pillage (They would have hardcoded limits on what they could physically break with what tools)
They would make more nomads, on there own.
They would know how to barter goods based on need.
They would be generally unpredictable to the untrained (see that band of nomads out there? are they traders? hunters, barbarians? all of the above?)
Combat
Combat with nomads would feel much more like PvP than combat with, say, skeletons, zombies, or blazes.
Upon entering combat with the player or mobs, They would check their stats, The combined stats of all allies, the combined stats of all enemies, and the stats of the closest enemy.
If they were so weak that they would be slaughtered in vane, they would not melee attack, they would get as far away as possible while maintaining proximity to powerful allies.
If they and their nearby allies combined were guessed to be more powerful (by adding up various combat stats with each other) than the nearby enemies, they would attack using the following strategy:
If the enemy is using ranged, check if your / their armor can resist their / your ranged attack.
Target the ones with the weakest armor, strongest ranged attack, closest proximity and slowest speed.
Any target in melee with an ally would have their melee attack (Damage/second) considered instead of their ranged attack, as would enemies who are less than 3 seconds away from melee if their melee weapon is known.
While attempting to keep ranged combat, they would flee if their enemy got within three seconds of them.
If it appears that ranged would be a losing battle or that melee would be more effective (better ratio of power), they would engage in melee if their equipment was more oriented towards melee, or in self-defense.
They would target the enemy based on target attack/target effective health. (low health+high attack= swarm them, walking shield without a sword=maybe later.)
They would not chase enemies who were faster than they were (mounted on a horse, vs. not, for example.)
They would use their tools to demolish to get to where the enemy was last seen.
no tool = break leaves and glass, glowstone and panes in 5 seconds.
stone pickaxe = break cobblestone, stone brick. takes 5 seconds for previous, 8 for these.
iron pickaxe = break resource blocks, brick, netherbrick. takes 3 seconds for first, 5 for previous, 8 for these.
diamond pickaxe = break obsidian, endstone et al, takes 8 seconds, takes 3 for everything else.
Axe = takes half the amount of time as a pickaxe, breaks wood products of all types.
Shovel = takes 1/3rd as long a pickaxe, breaks dirt, gravel, sand, grass, soulsand and mycelium.
They would also place whatever spare blocks and auto-collect blocks to get to enemies.
Organization, Spawning and Reproducing:
They would, unlike other mobs, move together. This would work as follows:
Upon spawning in groups of 4-8, they would be at a random level, each level is 50% less common than the last one.
They would not spawn particularly often.
They would have a vision range of 32, except when using a bow, when it would be 64.
They would look for the highest level one within their visual range, and path to within 16 of it. if they got lost, they would path to within 16 of where it was, then start wandering.
They would not despawn, but would cease spawning naturally if their where more than 40 in the loaded world.
If they where they highest level of the group, they would set out on a quest for XP, which would increase their level (slower than it does the player though).
They would also have hunger, and need food, they would find mobs or crops if they were hungry, and auto-craft wheat into bread or cookies, etc.
They would replant saplings, and breed mobs if they had extra wheat.
The highest level ones would, while idling, simply randomly choose destinations to path to.
If they were at full hunger and >50% saturation, they would have a small chance per minute of going into love mode, upon seeing this occur, others would have a fair chance of doing the same. Breeding would consume 50% saturation and 50% of the hunger of each parent. This would also lower each parent's level by one, to avoid parents being commanders and parents at the same time.
Babies would path to their parents, and never fight, they would avoid combat at all costs. Parents would know who their baby was, and feed it if it was hungry, babies could not collect food.
Babies would be one level below their parent, but would not be able to lead the group until they were adults.
They would have several stats inherited each from ONE of their parents (selected randomly):
Inverse random breeding chance (1.0+, defaults at 5-20): sets inverse of odds of going into love mode randomly, (1/odds)
Inverse triggered breeding chance (1.0+, defaults at 1-5): sets inverse of odds of going into love mode when seeing love mode activate. (delays for 1 minute upon failing)
Basic Temper (any value, defaults at -200 to 100) sets default amount of niceness to the player and others, -100 => instantly attack/flee, 100<=faithful servant.
Confidence (any positive value, defaults at 0.6 to 1.6): minimum ratio of enemy power to allied power deemed winnable during combat.
Mutation rate (0.0 to 100.0, defaults 0.1 to 10, logarithmic): random error rate after inheriting all stats, this would also modify itself.
They would spawn with equipment in proportion to their level (if they were a baby, they would become and adult with these):
Sword tier (wood=1, diamond=4)=flip a number of coins = 2*level. (a level 1, for example, would have a 25% chance of no sword, 50% chance of wood, and 25% chance of stone)
Sword enchant level=2*(2^level-2) (level 1=0, level 2=4, level 3=12, level 4=28, level 5+=30)
Bow (yes or no)=100*(level/level+1)% chance
Bow enchant level =2*(2^level-2) (level 1=0, level 2=4, level 3=12, level 4=28, level 5+=30)
Peaceful actions:
Trading with the player happens above a temper of -50, they would have a list of items that they are particularly interested in at the moment, which they would consider to be worth more, and also a list of items that they consider to be not important. They would trade for food if hungry, and for weapons/tools/armor/arrows if they were superior to theirs or their stockpile was running low. This would increase their relations with the player. At 0+, the player could ask for help in return for items. All mutually beneficial trades would increase relations, but in some cases, they would do so to a lesser degree than in others. (in proportion to the value gained out of trading)
The player could ask them to fight for him/her, normally, this would mean being paid in food, weapons, and other things to keep them up. you could also pay them to attack certain specific people on sight (or not too)
Higher level nomads would automatically pass their opinions of others down to their inferiors, however, trading with an inferior will still cause the higher-level to be persuaded somewhat if they are in view.
above a temper of 50, the player could make requests that would cost nothing but temper.
above 100, the player could do anything to them and they would be fine with it.
TLDR: Nomads would spawn in groups, reproduce on their own, follow their leaders, trade (barter for legitimate items in their inventory for those in yours) and fight with the player, possibly have horses or enchanted gear, cut down and replant trees, break blocks, fight each other potentially, and level up. They would also fight much more intelligently and hold grudges better/more realistically/individually, finally, you could hire them to do things.
Thoughts? Criticism? Comments? Ideas for more mechanics?
It would take some effort, but remember that bartering, etc are quite common in games and easy to code. As is having mobs follow things, have a relation value to the player, etc. As for deciding whether to fight or flee, just do this:
Check no. of other nomads visible under the same leader as you.
Cycle through them and add up their combined attack*health. multiply by confidence score.
Do the same for opponents visible. If weapon is unknown, assume none.
if first total is greater than second, attack, otherwise, flee.
And of course, most of the group will do the same because it is generally going to be pretty clean-cut as to the balance of power.
Also, it isn't necessarily only for Vanilla, this is also suggesting to mod-makers.
It would take some effort, but remember that bartering, etc are quite common in games and easy to code. As is having mobs follow things, have a relation value to the player, etc. As for deciding whether to fight or flee, just do this:
Check no. of other nomads visible under the same leader as you.
Cycle through them and add up their combined attack*health. multiply by confidence score.
Do the same for opponents visible. If weapon is unknown, assume none.
if first total is greater than second, attack, otherwise, flee.
Okay. But how does this function when at any given time, most of the chunks in the world are not loaded? If such tribes spend 99% of their time in statis because the player isn't near them, then their entire point is moot anyway. If them being in the game means each tribe automatically loads any chunks they're operating in, then it will cause massive amounts of lag, and probably kill 90% of multiplayer servers.
Okay. But how does this function when at any given time, most of the chunks in the world are not loaded? If such tribes spend 99% of their time in statis because the player isn't near them, then their entire point is moot anyway. If them being in the game means each tribe automatically loads any chunks they're operating in, then it will cause massive amounts of lag, and probably kill 90% of multiplayer servers.
True, unloaded tribes would wind up not doing as much.
but what about the ones near the players' base. they would likely start to grow over time, adding a source of regional difficulty.
I am not extremely knowledgeable about minecraft's source, but I could code the bartering system, attacking other players, etc into a custom piece of software.
For that matter, the auto-breeding, auto-replanting, etc would all be easily emulated in a custom piece of software, as would weapon damage and range for that matter.
If I can learn more about how to modify the Minecraft source, I will start coding this in MC.
I am not extremely knowledgeable about minecraft's source, but I could code the bartering system, attacking other players, etc into a custom piece of software.
If I can learn more about how to modify the Minecraft source, I will start coding this in MC.
Then don't speak about how easy it would be.
This requires an extensive mob AI usage and complex behavoiurs. At this current moment, none of any mob can craft items or modify blocks. It would require to redo an extensive part of Minecraft's code. It also requires non-despawning, which would mean that they could travel very far, creating oversized save files and killing multiplayer servers.
This requires an extensive mob AI usage and complex behavoiurs. At this current moment, none of any mob can craft items or modify blocks. It would require to redo an extensive part of Minecraft's code. It also requires non-despawning, which would mean that they could travel very far, creating oversized save files and killing multiplayer servers.
I am familiar enough with the source to know that mobs wandering around don't actually load chunks, so no giant save files.
Also, following, fleeing, etc are all current behaviors. all that would need to happen is following to within a distance and following the position where something was.
Also, Endermen modify blocks, as do sheep. Crafting items is not done on a crafting grid, just done by spawning them in and deleting the ingredients.
I am familiar enough with the source to know that mobs wandering around don't actually load chunks, so no giant save files.
Passive mobs don't wander really far and spawn when you load chunks. The ones you suggest will move very far and possibly way out of the loaded area. Since it would require to keep chunks "active" it would require more memory and the effects on multiplayer would be huge.
Also, following, fleeing, etc are all current behaviors. all that would need to happen is following to within a distance and following the position where something was.
While they are, the game would need to check a lot of variables. Fleeing is done on specific time and actions. Checking for all the variables would consume a lot of memory.
Passive mobs don't wander really far and spawn when you load chunks. The ones you suggest will move very far and possibly way out of the loaded area. Since it would require to keep chunks "active" it would require more memory and the effects on multiplayer would be huge.
While they are, the game would need to check a lot of variables. Fleeing is done on specific time and actions. Checking for all the variables would consume a lot of memory.
Yes, but only few mobs can. If a whole gang of mobs modified blocks, the memory usage would go quite up.
I am not sure exactly how much memory adding one extra variable checked every few seconds per mob does, but I know that during alpha and beta, mobs could still be active anywhere in the loaded world. This created a bit of lag, but not much. Also, since most of them would just be following at 16 meters away, it isn't like they are doing anything particularly complex except during combat, which would usually occur vs. the player or between only 8 to 16 mobs at once. most of them will just be sniping and deciding whether to charge or not. also, consider how many variables minecraft uses to store the positions of every block in the loaded world.
I am pretty sure that about 90% of the mobs will basically perform the actions of a donkey tethered to a fence 80% of the time. The rest will perform the action of wandering about.
Sure, if you spawned in 60 at once and got them under the same leader, and then had them fight the player through infinite cobble generators while trading, yeah, that would lag, but I don't think that would ever happen.
I am pretty sure this would be nearly impossible to code in java and you said a lot of games have these features and that is true but I bet most of those games aren't coded in java.
There would be random, roaming hordes of everything from barbarian warriors to traders and other useful NPCs. While they may or may not physically resemble NPC-villagers, they are substantially smarter, and work together to raid, pillage, trade and give assistance.
Difference between nomads and other mobs:
At the moment, Minecraft has:
Mobs that are terrified of combat, or worse, don't no they are dying. (all passive mobs)
Mobs that can either do nothing/be tamed, or fight to the death. (pigzombies, spiders in daylight, sort of endermen, wolves)
Mobs that sit around, waiting to charge the player with 100% berserk aggressiveness. (all melee hostiles)
Mobs that Snipe at the player while sitting there, almost managing to scream "HEY! I AM A STATIONARY TARGET! KILLLLL MEEE!" (all ranged hostiles)
Nomads would be much more complex, behaviorally speaking.
They would move about the world, looking for resources (Food, EXP, etc)
They would raid and pillage (They would have hardcoded limits on what they could physically break with what tools)
They would make more nomads, on there own.
They would know how to barter goods based on need.
They would be generally unpredictable to the untrained (see that band of nomads out there? are they traders? hunters, barbarians? all of the above?)
Combat
Combat with nomads would feel much more like PvP than combat with, say, skeletons, zombies, or blazes.
Upon entering combat with the player or mobs, They would check their stats, The combined stats of all allies, the combined stats of all enemies, and the stats of the closest enemy.
If they were so weak that they would be slaughtered in vane, they would not melee attack, they would get as far away as possible while maintaining proximity to powerful allies.
If they and their nearby allies combined were guessed to be more powerful (by adding up various combat stats with each other) than the nearby enemies, they would attack using the following strategy:
Organization, Spawning and Reproducing:
They would, unlike other mobs, move together. This would work as follows:
Upon spawning in groups of 4-8, they would be at a random level, each level is 50% less common than the last one.
They would not spawn particularly often.
They would have a vision range of 32, except when using a bow, when it would be 64.
They would look for the highest level one within their visual range, and path to within 16 of it. if they got lost, they would path to within 16 of where it was, then start wandering.
They would not despawn, but would cease spawning naturally if their where more than 40 in the loaded world.
If they where they highest level of the group, they would set out on a quest for XP, which would increase their level (slower than it does the player though).
They would also have hunger, and need food, they would find mobs or crops if they were hungry, and auto-craft wheat into bread or cookies, etc.
They would replant saplings, and breed mobs if they had extra wheat.
The highest level ones would, while idling, simply randomly choose destinations to path to.
If they were at full hunger and >50% saturation, they would have a small chance per minute of going into love mode, upon seeing this occur, others would have a fair chance of doing the same. Breeding would consume 50% saturation and 50% of the hunger of each parent. This would also lower each parent's level by one, to avoid parents being commanders and parents at the same time.
Babies would path to their parents, and never fight, they would avoid combat at all costs. Parents would know who their baby was, and feed it if it was hungry, babies could not collect food.
Babies would be one level below their parent, but would not be able to lead the group until they were adults.
They would have several stats inherited each from ONE of their parents (selected randomly):
They would spawn with equipment in proportion to their level (if they were a baby, they would become and adult with these):
Sword tier (wood=1, diamond=4)=flip a number of coins = 2*level. (a level 1, for example, would have a 25% chance of no sword, 50% chance of wood, and 25% chance of stone)
Sword enchant level=2*(2^level-2) (level 1=0, level 2=4, level 3=12, level 4=28, level 5+=30)
Bow (yes or no)=100*(level/level+1)% chance
Bow enchant level =2*(2^level-2) (level 1=0, level 2=4, level 3=12, level 4=28, level 5+=30)
Peaceful actions:
Trading with the player happens above a temper of -50, they would have a list of items that they are particularly interested in at the moment, which they would consider to be worth more, and also a list of items that they consider to be not important. They would trade for food if hungry, and for weapons/tools/armor/arrows if they were superior to theirs or their stockpile was running low. This would increase their relations with the player. At 0+, the player could ask for help in return for items. All mutually beneficial trades would increase relations, but in some cases, they would do so to a lesser degree than in others. (in proportion to the value gained out of trading)
The player could ask them to fight for him/her, normally, this would mean being paid in food, weapons, and other things to keep them up. you could also pay them to attack certain specific people on sight (or not too)
Higher level nomads would automatically pass their opinions of others down to their inferiors, however, trading with an inferior will still cause the higher-level to be persuaded somewhat if they are in view.
above a temper of 50, the player could make requests that would cost nothing but temper.
above 100, the player could do anything to them and they would be fine with it.
TLDR: Nomads would spawn in groups, reproduce on their own, follow their leaders, trade (barter for legitimate items in their inventory for those in yours) and fight with the player, possibly have horses or enchanted gear, cut down and replant trees, break blocks, fight each other potentially, and level up. They would also fight much more intelligently and hold grudges better/more realistically/individually, finally, you could hire them to do things.
Thoughts? Criticism? Comments? Ideas for more mechanics?
The idea itself isn't bad, it's just not realistic enough to pursue.
Check no. of other nomads visible under the same leader as you.
Cycle through them and add up their combined attack*health. multiply by confidence score.
Do the same for opponents visible. If weapon is unknown, assume none.
if first total is greater than second, attack, otherwise, flee.
And of course, most of the group will do the same because it is generally going to be pretty clean-cut as to the balance of power.
Also, it isn't necessarily only for Vanilla, this is also suggesting to mod-makers.
Okay. But how does this function when at any given time, most of the chunks in the world are not loaded? If such tribes spend 99% of their time in statis because the player isn't near them, then their entire point is moot anyway. If them being in the game means each tribe automatically loads any chunks they're operating in, then it will cause massive amounts of lag, and probably kill 90% of multiplayer servers.
True, unloaded tribes would wind up not doing as much.
but what about the ones near the players' base. they would likely start to grow over time, adding a source of regional difficulty.
Well, code it if it is so simple.
I dare you, I double dare you.
I am not extremely knowledgeable about minecraft's source, but I could code the bartering system, attacking other players, etc into a custom piece of software.
For that matter, the auto-breeding, auto-replanting, etc would all be easily emulated in a custom piece of software, as would weapon damage and range for that matter.
If I can learn more about how to modify the Minecraft source, I will start coding this in MC.
Do you mean that there is no support? you don't support? you are surprised that there is no support?
Then don't speak about how easy it would be.
This requires an extensive mob AI usage and complex behavoiurs. At this current moment, none of any mob can craft items or modify blocks. It would require to redo an extensive part of Minecraft's code. It also requires non-despawning, which would mean that they could travel very far, creating oversized save files and killing multiplayer servers.
I am familiar enough with the source to know that mobs wandering around don't actually load chunks, so no giant save files.
Also, following, fleeing, etc are all current behaviors. all that would need to happen is following to within a distance and following the position where something was.
Also, Endermen modify blocks, as do sheep. Crafting items is not done on a crafting grid, just done by spawning them in and deleting the ingredients.
Passive mobs don't wander really far and spawn when you load chunks. The ones you suggest will move very far and possibly way out of the loaded area. Since it would require to keep chunks "active" it would require more memory and the effects on multiplayer would be huge.
While they are, the game would need to check a lot of variables. Fleeing is done on specific time and actions. Checking for all the variables would consume a lot of memory.
Yes, but only few mobs can. If a whole gang of mobs modified blocks, the memory usage would go quite up.
I am not sure exactly how much memory adding one extra variable checked every few seconds per mob does, but I know that during alpha and beta, mobs could still be active anywhere in the loaded world. This created a bit of lag, but not much. Also, since most of them would just be following at 16 meters away, it isn't like they are doing anything particularly complex except during combat, which would usually occur vs. the player or between only 8 to 16 mobs at once. most of them will just be sniping and deciding whether to charge or not. also, consider how many variables minecraft uses to store the positions of every block in the loaded world.
I am pretty sure that about 90% of the mobs will basically perform the actions of a donkey tethered to a fence 80% of the time. The rest will perform the action of wandering about.
Sure, if you spawned in 60 at once and got them under the same leader, and then had them fight the player through infinite cobble generators while trading, yeah, that would lag, but I don't think that would ever happen.