League of Legends presents an interesting perspective on leveling up, where there are exactly 18 levels and a game is approximately 30 minutes. The levels are distributed in a manner that covers those thirty minutes in fairly equal portions. This point of view of the whole game and the player's course through it removes the desire to do damage to the player's progress from uncertainties of the value of their gains.
On the ranks of skill in a profession, there could be a separate AI module for apprentice_fisher and journeyman_fisher. So as an NPC gains ranks their AI polling list includes the additional features present in higher ranks.
How many skill ranks do you envision creating for the NPC professions?
Rollback Post to RevisionRollBack
My five-point rating system: Yay, kay, meh, erm, gleh
The Meaning of Life, the Universe, and Everything.
Join Date:
9/28/2014
Posts:
44
Member Details
Hmm, I of course know of league of legends, but have never played it. I will do some research on that game.
I will have to provide the context of my AI Engine and other components, to full explain why I have planned one skill per one AI module. We haven't talked about technology yet either, of which I have a basic outline of a tech tree and research system. Technology will play a huge role in expanding the abilities of a given skill. Therefore skills I feel should focus on the speed at which an action can be done, with technology altering the capabilities of the action.
I only have two AI's added - An idle AI module that is planned to control everything, and addable AIWorker modules which perform each given job.
Every AIWorker, in doing any job, has basic similarities. It takes a controllable amount of time to (A) prepare for work, (B) find work to do, (C) go to work, (D) prepare for work completion, (E) do work, and repeat. As of now, all these numbers (A-E) are arbitrarily determined (They're set at ~20ms now). If they were zero, the AI would be unrealistically good, especially for just starting. This problem here is where I feel skills will come in. When, in the code/math, a factor for how fast an action can be performed is needed, the skill for that AI code (and environmental/resource context) will determine the speed.
However farmer AI here does more than 1.8 villagers. The farmer will expand the farm if conditions allow. They replant, but don't have to begin at the beginning of the game with this skill. With higher skills, random bonuses in productions could occur. The process by which these aspects come about would be through technology. This is more analogous to the real world. However when one of these researched aspect of a skill requires a time factor, the skill level is then used. And a certain skill level may be required for a villager to learn a technology. Some these concepts are a bit hazy, but the distinction between research/science and skill/speed is what I have planned.
Essentially every unique AI module will have an associated skill. For example I plan on Quarrying and Mining being two separate AI's, and therefore two separate skills. Arguably, if the AI has to be changed radically enough then the skill for that AI should change as well.
One skill path also should require only one AI, because the research a villager has is not dependent (completely) on the skill of the villager. If no technology exists, a extremely well experienced toolsmith cant make metal. So I feel that a skill might end up needing some aspects of "apprentice module" and some of the "journeyman module" at the same time.
So for how many "ranks" will their be, could be determined by how many levels you want to introduce into the acidity model (or any linear model). But Some AI modules/skills will have more things to unlock/research than others.
I have also thought about hierarchy, not in the traditional linear skill ranking system, but in "who is in charge of who". For example the head farmer who hires other farmers (apprentices?) is no longer just a farmer, he may be a plantation owner (journeyman?). Similarly there may be a "scholar" rank, where a villager can then teach at the "university", increasing skills of young villagers, or maybe the rate at which a villager can learn a skill.
But in terms of actually classifying different skill levels and really the entire naming system, I am not too concerned with this personally, but I know and respect the importance of it to the game. I'm really open to any ideas, so long as it fits into the models. And as you've seen, really anything can be molded/bent/re-calculated to fit in.
What did you have in mind? I would like to, as before, break away and expand upon the linear models of the past.
The AI Engine already present in Minecraft is quite good, better than most.
When a thinking entity is polled, that entity has a dynamic priority list of AI modules it can execute or continue executing, and can do so simultaneously with other concurrent tasks or with mutually exclusive properties. The set of AI modules for a creature are semi-parallel execution, a warehouse of drones that activate when conditions are met.
Rollback Post to RevisionRollBack
My five-point rating system: Yay, kay, meh, erm, gleh
The Meaning of Life, the Universe, and Everything.
Join Date:
9/28/2014
Posts:
44
Member Details
I don't replace minecraft's engine but I do expand upon my AI Worker modules (one per job function) in ways that is probably beyond its design. I probably should look up the hierarchy rules of the vanilla AI modules again to make sure I'm not overdoing anything.
But back to your reference. I do see that a "sailor fisherman" AI that goes out, boats, and fishes itself, would be a different module compared to a "shored fisherman", which organizationally could be part of the same "skill family".
I chose this design during development, since any villager can do any job, the AI modules must be created/removed in real time. When I remember setting this up, I had issues with adding my AI's at only entity construction. I found myself regulating the AI and making sure they didn't overlap, rather than making the AI code itself, so I opted in basically reconstructing the AI task list everytime a drastic AI change occurred to an entity.
And in the long run these worker AI's may be replaced. The only MUST Have AI module is the Idle AI, that will perform the core decision making algorithm, turning on/off (adding/removing) AI as the equation determines. In reality the AI worker modules need only to perform their job, put the product in the right place, and turn off/on when told.
In the npc constructor is the base list of AI behaviors that a given npc type will call upon for it's activity. For example, in Colonies we had a base Citizen class, which added behaviors expected of all citizens: Base class constructor adding AI modules. Some example AI behavior modules.
A couple utility class extensions to the base java random number generator that came in handy was an rng.nextRadian() for getting a random direction, and an rng.nextLootDrop(x) which returned an gaussian curve integer {1..x} of the form common, uncommon, rare, exceptional.
Rollback Post to RevisionRollBack
My five-point rating system: Yay, kay, meh, erm, gleh
Have you played Anno 2070 or any of it's ilk? One of the things about that game that I enjoyed was how citizen desires for things diversify as they level up. Instead of just more/faster, they gain additional wants and desires, and variety seems to be a major feature of advanced societies.
Another thought on rent: If there is to be land ownership and charging rents then there ought to also be provisions for homelessness as a result of inability to pay rent. The profession of beggar, which might also include thief, and black market dealer.
Rollback Post to RevisionRollBack
My five-point rating system: Yay, kay, meh, erm, gleh
The Meaning of Life, the Universe, and Everything.
Join Date:
9/28/2014
Posts:
44
Member Details
I see your setup, and essentially I stick to that. I have methods to essentially reconstruct the AI task list when job types change. I have never played Anno 2070, but it looks interesting.
Im thinking of replanning the AI a bit, I see your overall point much better.
The diversification of citizen wants as the game progresses is an essential here as well. There will be some type of code that handles all the needs/wants in the game. They would all be relative, as in food is relatively more needed than expensive clothing. Things like Food, Shelter, Clothing, Warmth, Status (Clothing, Jewelry). Maybe rank, social position, income, etc could be tied to status, or be an input into this equation. The output here would then influence what a villager would trade or pursue in purchasing.
Also expanding the homelessness issue into thieving and the black market is interesting. The government structural setup would have to incorporate monitoring the economy creating a strong dynamic between the two, but it sounds like an amazing game mechanic.
I began implementing a system of wants and desires in Colonies, perhaps some of that coding would be of use. It worked like this:
The basic citizen class has an extra hidden phantom inventory, and wants are added by code conjuring up items into the desires inventory. Then an AI module is made for checking the dreams against the reality (their real inventory), and assigning a quest AI module to satisfy an unmet dream. Such an inventory check could also be made into a dynamic list of inventories that the citizen is allowed to consider part of their need satisfaction set.
This system can even support desires that aren't for 'things' by creating a token dream item that can be stored into inventories and interpreted by an AI module using some data structure contained in the dream item.
The Meaning of Life, the Universe, and Everything.
Join Date:
9/28/2014
Posts:
44
Member Details
... That is flippin good idea! A parallel inventory... NBT tags can attach all the other variables that may make an entity lean one way or another for an item when compared to the next.
Wants/Needs inventory can also work when a Villager needs to work to "sell" something. By correlating the need for food with the need to sell a product.
Such a good idea. So much can be done with a simple concept.
If we can consider the difference between what is desired and what is on-hand as a sort of pressure to go get something, a need and a want, then we ought to be able to think of the reverse situation as a surplus of want, a form of wealth. Thus if a citizen has a desired level of leather, and also has an abundance over that desired level, then they could construe that extra as trade-worthy goods. This would be useful if npcs specialized, so that a fisherman winds up with a lot of fish to trade to other npcs and players.
Rollback Post to RevisionRollBack
My five-point rating system: Yay, kay, meh, erm, gleh
An idea for a container block where villagers can come and put their excess material up for trade. They can either collect the exchange value on the spot for any unmet needs that can be satisfied with what's in the marketplace container, or they can take a voucher of credit for goods they placed in the market. Such voucher money would be useful when what they want is either not currently available, or they have no current needs, or perhaps they wish to go shopping in a different part of town where another market is full of stuff they want.
The idea that marketplaces might differ throughout a village could be because villagers tend to bring their goods to the closest market, so different markets have different abundances.
It might be interesting to create flexible rates of exchange as well, so here's an approach to that idea:
Each time a particular item is placed into a marketplace, it gets a supply point. And each time a particular item is removed from a marketplace it gets a demand point. The difference between supply and demand would give a pressure to either increase or decrease the exchange rate of that block at that marketplace.
An outcome of this type of flexible pricing is that it creates a motivational force to provide supply where there is demand, and visa versa across marketplace blocks as a simple consequence of price differential.
Tracking both supply and demand allows for a measurement of business volume, which could be used to determine where there is a need to increase employment in a field and thus what job skills a villager might be inclined to pursue.
One possible source of initial exchange rates could be the rates used in the mod Equivalent Exchange 3.
Rollback Post to RevisionRollBack
My five-point rating system: Yay, kay, meh, erm, gleh
The Meaning of Life, the Universe, and Everything.
Join Date:
9/28/2014
Posts:
44
Member Details
Your Idea on personal wealth is exactly what I'm going for as well. When an NPC works to perform a job, or run a business, essentially we are adding an extra "term" to the equation for personal demand. Such that, a fisherman will demand more fish than he could possible eat, because his demand for fish is what he needs to eat plus what he needs to sell, in order to equate to his other needs.
Through careful manipulation of "connecting demands/needs", NPC behavior could wind up being complex enough to support basic economic/decision making functions.
And as for the marketplace, I have a very de-centralized approach. By having NPC/villagers able to form their own trades based on their own inventories and basic needs/wants, vanilla trade lists can be created. By having villagers automatically attempt to trade with eachother, simple economic actions can take place.
I have planned to create a block that will allow the player/NPC to create trades in a gui, perform them, linked to a chest. This block will also be able to automatically trade with NPCs or other trading blocks.
The real dynamic portion of my decentralized approach comes in the form of the "merchant" career path. It would begin, by an NPC "merchant" job entailing the abilily to "scout" out trades, farther than is the normal default (maybe tied to a skill level). This will allow merchants to perform "middle-man" trades. It is the fact that they can network trades together that makes them profitable. These types of jobs would quickly sprout up when currencies/vouchers are in use, i would predict.
Also, merchants may be able interconnect multiple trades at once. This would allow for example, two or three bad trades, and several other good trades, in a complicated trading pattern, to be analyzed and a profitability equated. Also, like any worker can do, merchants can hire subservient merchants, creating businesses that solely operate on trade networks.
Through these NPC's corresponding AI, i feel all types of currency/item exchange could take place. The equations as to what the merchants thinks is the best way to sell things will provide all the options required to create an integrated and functional economy.
Also, employment would in the primary level be handled by considering an NPC with no job. They would, search for the most profitable job available, either by knowledge or employment, by calculating skill levels and other job influencing properties. The NPC would then attempt to perform that job. Therefore, if no jobs are around, and the NPC has seeds, farms would be started. Then a tool maker would pop up to make hoes. Then a lumberjack would collected would, and so forth.
On the secondary level, already established NPCs with a job and considerable assets/wealth could provide employment. This would allow a secondary tier in the level of ownership as we discussed prior. And these secondary level employers could then be hired by another employer, creating a complex network of ownership and profitability.
When all is said and done, there should still be a way to have a text file where you can define the relative demands for certain things, thereby having at least some price control on the items in the economy
If we consider the satisfaction of a person's needs through trade as business, then the atomic mechanism of employment can be construed as people bringing their goods to the market and placing them up for trade to players/npcs in exchange for things they need or the promise of equivalent purchase later.
For there to be a model of delegating such work out to a workman, there ought to be an exchange between the workman and the employer. This could be as simple as a player/npc offering their gathered monetary tokens for use in the marketplace to other npcs in exchange for specific products.
What is the value of this trade over and above a more direct trade of the worker to the marketplace? In general a business owner offers the tools of specialization to enhance productivity, and claims a part of those gains as their profit. There are also middlemen who operate as transport merchants by balancing out areas of high production with areas of high demand.
Rollback Post to RevisionRollBack
My five-point rating system: Yay, kay, meh, erm, gleh
A useful programming mechanism for semi-autonomous agents to act in a more coordinated manner is a programming structure that most closely resembles a D&D quest board.
The individuals put up offers on the board, and look for offers they can accept. Then they make a bid on those offers that is identical to their estimate of what it's worth. At the end of a round, the best bids are issued from the board to the bidders for further action.
Another useful aspect of this type of bidding board is that it can be expanded in a manner that allows for multiple people to contribute to a quest, with the best several being selected for a multi-person job.
Rollback Post to RevisionRollBack
My five-point rating system: Yay, kay, meh, erm, gleh
The Meaning of Life, the Universe, and Everything.
Join Date:
9/28/2014
Posts:
44
Member Details
Well, employment would begin when access to resources (such as farmable land, access to trees, etc) becomes limited. It would be cheaper to work for someone else. Additionally, a well operated business may be able to support specialization between employees, furthering the benefits of running a business (aka increased payf or everyone).
Also, I have a mechanism designed where NPC's could remember past trades, and their frequency of occurence, etc. Therefore stablized trade routes would naturally grow. Also NPC's could share this knowledge (store memories as simple NBTtaglist).
An economy would first develop based on trading food. Food itself would be considered currency. What I have realized, especially after coding and figuring out the mathematics, is that anything can be "currency" or a "commodity". Its all calculated the same. Employers would just pay their employees in food. At the top of this economy would be the bakers. A trade web can be imagined easily all linked by food.
What is also interesting to note is how some game currencies naturally develop. If a game item has no use, a stable/controllable generation rate it is sometimes used by players as an ingame currency. This happened with sponges in minecraft, and other items in other games.
So, emeralds now serve this purpose, or at least that is the intention. And in the calculations, emeralds are essentially worthless because they cannot be used to produce anything. This should naturally become the currency in game as well. Employers may naturally shift to emeralds, because they have less value compared to food, and just sell the food directly. This then indirectly forces a pseudo-currency. Employees would prefer to be paid in more valuable commodities/currencies, and the system would stabilize.
I also have played with some theoretical observations/equations, where inherent value exists in the fact that something can be traded for many things, rather than just one. Its almost as if the different number of liquidity states available has value. This may also increase the value of a currency that many trade with.
I can imagine the entire system being set up where middlemen just balance out large trade networks. The goal as a government would be to just protect your trade routes.
Additionally when currencies are used, an easily track-able and calculable tax/economic system can be created.
Of course all this is just the rough idea, but I feel in spirit it should work. Thoughts?
The Meaning of Life, the Universe, and Everything.
Join Date:
9/28/2014
Posts:
44
Member Details
Quest Boards is in interesting idea.
My current protomerchant-trader basically creates a personal quest board for the most profitable and efficient trade route based on the inventories. Creating a larger Quest engine would be amazing and sounds like a great idea. I'm going to toy with this idea in my head for awhile, because this can turn things into code that I never quite thought of directly before.
It would create a great mechanism for the player, but NPC's could easily complete these quests. In reality it is an elaborate Job type. If defineable in a quest file, entire storylines could be generated.
The Meaning of Life, the Universe, and Everything.
Join Date:
9/28/2014
Posts:
44
Member Details
They can be seen as distinct and have very different properties and behaviors, this is fundamental. I guess i mean more programmatically, where there is a way for an NPC to equate both a commodity and a currency to a comparable value of time (or time saved), when able to compare items in the context of an actual inventory and the desired "parallel" inventory. In this sense, the villager would be able to accurately and indiscriminately equate trading wheat for a hoe, and then wheat for currency for a hoe. Your typical villager wouldn't be interested in anything beyond this.
However banks and hier tiered financial institutions will definitely treat these two things differntly as they are complex.
Commodities and currencies are different, but in early stages of the game, i see them being treated relatively the same in a simple economy. Vouchers and debts will have fancier ways of determining value, but the overall idea will be the same.
League of Legends presents an interesting perspective on leveling up, where there are exactly 18 levels and a game is approximately 30 minutes. The levels are distributed in a manner that covers those thirty minutes in fairly equal portions. This point of view of the whole game and the player's course through it removes the desire to do damage to the player's progress from uncertainties of the value of their gains.
On the ranks of skill in a profession, there could be a separate AI module for apprentice_fisher and journeyman_fisher. So as an NPC gains ranks their AI polling list includes the additional features present in higher ranks.
How many skill ranks do you envision creating for the NPC professions?
My five-point rating system: Yay, kay, meh, erm, gleh
Hmm, I of course know of league of legends, but have never played it. I will do some research on that game.
I will have to provide the context of my AI Engine and other components, to full explain why I have planned one skill per one AI module. We haven't talked about technology yet either, of which I have a basic outline of a tech tree and research system. Technology will play a huge role in expanding the abilities of a given skill. Therefore skills I feel should focus on the speed at which an action can be done, with technology altering the capabilities of the action.
I only have two AI's added - An idle AI module that is planned to control everything, and addable AIWorker modules which perform each given job.
Every AIWorker, in doing any job, has basic similarities. It takes a controllable amount of time to (A) prepare for work, (B) find work to do, (C) go to work, (D) prepare for work completion, (E) do work, and repeat. As of now, all these numbers (A-E) are arbitrarily determined (They're set at ~20ms now). If they were zero, the AI would be unrealistically good, especially for just starting. This problem here is where I feel skills will come in. When, in the code/math, a factor for how fast an action can be performed is needed, the skill for that AI code (and environmental/resource context) will determine the speed.
However farmer AI here does more than 1.8 villagers. The farmer will expand the farm if conditions allow. They replant, but don't have to begin at the beginning of the game with this skill. With higher skills, random bonuses in productions could occur. The process by which these aspects come about would be through technology. This is more analogous to the real world. However when one of these researched aspect of a skill requires a time factor, the skill level is then used. And a certain skill level may be required for a villager to learn a technology. Some these concepts are a bit hazy, but the distinction between research/science and skill/speed is what I have planned.
Essentially every unique AI module will have an associated skill. For example I plan on Quarrying and Mining being two separate AI's, and therefore two separate skills. Arguably, if the AI has to be changed radically enough then the skill for that AI should change as well.
One skill path also should require only one AI, because the research a villager has is not dependent (completely) on the skill of the villager. If no technology exists, a extremely well experienced toolsmith cant make metal. So I feel that a skill might end up needing some aspects of "apprentice module" and some of the "journeyman module" at the same time.
So for how many "ranks" will their be, could be determined by how many levels you want to introduce into the acidity model (or any linear model). But Some AI modules/skills will have more things to unlock/research than others.
I have also thought about hierarchy, not in the traditional linear skill ranking system, but in "who is in charge of who". For example the head farmer who hires other farmers (apprentices?) is no longer just a farmer, he may be a plantation owner (journeyman?). Similarly there may be a "scholar" rank, where a villager can then teach at the "university", increasing skills of young villagers, or maybe the rate at which a villager can learn a skill.
But in terms of actually classifying different skill levels and really the entire naming system, I am not too concerned with this personally, but I know and respect the importance of it to the game. I'm really open to any ideas, so long as it fits into the models. And as you've seen, really anything can be molded/bent/re-calculated to fit in.
What did you have in mind? I would like to, as before, break away and expand upon the linear models of the past.
The AI Engine already present in Minecraft is quite good, better than most.
When a thinking entity is polled, that entity has a dynamic priority list of AI modules it can execute or continue executing, and can do so simultaneously with other concurrent tasks or with mutually exclusive properties. The set of AI modules for a creature are semi-parallel execution, a warehouse of drones that activate when conditions are met.
My five-point rating system: Yay, kay, meh, erm, gleh
I don't replace minecraft's engine but I do expand upon my AI Worker modules (one per job function) in ways that is probably beyond its design. I probably should look up the hierarchy rules of the vanilla AI modules again to make sure I'm not overdoing anything.
But back to your reference. I do see that a "sailor fisherman" AI that goes out, boats, and fishes itself, would be a different module compared to a "shored fisherman", which organizationally could be part of the same "skill family".
I chose this design during development, since any villager can do any job, the AI modules must be created/removed in real time. When I remember setting this up, I had issues with adding my AI's at only entity construction. I found myself regulating the AI and making sure they didn't overlap, rather than making the AI code itself, so I opted in basically reconstructing the AI task list everytime a drastic AI change occurred to an entity.
And in the long run these worker AI's may be replaced. The only MUST Have AI module is the Idle AI, that will perform the core decision making algorithm, turning on/off (adding/removing) AI as the equation determines. In reality the AI worker modules need only to perform their job, put the product in the right place, and turn off/on when told.
In the npc constructor is the base list of AI behaviors that a given npc type will call upon for it's activity. For example, in Colonies we had a base Citizen class, which added behaviors expected of all citizens: Base class constructor adding AI modules. Some example AI behavior modules.
A couple utility class extensions to the base java random number generator that came in handy was an rng.nextRadian() for getting a random direction, and an rng.nextLootDrop(x) which returned an gaussian curve integer {1..x} of the form common, uncommon, rare, exceptional.
My five-point rating system: Yay, kay, meh, erm, gleh
Have you played Anno 2070 or any of it's ilk? One of the things about that game that I enjoyed was how citizen desires for things diversify as they level up. Instead of just more/faster, they gain additional wants and desires, and variety seems to be a major feature of advanced societies.
Another thought on rent: If there is to be land ownership and charging rents then there ought to also be provisions for homelessness as a result of inability to pay rent. The profession of beggar, which might also include thief, and black market dealer.
My five-point rating system: Yay, kay, meh, erm, gleh
I see your setup, and essentially I stick to that. I have methods to essentially reconstruct the AI task list when job types change. I have never played Anno 2070, but it looks interesting.
Im thinking of replanning the AI a bit, I see your overall point much better.
The diversification of citizen wants as the game progresses is an essential here as well. There will be some type of code that handles all the needs/wants in the game. They would all be relative, as in food is relatively more needed than expensive clothing. Things like Food, Shelter, Clothing, Warmth, Status (Clothing, Jewelry). Maybe rank, social position, income, etc could be tied to status, or be an input into this equation. The output here would then influence what a villager would trade or pursue in purchasing.
Also expanding the homelessness issue into thieving and the black market is interesting. The government structural setup would have to incorporate monitoring the economy creating a strong dynamic between the two, but it sounds like an amazing game mechanic.
I began implementing a system of wants and desires in Colonies, perhaps some of that coding would be of use. It worked like this:
The basic citizen class has an extra hidden phantom inventory, and wants are added by code conjuring up items into the desires inventory. Then an AI module is made for checking the dreams against the reality (their real inventory), and assigning a quest AI module to satisfy an unmet dream. Such an inventory check could also be made into a dynamic list of inventories that the citizen is allowed to consider part of their need satisfaction set.
This system can even support desires that aren't for 'things' by creating a token dream item that can be stored into inventories and interpreted by an AI module using some data structure contained in the dream item.
My five-point rating system: Yay, kay, meh, erm, gleh
... That is flippin good idea! A parallel inventory... NBT tags can attach all the other variables that may make an entity lean one way or another for an item when compared to the next.
Wants/Needs inventory can also work when a Villager needs to work to "sell" something. By correlating the need for food with the need to sell a product.
Such a good idea. So much can be done with a simple concept.
Personal Wealth
If we can consider the difference between what is desired and what is on-hand as a sort of pressure to go get something, a need and a want, then we ought to be able to think of the reverse situation as a surplus of want, a form of wealth. Thus if a citizen has a desired level of leather, and also has an abundance over that desired level, then they could construe that extra as trade-worthy goods. This would be useful if npcs specialized, so that a fisherman winds up with a lot of fish to trade to other npcs and players.
My five-point rating system: Yay, kay, meh, erm, gleh
Marketplace
An idea for a container block where villagers can come and put their excess material up for trade. They can either collect the exchange value on the spot for any unmet needs that can be satisfied with what's in the marketplace container, or they can take a voucher of credit for goods they placed in the market. Such voucher money would be useful when what they want is either not currently available, or they have no current needs, or perhaps they wish to go shopping in a different part of town where another market is full of stuff they want.
The idea that marketplaces might differ throughout a village could be because villagers tend to bring their goods to the closest market, so different markets have different abundances.
It might be interesting to create flexible rates of exchange as well, so here's an approach to that idea:
Each time a particular item is placed into a marketplace, it gets a supply point. And each time a particular item is removed from a marketplace it gets a demand point. The difference between supply and demand would give a pressure to either increase or decrease the exchange rate of that block at that marketplace.
An outcome of this type of flexible pricing is that it creates a motivational force to provide supply where there is demand, and visa versa across marketplace blocks as a simple consequence of price differential.
Tracking both supply and demand allows for a measurement of business volume, which could be used to determine where there is a need to increase employment in a field and thus what job skills a villager might be inclined to pursue.
One possible source of initial exchange rates could be the rates used in the mod Equivalent Exchange 3.
My five-point rating system: Yay, kay, meh, erm, gleh
Your Idea on personal wealth is exactly what I'm going for as well. When an NPC works to perform a job, or run a business, essentially we are adding an extra "term" to the equation for personal demand. Such that, a fisherman will demand more fish than he could possible eat, because his demand for fish is what he needs to eat plus what he needs to sell, in order to equate to his other needs.
Through careful manipulation of "connecting demands/needs", NPC behavior could wind up being complex enough to support basic economic/decision making functions.
And as for the marketplace, I have a very de-centralized approach. By having NPC/villagers able to form their own trades based on their own inventories and basic needs/wants, vanilla trade lists can be created. By having villagers automatically attempt to trade with eachother, simple economic actions can take place.
I have planned to create a block that will allow the player/NPC to create trades in a gui, perform them, linked to a chest. This block will also be able to automatically trade with NPCs or other trading blocks.
The real dynamic portion of my decentralized approach comes in the form of the "merchant" career path. It would begin, by an NPC "merchant" job entailing the abilily to "scout" out trades, farther than is the normal default (maybe tied to a skill level). This will allow merchants to perform "middle-man" trades. It is the fact that they can network trades together that makes them profitable. These types of jobs would quickly sprout up when currencies/vouchers are in use, i would predict.
Also, merchants may be able interconnect multiple trades at once. This would allow for example, two or three bad trades, and several other good trades, in a complicated trading pattern, to be analyzed and a profitability equated. Also, like any worker can do, merchants can hire subservient merchants, creating businesses that solely operate on trade networks.
Through these NPC's corresponding AI, i feel all types of currency/item exchange could take place. The equations as to what the merchants thinks is the best way to sell things will provide all the options required to create an integrated and functional economy.
Also, employment would in the primary level be handled by considering an NPC with no job. They would, search for the most profitable job available, either by knowledge or employment, by calculating skill levels and other job influencing properties. The NPC would then attempt to perform that job. Therefore, if no jobs are around, and the NPC has seeds, farms would be started. Then a tool maker would pop up to make hoes. Then a lumberjack would collected would, and so forth.
On the secondary level, already established NPCs with a job and considerable assets/wealth could provide employment. This would allow a secondary tier in the level of ownership as we discussed prior. And these secondary level employers could then be hired by another employer, creating a complex network of ownership and profitability.
When all is said and done, there should still be a way to have a text file where you can define the relative demands for certain things, thereby having at least some price control on the items in the economy
Employment
If we consider the satisfaction of a person's needs through trade as business, then the atomic mechanism of employment can be construed as people bringing their goods to the market and placing them up for trade to players/npcs in exchange for things they need or the promise of equivalent purchase later.
For there to be a model of delegating such work out to a workman, there ought to be an exchange between the workman and the employer. This could be as simple as a player/npc offering their gathered monetary tokens for use in the marketplace to other npcs in exchange for specific products.
What is the value of this trade over and above a more direct trade of the worker to the marketplace? In general a business owner offers the tools of specialization to enhance productivity, and claims a part of those gains as their profit. There are also middlemen who operate as transport merchants by balancing out areas of high production with areas of high demand.
My five-point rating system: Yay, kay, meh, erm, gleh
Quest Boards
A useful programming mechanism for semi-autonomous agents to act in a more coordinated manner is a programming structure that most closely resembles a D&D quest board.
The individuals put up offers on the board, and look for offers they can accept. Then they make a bid on those offers that is identical to their estimate of what it's worth. At the end of a round, the best bids are issued from the board to the bidders for further action.
Another useful aspect of this type of bidding board is that it can be expanded in a manner that allows for multiple people to contribute to a quest, with the best several being selected for a multi-person job.
My five-point rating system: Yay, kay, meh, erm, gleh
Well, employment would begin when access to resources (such as farmable land, access to trees, etc) becomes limited. It would be cheaper to work for someone else. Additionally, a well operated business may be able to support specialization between employees, furthering the benefits of running a business (aka increased payf or everyone).
Also, I have a mechanism designed where NPC's could remember past trades, and their frequency of occurence, etc. Therefore stablized trade routes would naturally grow. Also NPC's could share this knowledge (store memories as simple NBTtaglist).
An economy would first develop based on trading food. Food itself would be considered currency. What I have realized, especially after coding and figuring out the mathematics, is that anything can be "currency" or a "commodity". Its all calculated the same. Employers would just pay their employees in food. At the top of this economy would be the bakers. A trade web can be imagined easily all linked by food.
What is also interesting to note is how some game currencies naturally develop. If a game item has no use, a stable/controllable generation rate it is sometimes used by players as an ingame currency. This happened with sponges in minecraft, and other items in other games.
So, emeralds now serve this purpose, or at least that is the intention. And in the calculations, emeralds are essentially worthless because they cannot be used to produce anything. This should naturally become the currency in game as well. Employers may naturally shift to emeralds, because they have less value compared to food, and just sell the food directly. This then indirectly forces a pseudo-currency. Employees would prefer to be paid in more valuable commodities/currencies, and the system would stabilize.
I also have played with some theoretical observations/equations, where inherent value exists in the fact that something can be traded for many things, rather than just one. Its almost as if the different number of liquidity states available has value. This may also increase the value of a currency that many trade with.
I can imagine the entire system being set up where middlemen just balance out large trade networks. The goal as a government would be to just protect your trade routes.
Additionally when currencies are used, an easily track-able and calculable tax/economic system can be created.
Of course all this is just the rough idea, but I feel in spirit it should work. Thoughts?
Quest Boards is in interesting idea.
My current protomerchant-trader basically creates a personal quest board for the most profitable and efficient trade route based on the inventories. Creating a larger Quest engine would be amazing and sounds like a great idea. I'm going to toy with this idea in my head for awhile, because this can turn things into code that I never quite thought of directly before.
It would create a great mechanism for the player, but NPC's could easily complete these quests. In reality it is an elaborate Job type. If defineable in a quest file, entire storylines could be generated.
I see currency and commodity as two things:
My five-point rating system: Yay, kay, meh, erm, gleh
They can be seen as distinct and have very different properties and behaviors, this is fundamental. I guess i mean more programmatically, where there is a way for an NPC to equate both a commodity and a currency to a comparable value of time (or time saved), when able to compare items in the context of an actual inventory and the desired "parallel" inventory. In this sense, the villager would be able to accurately and indiscriminately equate trading wheat for a hoe, and then wheat for currency for a hoe. Your typical villager wouldn't be interested in anything beyond this.
However banks and hier tiered financial institutions will definitely treat these two things differntly as they are complex.
Commodities and currencies are different, but in early stages of the game, i see them being treated relatively the same in a simple economy. Vouchers and debts will have fancier ways of determining value, but the overall idea will be the same.
Some thoughts on game mechanic engineering:
My five-point rating system: Yay, kay, meh, erm, gleh
There have been several goes at finding a common measure of merit for the items in Minecraft, here are some I know about
My five-point rating system: Yay, kay, meh, erm, gleh