Pizzagame: with male coplayers, ages 9-12 Main Script to run: pizzagame_m9to12.iqjs *A selfie maker can be activated - default runs with a generic avatar instead* ___________________________________________________________________________________________________________________ *Pizza Game* ___________________________________________________________________________________________________________________ Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC Date: 03-07-2022 last updated: 09-30-2024 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC Script Copyright © 09-30-2024 Millisecond Software Millisecond Software thanks Dr. Jan Keil for his ample support in creating this script! Any mistakes and errors that this script may contain, however, are Millisecond's alone. ___________________________________________________________________________________________________________________ BACKGROUND INFO ___________________________________________________________________________________________________________________ The 'Pizza Game' is a virtual public goods game to assess cooperative behavior in children and adolescents (Keil et al, 2017). The 'Pizza Game' is not a true multi player game but simulates the behavior of coplayers with computer algorithms while pretending that participants play against real people. The original 'Pizza Game' app runs in German and was initially programmed in e-prime. It was later re-programmed by [programmer name]. This updated version of the Pizza Game - used by the lab of Dr. Jan Keil- incorporates a selfie-app to increase the real-life validity of the task. For more information regarding the original Pizza Game implementation contact Dr. Keil at jan.keil@medizin.uni-leipzig.de. /////////Options//////////////// This Inquisit implementation of the pizza game provides the following options: (1) script played with avatars: run pizzagame_avatars.iqjs (all players use avatars-participant can choose avatar and avatar name) (2) script played with female co-players, age 9-12: run pizzagame_f9to12.iqjs Images taken from the NIMH-chEFS database Neutral-direct gazes Each coplayer image gets a name randomly assigned (see file 'pizzagame_coplayers_f_agegroup1.iqjs) (3) script played with female co-players, age 13-16: run pizzagame_f13to116.iqjs Images taken from the NIMH-chEFS database Neutral-direct gazes Each coplayer image gets a name randomly assigned (see file 'pizzagame_coplayers_f_agegroup2.iqjs) (4) script played with male co-players, age 9-12: run pizzagame_m9to12.iqjs Images taken from the NIMH-chEFS database Neutral-direct gazes Each coplayer image gets a name randomly assigned (see file 'pizzagame_coplayers_m_agegroup1.iqjs) (5) script played with male co-players, age 13-16: run pizzagame_m13to16.iqjs Images taken from the NIMH-chEFS database Neutral-direct gazes Each coplayer image gets a name randomly assigned (see file 'pizzagame_coplayers_m_agegroup2.iqjs) Reference: Keil, J., Michel, A., Sticca, F. et al. The Pizzagame: A virtual public goods game to assess cooperative behavior in children and adolescents. Behav Res 49, 1432–1443 (2017). https://doi.org/10.3758/s13428-016-0799-9 ___________________________________________________________________________________________________________________ TASK DESCRIPTION ___________________________________________________________________________________________________________________ The basic game setup is as follows: Participant are told that they play a game with 2 fellow players that evolves around collecting slices of pizzas: The more slices of pizza the better. Each player receives 9 slices of pizza at the start of each new game round. Each player then has to decide how many slices of pizza to keep (safely) at home and how many slices of pizza to contribute to a 'public share plate' at school. Home: pizza is 'safe' (home pizza slices cannot be taken away) School: slices of pizza are pooled and teacher contributes half of the collected slices. The total number of slices of pizza are then divided up amongst the three players => depending on how many slices of pizza are contributed by all the players, each player can end up with more, fewer or the same number of pizza slices compared to the start amount (9) Examples: 1) None of the players contribute ('non-cooperative' or 'selfish') school: 3*0 = 0; 0/2 = 0 (0+0)/3 = 0 => each player receives 13.5 pizza slices from school => 9 (home) + 0 (school) = 9 (9-9 = 0 => no gain, no loss) 2) 2 players contribute 0 slices of pizza and one player contributes 9 slices. ('exploitative' or 'divergent') school: 1*9 = 9; 9/2 = 4.5; (9+4.5)/3 = 4.5 => each player receives 9 pizza slices from school => cooperative player: 0 (home) + 4.5 (school) = 4.5 (4.5-9 = -4.5 => loss) => exploitative players: 9 (home) + 4.5 (school) = 13.5 (13.5-9 = 4.5 => net gain) 3) All players contribute 9 slices of pizze ('cooperative'). school: 3*9 = 27; 27/2 = 13.5; (27+13.5)/3 = 13.5 => each player receives 13.5 pizza slices from school => 0 (home) + 13.5 (school) = 13.5 (13.5-9 = 4.5 => net gain) Participants play 3 games with 4 rounds each. Each game is played with different 'players'. The first game is run with cooperative players, the second one is run with uncooperative players, and the third game is run with one exploitative player. ___________________________________________________________________________________________________________________ DURATION ___________________________________________________________________________________________________________________ the default set-up of the script takes appr. 15-20 minutes to complete ___________________________________________________________________________________________________________________ DATA OUTPUT DICTIONARY ___________________________________________________________________________________________________________________ The fields in the data files are: (1) Raw data file: 'pizzagame_raw*.iqdat' (a separate file for each participant)* build: The specific Inquisit version used (the 'build') that was run computer.platform: the platform the script was run on (win/mac/ios/android) date, time: date and time script was run subject: current subjectId group: groupnumber session: with the current session id blockCode, blockNum: the name and number of the current block (built-in Inquisit variable) trialCode, trialNum: the name and number of the currently recorded trial (built-in Inquisit variable) Note: trialNum is a built-in Inquisit variable; it counts all trials run; even those that do not store data to the data file. runSelfieTaker: false true: a selfie taker module is run false: no selfie taker module is run coplayerCondition: "avatar", "f9to12", "f13to16", "m9to12", OR "m13to16" //built-in DVs (record for any data recording trial) response: the participant's response correct: accuracy of response: 1 = correct response; 0 = otherwise (if applicable) latency: the response latency (in ms); measured from: onset of trial //Demo Data: correctResponseQ1: stores the correct response for q1 (0 = none, 1 = button1, 2=button2, 3=button3, A = All) q1Rsp: stores the selected response for q1 q1Acc: see trialCode 'compQuestions_end': 1 = comprehension question 1 answered correctly; 0 = otherwise correctResponseQ2: stores the correct response for q2 (0 = none, 1 = button1, 2=button2, 3=button3, A = All) q2Rsp: stores the selected response for q2 q2Acc: see trialCode 'compQuestions_end': 1 = comprehension question 2 answered correctly; 0 = otherwise correctResponseQ3: stores the correct response for q3 (0 = none, 1 = button1, 2=button2, 3=button3, A = All) q3Rsp: stores the selected response for q3 q3Acc: see trialCode 'compQuestions_end': 1 = comprehension question 3 answered correctly; 0 = otherwise //Test Game Data (see trial.testDecision) game: 1, 2 or 3 gameCondition: "cooperative", "selfish", "divergent" roundCount: counts the number of rounds per game (1-4) coplayer1Image: the image presented for coplayer1 (on the left) coplayer1Name: the name selected for coplayer1 startPlayer1: the number of pizza slices at the start of the round schoolPlayer1: the number of pizza slices that coplayer1 takes to school homePlayer1: the number of pizza slices that coplayer1 keeps home coplayer2Image: the image presented for coplayer2 (on the right) coplayer2Name: the name selected for coplayer2 startPlayer2: the number of pizza slices at the start of the round schoolPlayer2: the number of pizza slices that coplayer2 takes to school homePlayer2: the number of pizza slices that coplayer2 keeps home participantImage: the image presented for participant (in the middle) participantName: the name used for participant startParticipant: the number of pizza slices at the start of the round schoolParticipant: the number of pizza slices that participant takes to school homeParticipant: the number of pizza slices that participant keeps home schoolContribution: the sum of the all the pizza slices brought to school teacherContribution: the number of pizza slices the teacher contributes totalpizza: the combined number of pizza slices (teacher contribution + slices brought in by the kids) takeHomepizza: the number of pizza slices that each kid can take home finalPlayer1: the total number of pizza slices for player1 (home + takehomepizza) at the end of the current round finalPlayer2: the total number of pizza slices for player2 (home + takehomepizza) at the end of the current round finalParticipant: the total number of pizza slices for participant (home + takehomepizza) at the end of the current round //the collected number of pizza slices (participant) by game and round game1R1: the collected number of pizza slices in round1 of game1 ('cooperative') game1R2: the collected number of pizza slices in round2 of game1 game1R3: the collected number of pizza slices in round3 of game1 game1R4: the collected number of pizza slices in round4 of game1 game2R1: the collected number of pizza slices in round1 of game2 ('selfish') game2R2: the collected number of pizza slices in round2 of game2 game2R3: the collected number of pizza slices in round3 of game2 game2R4: the collected number of pizza slices in round4 of game2 game3R1: the collected number of pizza slices in round1 of game3 ('divergent') game3R2: the collected number of pizza slices in round2 of game3 game3R3: the collected number of pizza slices in round3 of game3 game3R4: the collected number of pizza slices in round4 of game3 (2) Summary data file: 'pizzagame_summary*.iqdat' (a separate file for each participant)* inquisit.version: Inquisit version run computer.platform: the platform the script was run on (win/mac/ios/android) startDate: date script was run startTime: time script was started groupId: groupnumber sessionId: assigned session id number elapsedTime: time it took to run script (in ms); measured from onset to offset of script completed: 0 = script was not completed (prematurely aborted); 1 = script was completed (all conditions run) runSelfieTaker: false true: a selfie taker module is run false: no selfie taker module is run coplayerCondition: "avatar", "f9to12", "f13to16", "m9to12", OR "m13to16" compAcc: comprehension accuracy: proportion correctly responded comprehension questions (out of 9) //the collected number of pizza slices (participant) by game and round game1Condition: cooperative game1R1: the collected number of pizza slices in round1 of game1 ('cooperative') game1R2: the collected number of pizza slices in round2 of game1 game1R3: the collected number of pizza slices in round3 of game1 game1R4: the collected number of pizza slices in round4 of game1 game2Condition: selfish game2R1: the collected number of pizza slices in round1 of game2 ('selfish') game2R2: the collected number of pizza slices in round2 of game2 game2R3: the collected number of pizza slices in round3 of game2 game2R4: the collected number of pizza slices in round4 of game2 game3Condition: divergent game3R1: the collected number of pizza slices in round1 of game3 ('divergent') game3R2: the collected number of pizza slices in round2 of game3 game3R3: the collected number of pizza slices in round3 of game3 game3R4: the collected number of pizza slices in round4 of game3 ___________________________________________________________________________________________________________________ EXPERIMENTAL SET-UP ___________________________________________________________________________________________________________________ (1) Game Loading: the script 'loads' the game page for a random 2-10s while playing some music (2) Game Startup Page: the startup page presents 4 buttons: a tutorial button and three game buttons. At the start of the game, only the tutorial button is activated. (3) Tutorial: the tutorial plays (a) Instructions (b) 3 demo scenarios: the scenarios are played in a fixed order Demo1: shows non-cooperative players Demo2: shows an exploitative player Demo3: shows cooperative players After each demo, participants are asked (i) Which player has more slices of pizza (ii) Which player has fewer slices of pizza (iii) Which player has the same amount of pizza participants do not receive accuracy feedback for their choices (c) A practice ('User Interface') Scenario (a game round without actual slices of pizza and actual coplayers) After the practice, the first game button is activated (4) Game #1 -Game #1 starts with a 'fake' module loading page (with music overlay) to simulate finding players etc. -Then the players get introduced -Then the decision page comes up: how many slices of pizza to share at school (this trial is followed by a 'wait' trial with music) -Then the school situation is played out, the slices of pizza divided -At the end of the round, the participant gets feedback of this particular round and an overview of how many slices of pizzas were won during game1 After game #1 is over (4 rounds), the player returns to the startpage and game button 2 is activated (game button#1 is de-activated) (5) Game #2 see Game #1 with new players (6) Game #3 see Game #1 with new players (7) Final Feedback about slices of pizza won by all 7 players An overview page that displays all pizza slices won during each game round (participant always ends up being the second highest winner, the remaining numbers are calculated based on an fixed algorithm - see script 'pizzagame_ranksoverview.iqjs') ___________________________________________________________________________________________________________________ SELFIES: ADDITIONAL INFORMATION ___________________________________________________________________________________________________________________ The original pizza game (Keil et al, 2017) is played with selfies and images for the coplayer. Co-players were originally matched in gender and agegroup. This script provides a rudimentary selfie maker. See settings of parameters.runSelfieTaker in the respective main scripts! ___________________________________________________________________________________________________________________ STIMULI ___________________________________________________________________________________________________________________ provided by Millisecond Software - can be edited under section Editable Stimuli The images were taken from 'https://pixabay.com/' (license: free for commercial use) soundfiles were taken from 'https://www.free-stock-music.com' (license: free for commercial use with attribution) as well as 'https://freesound.org/ (creative commons 0 license) photo images: NIMH-chEFS database Neutral-direct gazes Note: for scripts run with avatar images, the images can be replaced by your own (just keep the original filenames) ___________________________________________________________________________________________________________________ INSTRUCTIONS ___________________________________________________________________________________________________________________ The instructions are based on the original German Pizza game instructions shared by Dr. Jan Keil. The audio files were professionally generated by Millisecond Software. ___________________________________________________________________________________________________________________ EDITABLE CODE ___________________________________________________________________________________________________________________ check below for (relatively) easily editable parameters, stimuli, instructions etc. Keep in mind that you can use this script as a template and therefore always "mess" with the entire code to further customize your experiment. The parameters you can change are: / startPizzaSlices = 9 //the number of start pizza slices / a = 0 //option A of pizza slice sharing / b = 3 //option B of pizza slice sharing / c = 6 //option C of pizza slice sharing / d = 9 //option D of pizza slice sharing (setting of parameters.selfieTaker are set in respective main scripts)