Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 04, 2018
Last Modified: January 29, 2023 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements a Prisoner Dilemma Game within a reciprocity design. The Prisoner Dilemma Task is a decision making task about cooperation and competition in resource allocation in the absence of knowing what the other party's decision will be.
The Prisoner's Dilemma Task is a non-zero-sum game where the rewards are not a straightforward 'I win what you lose (or vice versa)' but rather a more varied pattern of resource allocation depending on the cooperative vs. competitive choices of both parties. The dilemma is to decide between cooperation and competition (aka self-interest) when competition might yield the highest (immediate) reward but loses to cooperation if both parties decide to compete.
The implemented procedure uses an 'investment framework' in which participants have the opportunity to play the game with the same 'partners' after a practice phase during which the participants are forced to always invest (aka cooperate).
The implemented procedure is based on:
Bell R, Mieth L, Buchner A (2017). Separating conditional and unconditional cooperation in a sequential Prisoner's Dilemma game. PLoS ONE 12(11): e0187952. https://doi. org/10.1371/journal.pone.0187952
Note: by default, multiple partners are used in the script
25 minutes
Participants play an investment prisoner dilemma game. Each round they are paired with a different partner (introduced via images) and have to decide to invest money into a shared fund or not. For each investment/cooperation decision, the computer adds a certain amount of money to the fund (e.g. if participant decides to cooperate and invests money, the computer adds money. If the partner decides to invest money, the computer adds additional money.). At the end of each round the money in the shared fund gets equally divided between the two people. Thus: a) Partner cooperates-participant does not: participant makes net gain b) Mutual cooperation: participant makes a net gain (as high as the incentive amount provided by computer) c) Mutual non-cooperation: participant neither wins nor loses any money d) Participant cooperates-partner does not: participant makes a net loss
The game is divided into two phases: 1. Exposure phase: During the exposure phase, participants get to know their different partners via their images and 'practice' the game (though they will be forced to always cooperate, their 'partners' will not) 2. Test phase: During the test phase, participants are again paired with the same partners as well as a couple of new ones. This time participants are free to cooperate or compete.
Stimuli-Assignment:
- the script automatically randomly selects 6 of each genderxemotion category to be used during the
exposure phase.
- computer balances the number of cooperation and non-cooperation 'decisions' across genders and facial expressions
1. Exposure Phase:
- 24 trials: participant plays the game with 12 female partners (6 look angry, 6 look happy) and 12 male partners
(6 look angry, 6 look happy)
- by default, the computer assigns to each partner image its investment decision (cooperation vs. non-cooperation)
(the number of cooperation and non-cooperation 'decisions' is balanced across genders and facial expressions;
given these constraints, the assignment is randomly done for each participant)
- the order of the images is selected at random for each participant
- by default, participant is forced to cooperate during the first round
2. Test Phase:
- 36 trials: participants play the game with the 24 exposure-phase partners and 12 new ones
(6 females: 3 happy, 3 angry; 6 males: 3 happy and 3 angry)
- the order of the images is selected at random for each participant
- by default, the investment decision of the partners is decided randomly by the computer
- by default, participant is forced to cooperate during the first round
Trial Sequence:
- presentation of current start balance (5000ms)
- presentation of current partner image and the cooperation question (until response)
- decision delay (1000ms)
- participant decision feedback (1000ms)
- partner decision delay (5000ms)
- partner decision feedback (5000ms)
- presentation of gain/loss outcome (5000ms)
- presentation of end balance (5000ms)
Round Duration (default settings): 27s + response time
Bell et al (2017) used the AR database: https://www2.ece.ohio-state.edu/~aleix/ARdatabase.html
This database is free to use for academic research
The stimuli used in this script are images collected from the internet and should be
treated as placeholders. They can be exchanged under section Editable Stimuli.
There are 4 x 9 = 36 stimuli provided.
Instructions are not original to the task. They are provided by Millisecond
as htm/html pages and can be edited by changing the provided htm/html files.
To edit htm/html-files: open the respective documents in simple Text Editors such as TextEdit (Mac)
or Notepad (Windows).
File Name: prisonerdilemma_reciprocity_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| startDate | Date the session was run |
| startTime | Time the session was run |
| subjectId | Participant ID |
| groupId | Group number |
| sessionId | Session number |
| elapsedTime | Session duration in ms |
| completed | 0 = Test was not completed 1 = Test was completed |
| computerStrategy | The strategy the computer uses to make its choice. If (parameter) predeterminedExposureDecisions is set to 'true', the selected strategy is overwritten and the assigned exposureComputerDecision is used instead during the exposure phase. 1 = 'cooperation': selects the cooperative strategy X on every round 2 = 'competition': simply defects on every round of every game by choosing the non-cooperative strategy Y 3 = 'random': selects randomly 4 = 'tit-for-tat': cooperates on first round then mirrors the players choices from the previous rounds 5 = 'tit-for-two-tats': computer cooperates until 2 defects in a row and does not cooperate again until player does 6 = 'probabilistic': cooperates on first round, then selects the strategy that is most often used by player ( if player has selected the cooperative strategy exactly 50% of the time, computer selects cooperative strategy) |
| predeterminedExposureDecisions | True (1) = the computer uses pre-assigned cooperation vs. non-cooperation decisions that are carefully balanced by gender x facial expression during the exposure phase. During the test phase, the computer generates the partner's decision based on (parameter) computerStrategy. (default) false (0) = the computer generates the partner's decision based on (parameter) computerStrategy during exposure and test phase. |
| propCoOperation | Proportion cooperation selections during the test rounds |
| propReciprocity | Proportion reciprocity during the test rounds reciprocity = selecting cooperation during the test round for partners who cooperated during the exposure phase. |
| propRetaliation | Proportion retaliation during the test rounds retaliation = selecting non-cooperation during the test round for partners who did not cooperate during the exposure phase. |
| propReciprocityAngry | Proportion reciprocity during the test rounds for 'famkliar' partners with angry expressions reciprocity = selecting cooperation during the test round for partners who cooperated during the exposure phase. |
| propReciprocityHappy | Proportion reciprocity during the test rounds for 'old' partners with happy expressions reciprocity = selecting cooperation during the test round for partners who cooperated during the exposure phase. |
| propRetaliationAngry | Proportion retaliation during the test rounds for 'old' partners with angry expressions retaliation = selecting non-cooperation during the test round for partners who did not cooperate during the exposure phase. |
| propRetaliationHappy | Proportion retaliation during the test rounds for 'old' partners with happy expressions retaliation = selecting non-cooperation during the test round for partners who did not cooperate during the exposure phase. |
| mRT | Mean decision latency (in ms) during the test phase |
| mRTCooperative | Mean decision latency (in ms) of cooperative decisions during the test phase |
| mRTNoncooperative | Mean decision latency (in ms) of cooperative decisions during the test phase |
| mRTReciprocity | Mean decision latency (in ms) of reciprocity decisions (see propReciprocity) |
| mRTRetaliation | Mean decision latency (in ms) of retaliation decisions (see propRetaliation) |
| mRTCooperativeAfterCooperative | Mean decision latency (in ms) of cooperative decisions made after the last partner made a non-cooperative decision |
| mRTCooperativeAfterNoncooperative | Mean decision latency (in ms) of cooperative decisions made after the last partner made a cooperative decision |
| mRTNoncooperativeAfterCooperative | Mean decision latency (in ms) of non-cooperative decisions made after the last partner made a non-cooperative decision |
| mRTNoncooperativeAfterNoncooperative | Mean decision latency (in ms) of non-cooperative decisions made after the last partner made a cooperative decision |
File Name: prisonerdilemma_reciprocity_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| blockCode | Name of the current block |
| blockNum | Number of the current block |
| trialCode | Name of the current trial |
| trialNum | Number of the current trial |
| computerStrategy | The strategy the computer uses to make its choice. If (parameter) predeterminedExposureDecisions is set to 'true', the selected strategy is overwritten and the assigned exposureComputerDecision is used instead during the exposure phase. 1 = 'cooperation': selects the cooperative strategy X on every round 2 = 'competition': simply defects on every round of every game by choosing the non-cooperative strategy Y 3 = 'random': selects randomly 4 = 'tit-for-tat': cooperates on first round then mirrors the players choices from the previous rounds 5 = 'tit-for-two-tats': computer cooperates until 2 defects in a row and does not cooperate again until player does 6 = 'probabilistic': cooperates on first round, then selects the strategy that is most often used by player ( if player has selected the cooperative strategy exactly 50% of the time, computer selects cooperative strategy) |
| phase | "exposure" vs. "test" |
| countRounds | Tracks the number of round played per phase (resets after practice) |
| partnerGender | "female" vs. "male" |
| facialExpression | "happy" vs. "angry" (facial expression of current partner image) |
| familiarity | "old" (images used during exposure) vs. "new" (images used only during the test phase) |
| faceStim | Stores the image file of the current partner |
| exposurePartnerDecision | 1 = cooperative decision during exposure of this partner 2 = non-cooperative decision during exposure of this partner "N/A" (for new items) |
| previousPartnerDecision | The partner decision from the previous round: 1 = cooperative; 2 = noncooperative |
| partnerDecision | 1 = cooperative partner decision 2 = non-cooperative partner decision |
| response | Default variable to capture the response recorded during the current trial |
| decision | 1 = cooperative participant decision 2 = non-cooperative participant decision |
| latency | Latency (in ms) of currently recorded trial |
| rtDecision | Latency of decision (in ms) |
| countConsecutiveNonCooperative | Counts the number of consecutive non-cooperative decisions made by participant |
| startBalance | Stores the balance at the start of each round |
| endBalance | Stores the balance at the end of each round |
| fundMoney | Stores the total money in the shared fund |
| investmentAmount | The amount (in cents) participants are asked to invest per round (default: 30cents) |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
| startCapital | The amount (in cents) participants receive at the start of the practice and test session (default: 100 cents) | |
| investmentAmount | The amount (in cents) participants are asked to invest per round | 30cents |
| bonusAmount | The bonus amount (in cents) added to the shared fund for each cooperation decision (either from participant or partner) (default: 10cents) | |
| predeterminedExposureDecisions | True (1) = the computer uses pre-assigned cooperation vs. non-cooperation decisions that are carefully balanced by gender x facial expression during the exposure phase. During the test phase, the computer generates the partner's decision based on parameters.computerStrategy. (default) false (0) = the computer generates the partner's decision based on parameters.computerStrategy during exposure and test phase. | |
| computerStrategy | The strategy the computer uses to make its choice. If parameters.predeterminedExposureDecisions is set to 'true', the selected strategy is overwritten and the assigned values.exposureComputerDecision is used instead during the exposure phase. Furthermore, some of these strategies may not make sense given the experimental design used. (e.g. 'tit-for-tat' only makes sense if the same partner is used repeatedly) 1 = 'cooperation': selects the cooperative strategy X on every round 2 = 'competition': simply defects on every round of every game by choosing the non-cooperative strategy Y 3 = 'random': selects randomly 4 = 'tit-for-tat': cooperates on first round then mirrors the players choices from the previous rounds 5 = 'tit-for-two-tats': computer cooperates until 2 defects in a row and does not cooperate again until player does 6 = 'probabilistic': cooperates on first round, then selects the strategy that is most often used by player ( if player has selected the cooperative strategy exactly 50% of the time, computer selects cooperative strategy) | |
| presentBalanceTest | True (1) = the balance is presented at start and end of each test trial (default) false (0) = the balance is not presented at start and end of each test trial if the default is changed, you might have to change instructions accordingly | |
| presentPartnerDecisionTest | True (1) = the participant receives feedback in regard to the partner's decision (same as in practice) false (0) = no feedback in regard to partner decision is given during test (default) if the default value is changed, change the instructions accordingly |