Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 27, 2025
Last Modified: January 15, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements a 'shooting' task similar to the one described by Wu et al (2024). 'Shooting' tasks can be used to train and measure people's precision and speed in selecting targets on screen with a computer mouse. This 'shooting' game uses static targets (aka 'nonmoving' targets) only. The number of presented targets is fixed.
The default setting of the game uses proportional screens, however, the game setup can easily be changed to absolute screen measurements under section 'Defaults'.
Wu, S.-H., Chen, Y.-C., Chen, C.-H., Liu, H.-S., Liu, Z.-X., & Chiu, C.-H. (2024). Caffeine supplementation improves the cognitive abilities and shooting performance of elite e-sports players: a crossover trial. Scientific Reports, 14(1), Article 2074. https://doi.org/10.1038/s41598-024-52599-y
2.5 minutes
Participants see a number of static targets (max: 6) in a specific target area on the screen. They are asked to click on the targets as fast as possible with their left computer mouse button and hit as many as possible within a certain time frame (e.g. 2 seconds). Once a target is hit, it disappears. Each round is over once all targets are hit OR the timelimit has been reached. In the default game setup, participants play 20 sets (= rounds) with 3 targets per set (= a total of 60 targets).
Researchers can select the size of the target placement area, the size of the targets, the number of targets on screen (up to 6), the number of sets to play, and the duration for each set. In addition, the game can be played with an optional practice session. Check section Editable Parameters for more editable design settings.
The default setting of the game uses proportional screens, however, the game setup can easily be changed to absolute screen measurements under section 'Defaults'.
(1) Intro
(2) Practice (Optional, see section 'Editable Parameters')
- default number of sets is 5
- default timeLimit is 2s (same as for the test)
- same set up as during the test trials (with the addition of the word 'Practice' on screen)
(3) Test
Default set up:
- 20 sets; each set gets a maximum of 2seconds
- 3 targets on screen, once a target is hit it gets removed
provided by Millisecond
The room image was downloaded from https://pixabay.com/
and edited in such a way to result in three images with different target area sizes:
1) 'room3.png' (800px x 600px) was enlarged to be a (1200px x 900px) images and then cut down again to (800px x 600px) -> room2.png
2) 'room2.png' (800px x 600px) was enlarged to be a (1200px x 900px) images and then cut down again to (800px x 600px) -> room1.png
provided by Millisecond - can be edited in script 'shootingtask_wu_instructions_inc.iqjs'
File Name: shootingtask_wu_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| display.refreshRate | The refreshrate of the current display (in Hz) |
| startdate | Date script was run |
| starttime | Time script was started |
| subjectid | Assigned subject id number |
| groupid | Assigned group id number |
| sessionid | Assigned session id number |
| elapsedtime | Time it took to run script (in ms); measured from onset to offset of script |
| completed | 0 = Test was not completed 1 = Test was completed |
Parameter Values |
|
| nrTestSets | Number of test rounds to run |
| nrTargetsInSet | Number of targets presented in each set |
| timeoutTest | Timeout (in ms) for each round |
| targetAreaSize | The selected targetAreaSize (1=biggest; 2=medium; 3=smallest) |
| runPracticeSession | 1 = practice session is run; 0 = no practice session |
| setCounter | Number of sets run |
| overallHitCount | The number of successful hits |
| overallAttempts | The number of clicks on the screen (number of 'hit' attempts) |
| overallHitRate | Number of hits relative to all presented targets |
| overallHitPrecision | The number of hits relative to all hit attempts |
| overallHitRT | Mean hit response time (in ms) calculated as: the mean of all individual hit response times Example: overallHitRT = 660 => on average, participants needed 660ms to score a hit within each block |
| overallMeanSetDuration | Mean duration (in ms) of a set |
File Name: shootingtask_wu_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| display.refreshRate | The refreshrate of the current display (in Hz) |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
Parameter Values |
|
| nrTestSets | Number of test rounds to run |
| nrTargetsInSet | Number of targets presented in each set |
| timeoutTest | Timeout (in ms) for each round |
| targetAreaSize | The selected targetAreaSize (1=biggest; 2=medium; 3=smallest) |
| runPracticeSession | 1 = practice session is run; 0 = no practice session |
| blockcode | The name the current block (built-in Inquisit variable) |
| blocknum | The number of the current block (built-in Inquisit variable) |
| trialcode | The name of the currently recorded trial (built-in Inquisit variable) |
| trialnum | The number of the currently recorded trial (built-in Inquisit variable) trialnum is a built-in Inquisit variable; it counts all trials run even those that do not store data to the data file. |
| practice | 1 = practice round 0 = test round |
| setCounter | The current round (resets after practice) |
| attemptsPerSet | Number of attempted hits in the current round |
| hitsPerSet | Number of hits in the current round |
| response | The response of participant (selected area) |
| resp | "hit", "miss", "TO" (=timeout) |
| correct | Correctness of response (1 = correct (hit), 0 = error) |
| latency | Response latency (in ms); measured from: onset of trial |
| lastHitRT | The response time (in ms) of the last hit first hit: measured from onset of set subsequent hits: measured from previous hit |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Color Parameter |
||
| canvasColor | Display color of the actively used portion of the screen (the 'canvas') if set to a color other than the screenColor, you can distinguish the active canvas from the inactive portion of the screen | black |
| screenColor | Color of the screen not used by the canvas ('inactive screen') | black |
| defaultTextColor | Default color of text items | black |
Difficulty: Combination Of Targetwidthpct And Roompic |
||
| targetWidthPct | The size of the targets relative to the selected targetAreaSize targetArea1: ~75% of the width of the canvas => 4%*75%*canvasWidth targetArea2: ~50% of the width of the canvas => 4%*75%*canvasWidth targetArea3: ~35% of the width of the canvas => 4%*75%*canvasWidth the bigger the size of the targets, the easier it'll be to hit them | 4% |
Design |
||
| targetAreaSize | 1 = 'macroshooting' (room1.png => 'closer to shooting area'); ~75% of the width of the canvas 2 = medium (room2.png); ~50% of the width of the canvas 3 = 'microshooting' (room3.png => 'farthest from shooting area'); ~35% of the width of the canvas | 1 |
| nrTestSets | The number of target sets provided | 20 |
| nrTargetsInSet | The number of targets in a set (Range: 1-6) | 3 |
| showTimer | True: a timer is presented on screen during the duration of each game block false: no timer is presented to participants | true |
| provideFinalFeedback | True: performance feedback is provided after the game is over false: performance feedback is not provided after the game is over | true |
Optional Practice Session |
||
| runPracticeSession | True: a practice session precedes the test session false: no practice session is run | true |
| nrPracticeSets | Number of practice sets to play (if any) | 5 |
Timing Parameters |
||
| timeoutTest | The time (in ms) participants have to hit as many targets as possible during each test set | 2000 |
| timeoutPractice | The time (in ms) participants have to hit as many targets as possible during each practice set | 2000 |
| startDelayMS | The delay (in ms) with which the targets appear once the set has started | 500 |