Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Table of Contents
Here we consider a simple public goods game in which one’s payoff is a function of one's retained endowment and a multiple of all participants' contribution to the public good. Voluntary contributions are socially valuable, but not individually rational.
Treatments are varied over, 1. Communication (a free-form chat window, a more restrictive canned-response options in lieu of a free-chat-window, and lastly no communication possible). 2. Discrete vs continuous time.
This experiment is primarily concerned with how these treatments affect contributions to the group pool.
There is a number of players, n, and each receives an endowment of sMax at the start of the game. Players choose to retain all or part of their endowment for themselves (reflected by s,,i,, in the payoff function above), or contribute it to a group account - and later divided evenly among all players. The value of the token contributed to the group is multiplied by A. An A greater than (1) implies social value in group contributions – a public good. Clearly any individual’s best hope is for all other players to contribute their full endowment to the pool while our protagonist player retains their endowment. Contributions are not individually rational.
In this documentation’s parameterization, each participant receives 25 tokens in a private account (that is, sMax=25). Tokens retained are worth one point. Tokens contributed to the group account are worth A times this value, (we set A=1.2). With three players in each group, groupSize=n=3.
First, you need to download the following ZIP file [Home#DownloadCONG]. It contains an executable JAVA file called "Test.JAR" that will load & execute the experiment below.
You'll also need to download the comma separated variables (.csv) configuration file. This file provides ConG with a "game definition" that define fully how the experiment works: the number of periods, wither or not periods are run in continuous or discrete time, the payoff functions used, how subjects interact with the server & each other, and how information is displayed. This config file may be found at the following link Download PublicGoods.CSV.
Download, open and fully unzip the ConG Package.
1. Double-click on Test.JAR. 2. Select '''''3''''' as the Number of Subjects. 3. Leave "Open GL" checked (''if your computer, for some reason, can't use Open GL and crashes, please kindly upgrade your computer''). 4. Click the "Start" button. 5. You should see the one Control window and three Client windows pop up on your computer. 6. After these four windows have opened, click on the Control window. 7. Note that the three Clients have connected as client_1 test, client_2 test etc in the upper left-hand-corner of the Control window. 8. Click on "Load Period Config" in the bottom of the Control window. 9. Select the ([https://github.com/Leeps-Lab/ConG/blob/master/wiki-images/Public/PublicGoods.csv Download PublicGoods.CSV]) file. 10. Each Treatment below is a "Period" in the experiment you've just loaded. 11. As you work through the following treatments, it is useful to open the PublicGoods CSV file that defines this session -- and follow along with it through each treatment.
System Requirements - Although the test experiment should be able to run on most computers and laptops, you may want to check the System Requirements
The table below outlines the header and first "period definition" row of the PublicGoods.CSV config file we've loaded.
- Note that we are in period one now -- the second row of the (PublicGoods.CSV) config file. - Under paid we've said TRUE, meaning each player's actions in this round will be added to their final cash [wiki:paying_subjects]. If we wanted to have a practice round or two -- a period in which subjects got a chance to play risk-free before the experiment starts -- one would set "paid" to "False". - The length column refers to the number of seconds in the game. With the choice of 300, this period will last five minutes. - The subperiods column sets the option for continuous or discrete time. For the continuous time experiment, set subperiods to 0. More details on how ConG treats continuous vs discrete time may be found at this link.
The Figure below is a screenshot from the continuous time treatment configured above. This client window is from the point of view of player 'Green'. Note the strategy selector bar along the bottom -- users may select strategies between 0 and 25 (selecting with their mouse or arrow keys), this is the amount they contribute to the common pool. Here, player Green is being a bit greedy, choosing 0, thereby retaining all their endowment for themselves. There are also two counterpart players. Player Blue is retaining most of their token endowment and player Red is acting as most cooperative. At this point in the game there are 252 seconds left.
The table below outlines the header and second "period definition" row of the PublicGoods.CSV config file we've loaded. Here we move from continuous time to discrete time. Note the "subperiods" column breaks our five minute period into ten equal length sub-periods, (each lasting 30 seconds - 300 seconds divided by 10). During the 30-second interval subjects may freely change their strategy. Only the strategy selected at the end of the subperiod will be used to calculate payoffs and be reflected on screen.
- Note that we are in period two now -- the third row of the (PublicGoods.CSV) config file. - The length column remains 300, reflecting the five minute (three-hundred second) period length. - The subperiods field is set to 10. Each subperiod lasts 300/10 seconds, or thirty seconds. Note that subjects can change their strategy any time during the subperiod, however ConG only recognizes the s_,,i,, choice at the end of the thirty second interval in payoffs.
In the Figure below, please enjoy a screenshot from the discrete time experiment described by the config file fields above. There are four subperiods left (meaning we are choosing the action for the fourth to last subperiod, six have already passed). Note the light-blue progress bar above the payoffs chart, you can see we are about half way through the 30 second subperiod. This is a screenshot for player Green. The dots for Red and Blue denote the strategies chosen by those players in the previous subperiod (period five) -- BLUE was very cooperative; giving their 25 token endowment to the group pool (and only getting 18.6 of the pool in return). Player Red was greedy last subperiod; retaining their entire 25 token endowment to add to their 18.6 portion of the group pool, for a total of 43.3 tokens last subperiod.
There are three options for communications in Public Goods; no communications, "canned-response" chat, and free chat. When communication is enabled the clients will each have a popup chat window on their screen which they can use accordingly. We'll explore the options below.
The table below outlines the header and third "period definition" row of the PublicGoods.CSV config file we've loaded.
- With '''chatroom''' & '''freechat''' both set to FALSE, there is no chat window possible. This treatment period is identical to Period one above.
The table below outlines the header and fourth "period definition" row of the PublicGoods.CSV config file we've loaded.
- With chatroom set to TRUE, players have the option to chat in a window - With freeChat set to FALSE, players see a chatroom window (the window opens up separate to the game-selector window, ala the figure below). But with freeChat=FALSE chat options are limited to buttons that players can use to create simple commands to the other players. The player can click a button to write another player's color designation, and click other buttons to issue a command i.e. "Green go left". - Note that objectiveColors is set to TRUE. objectiveColors is a boolean field that applies only to the bubbles selector -- set to TRUE, means that during the players are a consistent color to one another. If one player appears GREEN to themselves, they appear GREEN to everyone else. Colors don't necessarily carry over from one period to the next. For the Chat feature to have an objective use to players, this field must be set to TRUE.
The table below outlines the header and fifth "period definition" row of the PublicGoods.CSV config file we've loaded.
- With both chatroom & freeChat set to TRUE, players see a second window pop-up during this period. The simple chat window allows players to chat freely.
Figure note that the chat window below is for a four-person game, while the tables above and config CSV demo file attached is for a three person game. We're just trying to confuse you.
The table below outlines the header and sixth "period definition" row of the PublicGoods.CSV config file we've loaded.
- Potential: When set to TRUE, subjects see a 'potential curve' on the clients' window. Although not particularly interesting for the Public Goods game, this 'potential' option may be used in other experiments that use the Bubbles selector. See the Bubbles page for more details.
- ConG test.jar experiments and sessions run on networked computers produce five output files, - payouts.csv - a period by period account of points earned by each subject. - ticks - a .csv log of subject actions. - client and server errors - a log of errors. - ip_address.csv Output files are discussed fully here, ConG Output Files
Below is a list, and brief explanations of each field in the "game definition" PublicGoods.CSV config file use for this experiment.
- period - [1-n] Integer field which designates the period number.
- paid - [TRUE] Boolean field which determines whether the point from the round are counted towards the player's payoff.
- length - - [1-n] Integer field which determines the length(in seconds) of the entire period.
- subperiods - NaN or [0-n] Integer field. When set to zero the game will be in continuous time. When set to greater than 0 the total period length in seconds will be divided by the number of subperiods. So for length=300 and subperiods=5 there will be five subperiods of 300/5 (one minute) length.
- groupSize - [1-n] Integer field which determines the number of players in each group. The number of subjects chosen when first loading ConG must be evenly divisible by this number.
- matchType - see Grouping page
- payoffFunction - This field requires specific entries that designate the payoff function of the game. For this public goods game, this field must be set to "sum".
- type - This field requires specific entries that designate the "sum" payoff function type. There are currently several sum payoff functions under development (for Cournot and Bertrand games, for example). For this public goods game, the type must be set to "public_goods".
- name - set to "pf"
- A - Integer field that sets the payoff function parameter "A".
- smin - Integer field that sets the payoff function parameter "sMin".
- smax - Integer field that sets the payoff function parameter "sMax".
- min - Integer field. Along with 'max', this scales the flow payoffs display chart. This value notes the smallest value plotted on the Y-axis
- max - Integer field. Along with 'min', this scales the flow payoffs display chart. This value notes the largest value plotted on the Y-axis
- mixed - [TRUE] Boolean field that determines whether the players can choose mixed strategies. This field must be set to TRUE for this public goods game.
- selector - This field requires the specific entry that determines the selectors that players may use in the game. This game must be set to "bubble".
- objectiveColors - [TRUE] A Boolean field that establishes whether or not the colors subjects see as they own is consistent with all players. If set to TRUE, then a player that appears GREEN on their own screen appears GREEN to all other subjects as well. Obviously for the Chat feature to have any objective use to players in the game, objectiveColors must be set to TRUE. Set to FALSE players aren’t colored consistently on each other’s screen – that is if one appears GREEN on one’s own screen that player may appear any number of a random set of colors on other subject’s screen. This field applies only apples to bubbles selector. The default is FALSE
- chatroom - [TRUE] Boolean field that determine whether or not the addition chat window will be open and available during the period. If set to TRUE, a chatroom window will appear. Currently, there are two chatroom option,
- freeChat - [TRUE] If the "chatroom" field above is set to TRUE, this boolean field determine which type of chatroom available during the period. Under "TRUE" the unlimited chatbox is available. Under "False", only the canned-response chatbox is available.
- initial – [0-1] A real number between zero and one, inclusive, that set’s all player’s initial endowment each period. The endowment is scaled to sMin and sMax (example; with sMin=0, sMax=25 and initial=0.2, each player will start with 5). The setting is global, applied to all players. Per-player endowments require additional configuration.
- showSMinMax – for bubbles, whether or not sMin or sMax are shown on x-axis.
- showPGMultiplier - whether or not the
- potential - Boolean field, if set to TRUE, shows a ‘potential’ curve, displays for the subject the potential payoff he/she could achieve for every possible strategy. This makes the subject's job considerably easier, as the best strategy for the user to choose is at the peak of this curve. For most (if not all) payoff functions, however, one subject's payoff is affected not only the subject's own strategy, but by some or all of the other subjects' strategies as well; thus, the curve can shift during a period. See the Bubbles page for more details.