Infrastructure Agents

The following is an outline of infrastructure agents and their behavior in Blackwood. Some of these were implemented, some partly so, some not at all.

Shopper agent ($g.shopper #1208)

These are 504 shoppers implemented and currently running in Blackwood

A shopper is either dispatched by the simulation at the beginning of the virtual week, or is dispatched by another shopper finishing a shopping trip

  • randomly choose a consumer
  • randomly choose an item from shopping list
  • select most attractive store
  • move to the store
  • identify the employee agent
  • request the item from the employee agent
  • if the employee produces a product, then decide whether to buy it
  • if the employee does not produce a product, or if the decision is NOT to buy, then move to the next store or give up
  • return "home" and dispatch the next shopper

    • create 504 shoppers - child of generic shopper
    • shopping based loosely on the "dispatch" verb from Dollar Bay

    Teamster agent ($g.teamster #294)

    There are 3 teamster agents implemented and running in Blackwood.

    There should be a variable number of Teamsters in town, and they should have different equipment and different capabilities. Some will venture out to distant destinations, some only work in town. Wagon capacity should be factored in to their scheduling.

    • wait for shipments to appear at the dock or the depot, pick them up and deliver them to players
    • interact with other agents and players
      • to solicit business?
      • to get needed repairs and supplies?
      • to deliver products from one player to another?
    • need size and weight on products

    Newspaper Agent ($g.gen_news_agent #2832)

    The newspaper agent is partially implemented.

    The Newspaper agent should create a newspaper, or a set of newspapers every week. In this era, newspapers were numerous and competed, sometimes savagely, against each other. Newspapers were the principal means for transmitting information in this era, and they would include news stories, advertising (often on the front page), announcements, and even fiction and poetry. Newspapers were often politically aligned too.

    In Blackwood, the newpaper should be weekly, and should be "delivered" or made available to every player once a week. Rather then actually deliver a newspaper object to each player, though, the newspaper should be a single object with a verb that allows players to "read" it

    • If possible, there should be a national or international news story every week, in order to transmist the historical perspectives.
    • There should be a way for players to buy advertising in the paper, and it should be by visiting the newpaper and interacting with an agent (very much like the direct advertising agent in Dollar Bay).
    • There should be a way for players to buy leaflet style advertising (again, very much like the direct advertising agent in Dollar Bay).
    • The newspaper should keep an archive of past editions so players can come and browse through back issues.
    • The newspaper should print announcements about new developments in Blackwood: population increases, arrival of the railroad, discovery of silver
    • The newspaper should periodically print a "local color" type story, about events in town: elections, visits by dignitaries, carnival events, etc.
    • no more than 322 national/international headline stories will be needed (one per week: March 1880 to March 1886).
    • Local news - get from simulation ex. population
    • The newspaper should be the keeper of the timeline; perhaps a list of lists, one per week, containing the relevant data

    Employee agent ($g.employee #1437)

    Generic employee object exists, but not currently operational.

    Employees have ranges of abilities and behaviors, and hence a range of wages. There is a "pool" of employees that players can select from.

    • wait for consumers to request products
    • search store for product
    • if product found, offer product to consumer
    • if consumer buys product, manage the accouting transaction
    • if consumer rejects product, search store for a cheaper model to offer to consumer
    • develop different behavior depending on "level of service"
      • periodically check business supplies, inform player if supplies are low
      • periodically check household supplies, inform player if they are low
      • periodically roam through house (perhaps checking supplies)
      • periodically roam through town (perhaps purchasing supplies?)
      • periodically visit a banker to get a loan
      • interact with players, answering questions, etc.
    • Periodically send an unemployed agent around to connected players asking for work
    • employees should be managing their own money

    Banker agent

    Nothing has been created or implemented for this agent.

    There should be a set of bankers in town. They should specialize to a degree: big loans, small loans, with differing criteria for credit and collateral

    • wait for players to request loans
    • wait for employees to request loans
    • evaluate player credit and offer differentiated loan terms
    • (there is a famous story about the man who walked into a western back with a four kings and an ace in an envelope, asking for a loan in order to raise a bet at a poker table - he got the loan)
    • periodically visit debtors to look over their operation (and make suggestions?)
    • overdue loans should prompt collection agents
    • Banks can be robbed?

    Travelling Salesman agent($g.generic_salesman #539)

    There are 4 salesman agents, one of which has several verbs defined, but they are not currently operating.

    Travelling salesmen should visit players and attempt to sell them products. These should be products not otherwise available through the supplier agent. There should be a range of these agents, each selling different types of product. For example, a fur trapper, or a medicine salesman. There is a similar set of agents in Dollar Bay, in particular the fortune machine salesman and the art salesman.

    Products that players buy from travelling salesman should be products that the players can in turn sell to others (this is different than the Dollar Bay model).

    Saloon Master Agent (Generic Saloon Keeper #1412)

    Nothing currently implemented.

    Implementation of a saloon in Blackwood could borrow from these Dollar Bay agents: #331 (Dealer), #650 (Casino Juggler), #269 (Casino Host), #233 (Dollar Bay Casino), #165 (Street Juggler)

    Shopkeeper Agent (Shop keeper #1294)

    Nothing currently implemented.

    The shopkeepers should attend to the daily business of running a business. They should order products, set and reset prices, and so forth.

    There are objects similar to this in Dollar Bay. They are implemented with a range of verbs with names like: :play_game, :play_ordering, :play_advertising, :play_borrowing, etc.

    In Dollar Bay there are 7 personalities named for 7 dwarfs. In Blackwood, each agent should have a property to define what kind of merchant they are, and thereby define what sort of products they can buy and sell.

    The Simulation

    The "engine" that drives the virtual environment is the behavior of the shoppers. There are 504 such shoppers, and during the weekend calculation for each virtual week, they are armed with individualized "shopping lists" which are used to generated sales in the simulation. Further, it is this shopping behavior that allows the simulation to mark "virtual time". In particular, a virtual week is the amount of time it takes for all the shoppers to exhaust their shopping lists. This can take a variable amount of "clock time", depending on a number of factors, but an average virtual week usually takes about 18 "real" hours.
    • Set the $g.batch flag
    • Weekend Calculation: calculate demand for every product by every consumer agent (results in a "shopping list" for every consumer
    • Weekend Calculation: calculate store "attractiveness" for every store by every consumer agent (results in an ordered list of stores)
    • Weekend Calculation: debit every player for rent, staffing, liabilities, advertising and purchases
    • Clear the $g.batch flag and Initiate the Shoppers
    • $g.shopper:schedule_events() starts two atmoshphere agents running, 50 times per virtual week.
    • Arrange for shipments to appear on the Riverboat Dock, and later at the Train Depot
    • Modify neighborhood populations over time

    Note: These infrastructure agents are in many cases based on the agents in Dollar Bay:
    Infrastructure Agent(#988) has 10 kids.
    Casino Host(#269) Vending Rep(#308) Warehouse Manager(#875) Warehouse Advertiser(#861) Direct Ad Agent(#812) Direct Delivery Person(#809) Chamber of Commerce Director(#762) Dealer(#331) Casino Juggler(#650) vendingrep(#5726)