Welcome to Keen Software House Forums! Log in or Sign up to interact with the KSH community.
  1. You are currently browsing our forum as a guest. Create your own forum account to access all forum functionality.

Lets talk about fundamental NPC's in ME

Discussion in 'General' started by ManOfArt, Apr 14, 2018.

Thread Status:
This last post in this thread was made more than 31 days old.
  1. ManOfArt Trainee Engineer

    Messages:
    50
    Requirements-
    • Path finding
    • Deposit/Resource finding
    • Object recognition
    • Object interaction
    • Subsumption
    Optional-
    • Mission giver
    • Trading
    • Building
    • Expanding

    Object recognition-
    In case of ME its impossible to hardcode what object is what as no object as whole must be same.
    What AI needs, is a system that can recognize object as whole.
    For example, building with beds inside would be recognized as a spawn house. Building with a crates inside would be recognized as storage house.
    And also be able to recognize individual objects that compose this whole objects (objects that are on its grid).
    Like a bed, or a crate or any intractable object. So when NPC needs something it will know that in this house is what hes looking for. Bed to go sleep and crates to store food and materials.
    With path finding and object interaction, theres no limits to a way the buildings are build.

    Subsumption-
    Its a tree/library of actions and tasks from which AI can choose to act upon a situation.
    This creates this dynamic AI that goes on its own and lives its life.

    So every NPC has its basic needs, like a shelter, bed and a crate.
    NPC cant be spawn without a bed. Every NPC is bound to its bed so in order to spawn a NPC, a bed must be constructed and assign to a NPC that will be generated. (There must be limitations to it so it wont spin out of control). Limit of beds per building (like for example max. one bed per log building, max two beds per plank building, max three beds per wooden bulding and so) and it has to be enclosed building with doors and other requirements so it can be assigned to a NPC.

    Then they have tasks they must fulfill. Food gathering and consuming so small farming and searching for food and perhaps hunting and survive.

    And finally, they have optional tasks. Resource gathering, improving their living, building the windmill and so, extending stock piles, but at slow phase.

    Controlled NPC's, first step.
    To avoid complicating it by making NPC's doing things like players do (exploring, conquering, spreading)
    NPC's would be limited to a area they were spawn in (for example 3km in diameter circle from its house)

    Optionally, there could be a generator that generates at a start of the world, couple of small NPC settlements players can find along the roads.

    The question is, would be the players be able to spawn NPC's or would be the NPC's only in the settlements?
    If not, this would force players to live in the NPC settlement with them and help to expand the settlement to village and then castle and what not into a city with NPC's as peasant living their lives and farming and perhaps we could trade with them for start.

    The difference between player and NPC is, that the NPC's already have what they need (tools.skills).
    And the way they could be building the structures is by using blueprints and projector technique.
    NPC finds a space big enough, places the blueprint, and that would spawn a projection which they would start hammering.

    Mission giver-
    Ask the old man, he might want something from you to bring him.

    Trading-
    NPC's with a caravan that travels from settlement to settlement and buy sell things.
    This NPC's are spawn randomly.
     
    • Like Like x 2
  2. Yurets Trainee Engineer

    Messages:
    56
    If there will be settlements, then I think it would be nice to make such that once a place in player's settlement becomes available, then some NPC would come from another village. Type of NPC can be random, but a chance to get "correct" one can depend on decorations/objects in available room. For example, if there is an anvil in a house, then chance that blacksmith will take this room is high.
     
  3. Cetric Junior Engineer

    Messages:
    691
    Good idea. You give hints to the game by interior details whom you want to live there - and who will give you a hand by his trade once he moved in.
     
  4. Tenzo Apprentice Engineer

    Messages:
    213
    I like your ideas. The ME framework needs a sense of purpose.

    You've also taken the time to show that your ideas can be applied in practical terms, in the game, right now. I really appreciate that.

    But I'm not sure the developers are ambitious enough to attempt anything of that nature, at least not while Marek is in charge, we'll see.
     
  5. Pigeon Trainee Engineer

    Messages:
    7
    The main issue was pathfinding got messed up on transition from flat to round world and has to be readjusted for the workers once that is fixed they might add various roles, or maybe we can. Their also missing livestock, horses and beasts of burden, dangerous beasts like wolves or big cats or bears.

    But, the peasants where in once and it a shame to not have them get added back in eventually. We really need them as the middle ages used a lot of human and animal labor for various machines and tasks.
     
    • Agree Agree x 1
  6. Yurets Trainee Engineer

    Messages:
    56
    I actually have seen them in game files. So, hopefully wolves will be added soon (maybe 0.7.0, maybe).
     
  7. boromir Apprentice Engineer

    Messages:
    157
    Marek's GoodAI project may be able to achieve this.
     
  8. Bumber Senior Engineer

    Messages:
    1,018
    And in 20 years your computer may be able to handle it. ;)
     
  9. boromir Apprentice Engineer

    Messages:
    157
    Machine Learning can do this today. I challenge someone who can do modding to make a new ME character with a Machine Learning component that has been trained on these kind of features (i.e. anvil -> blacksmith).
     
  10. Mirek Apprentice Engineer

    Messages:
    113
    Iam strongly against Spawning NPCs by player. NPCs should "spawn" in randomly placed villages, and player should have to personally visit such village and recruit/hire the npc, and then train the npc for the given task. the npc should level up over time and so become more effective in the given task. NPC should require some form of payment and accomodation from the player, the hire level the npc has the higher price. I would like to see something between what Mount and blade and Stronghold has with the npcs.

    There offcourse should be bandits and bandit camps in wich the bandits would spawn, and if the bandit camp is destroied, bandits would stop spawning in the area.
    Also npcs should be able to carry mesages betveen players to replace the global chat with something more immersive.
     
  11. Pigeon Trainee Engineer

    Messages:
    7
    The more stats, 'things it can do', and places it has to pathfind increases the complexity of the NPCs. This might not be too bad but with too many things to consider it could limit the amount of NPCs dramatically. If a regular server could only have 100-300 NPCs in total with all the bell and whistles and there is 25 players on at various times... there will be issues. A level up system adds an other layer to consider in the class for the NPCs which can lower the amount of NPCs we could field.

    A payment and accommodation system would be needed though because there has to be a fielding limit to peasants and a place for them stay while idle/spawn. How it would work can vary. By the way the previous way it worked was plop down a flag you get a peasant whom does stuff, very very basic; the issue was the change of world messed up pathfinding ai so it has to be fixed.

    A bandit spawn system, villages, etc could still occur because they can unloaded when nobody is nearby so they can go over the limit of the amount NPCs possible.
     
Thread Status:
This last post in this thread was made more than 31 days old.