As part of the rationality engine discussed earlier, I’ve put together a list of 12 types of economic actions for my agents to consider as options. For now it seems to cover all of the strange ideas I have for this project, but I’ll be careful to allow room for adding new actions or changing the existing ones. The actions are as follows:
- Use an object, for example using a plow to till soil, or mounting a horse.
- Attack a person or object, which includes chopping trees for wood.
- Use an object with another object, like using a millstone with wheat.
- Take an object, picking it up and adding it to inventory.
- Place an object, for example dropping excess goods, or paving ground.
- Manufacture object(s) from other object(s)
- Place a buy order
- Buy from a seller
- Place a sell order
- Sell to a buyer
- Place a job order
- Take a job order
Recipes and crafting
It is likely that there will be prescribed “recipes” for manufacturing objects, in a similar vein to Minecraft‘s crafting system. This is something which will have to be fiddled with later, but until my focus moves to manufacturing I’ll keep it simple. Ultimately, recipes may require broad categories of items (“metal”, where many metals will work, etc.), and may be discoverable in the world.
It seems that the best way to have agents buy and sell from each other is through a system of buy and sell orders, like one finds in a stock exchange. When one has a good to sell, they can either meet an existing buy order if they’re happy with the price, or list their own sell order and wait for a buyer. When choosing the best order to fill, an agent will have to consider both the order’s price and the distance to the trading agent.
“Jobs” will be matched in a similar way to buying and selling: potential employers will “list” a job order (like a buy order for labor), which specifies a goal, a timeframe, and a reward. Agents can look over this list and determine whether one of the jobs listed is worth their time. Working for an employer means that the agent will have access to the employer’s property, which may increase his productivity.
For example, agent A, who owns a millstone, may list a job for somebody to create as much flour as possible within five minutes. Agent B, who takes the job, will be more productive because he has access to a millstone, and meanwhile, agent A has determined that they would rather have those five minutes available to do something else than have whatever reward was promised to the agent B.
Ultimately it might be worth including a system of “employee orders”, like sell orders for labor, which would give employers a choice of desperate candidates.