Shooting Task - Rogers et al.

Technical Manual

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

Background

This script implements a 'shooting' task similar to the one described by Rogers et al (2024A). '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 overall time of the task is time-limited with a variable number of targets (depends on performance)

The default setting of the game uses proportional screens, however, the game setup can easily be changed to absolute screen measurements under section 'Defaults'.

References

Rogers EJ, Trotter MG, Johnson D, Desbrow B and King N (2024A). Caffeine improves the shooting performance and reaction time of first-person shooter esports players: a dose-response study. Front. Sports Act. Living 6:1437700. doi: 10.3389/fspor.2024.1437700

Rogers EJ, Trotter MG, Johnson D, Desbrow B and King N (2024B). KovaaK’s aim trainer as a reliable metrics platform for assessing shooting proficiency in esports players: a pilot study. Front. Sports Act. Living 6:1309991. doi: 10.3389/fspor.2024.1309991

KovaaK’s shooting tasks: https://store.steampowered.com/

Duration

2 minutes

Description

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. 1 minute). In the default game setup, the hit target immediately reappears in a new location, so that the number of targets are always constant. In a variant, the targets only reappear once all targets have been successfully hit.

Researchers can select the size of the target placement area, the size of the targets, the number of targets on screen (up to 6), whether targets immediately reappear, the number of rounds to play, and the duration of each game round. 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'.

Procedure

(1) Intro

(2) Practice (Optional, see section 'Editable Parameters')
- default timing is 30s
- same set up as during the test trials (with the addition of the word 'Practice' on screen)

(3) Test
Default set up:
- 1 round for 1 minute
- 6 targets on screen, targets reappear immediately

the targets appear 500ms after the participants mouse cursor gets dropped off within the target placement
area (this happens as the the start button that needs to be pressed is located within that area)

Stimuli

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

Instructions

provided by Millisecond - can be edited in script 'shootingtask_rogers_instructions_inc.iqjs'

Summary Data

File Name: shootingtask_rogers_summary*.iqdat

Data Fields

NameDescription
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
parameters.numberOfRounds Number of test rounds to run
parameters.roundTimeoutMS Timeout (in ms) for each round
parameters.targetAreaSize The selected targetAreaSize (1=biggest; 2=medium; 3=smallest)
overallAttempts The number of clicks on the screen (number of 'hit' attempts)
overallHitCount The number of successful hits
overallHitRate The overall hitRate
score The final score = overallHitCount*overallHitRate (see Rogers et al, 2024A, p.4)
overallRT Mean response time across hits and misses
calculated as: complete testDuration in ms/overallAttempts
Example: overallRT = 550ms => on average a click response was made roughly every 550ms across the entire test.
overallHitRT Mean hit response time
calculated as: [complete testDuration in ms]/overallHitCount
Example: overallHitRT = 850ms => on average a hit response was made roughly every 850ms across the entire test.

Raw Data

File Name: shootingtask_rogers_raw*.iqdat

Data Fields

NameDescription
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
parameters.numberOfRounds Number of test rounds to run
parameters.roundTimeoutMS Timeout (in ms) for each round
parameters.targetAreaSize The selected targetAreaSize (1=biggest; 2=medium; 3=smallest)
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.
roundCounter The current round
attemptsPerRound Number of attempted hits in the current round
hitsPerRound 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
respTimestamp The timestamp of the current response (in ms) relative to the onset of the script

Parameters

The procedure can be adjusted by setting the following parameters.

NameDescriptionDefault
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 itemsblack
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
numberOfRounds The number of game rounds to be played1
nrTargetsOnScreen The number of targets on screen (Range: 1-6)6
eraseTargetsAfterHit True: the targets get erased after a hit and only reappear as a group once all targets have been eliminated
false: each target that is hit, immediately reappears in a random location on the screen
false
showTimer True: a timer is presented on screen during the duration of each game block
false: no timer is presented to participants
true
showOngoingHitStats True: the hitting stats (number of hits as well as hitIntervals) are presented to participants during the game
false: no hitting stats are presented during the game
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 game rounds
false: no practice session is run
true
Timing Parameters
roundTimeoutMS The time (in ms) participants have to hit as many targets as possible during each game round10000
practiceTimeoutMS The time (in ms) participants have to hit as many targets as possible during the practice round10000