End-user Setup

From TACWiki
Jump to: navigation, search

Each Minigame has a variety of settings that can be configured individually.

Config

The Config.script file holds general settings. It can be opened with any general text editor, such as Notepad or Vim. Each line ending with a semicolon (;) indicates a command for the game to follow. Lines beginning with two forward slashes (//) are considered comments, and will not be processed. A block comment is a section beginning with (/*) and ending at (*/).

Lab, Home and Debug configurations

The only difference between the lab and the home versions of the game is the config file that is used. The program will automatically use the LabConfig.script file if it exists; otherwise it will use Config.script. To run the program in the lab, simply make certain that the LabConfig.script file is present.

(When the game is being run from within the debugger, a third configuration script, DebugConfig.script, is used.)

These config files will be found in "[Game Install Directory]\Configs\" (Default: "C:\Program Files\Autism Collaborative\Configs\")

See also: Differences in Home vs Lab Configuration


Location

[Installation Directory]\Configs\Config.script (Default: "C:\Program Files\Autism Collaborative\Configs\")

The Global Config.script can be found in the Configs folder under the Autism Collaborative folder -- typically C:\Program Files\Autism Collaborative\Configs\Config.script. This holds global settings that will be applied automatically when the game starts. Individual minigames may have individual configurations specific to those minigames. This individual config file is also called Config.script, and can be found in the Configs folder under the minigame's folder -- typically C:\Program Files\Autism Collaborative\Minigames\[MiniGameName]\Configs\Config.script.

Global

Util.Settings.SetResolution([horizontal],[vertical]);
  • Set the screen resolution this game will be played at, for example, Util.Settings.SetResolution(1024,768);
Util.Settings.FullScreen = [true/false];
  • Set whether the game window will be fullscreen, for example, Util.Settings.FullScreen = true;
Util.Settings.ParallelPortEnabled = [true/false];
  • Set whether codes should be written out the Parallel Port, for example, Util.Settings.ParallelEnabled = true; If not specified, this will default to False.
Util.Settings.ParallelPort = ParallelPort.Port1;
  • Set which Parallel Port codes should be written to, if enabled. Valid values are Port1, Port2, and Port3. Defaults to Port1.
Util.Settings.SetScreenDimensions([Width], [Height], [Distance]);
  • Width is the width of the display, in centimeters. Height is as height of the display, in centimeters. Distance is the distance between the display and the viewer's eyes, in centimeters. For the dot coherence phase of Maritime Defender, the dots are based on the size of the visual display as it appears to the player. For example, Util.Settings.SetScreenDimensions(8.5, 6.25, 24.0);

Maritime Defender

MaritimeDefender.Settings.DotsPerSquareRadian = [Number];
MaritimeDefender.Settings.DotsPerSquareDegree = [Number];
  • For the dot coherence phase, the dots are based on the size of the visual display as it appears to the player. This sets the density of the dots as they appear on the screen. Either measure, radians or degrees, may be used. For example, MaritimeDefender.Settings.DotsPerSquareRadian = 10000.0;
MaritimeDefender.Settings.DotsPerRadian = [Number];
MaritimeDefender.Settings.DotsPerDegree = [Number];
  • Specify the dot density as the number of dots within a circular patch of screen space with a diameter of one radian or degree of visual angle as it appears to the user.
MaritimeDefender.Settings.NumberDots = [Number];
  • Override the above settings, specifying exactly the number of dots that should be drawn on the screen. This setting is optional.
MaritimeDefender.Settings.DotDiameter = System.Math.PI / 1028;
  • Affects the average size of the coherence dots in terms of radians.
MaritimeDefender.Settings.DotSpeed = System.Math.PI / 16;
  • Affects how fast the coherence dots appear to move across the screen in terms of radians per second.
MaritimeDefender.Settings.DotLifeSpan = 4 / 60.0;
  • How long each dot exists on the screen. 4 / 60.0 reflects 4 frames on a 60 hertz display.
MaritimeDefender.Settings.DotRefreshDelay = 1;
  • Additional Delay in seconds between each dot test, for the EEG readings. This is in addition to a random jitter of, by default, between 0 and 150ms; this jitter is controlled by the DotRefreshDelayJitter.
MaritimeDefender.Settings.DotRefreshDelayJitter = 0.15;
  • A random amount of jitter between 0 and [value] seconds will added to the DotRefreshDelay so that the time between two successive coherence trials is not constant. The default is 0.15 of a second, or 150 milliseconds.
MaritimeDefender.Settings.DotResponseWait = 0.5;
  • The duration of time in seconds immediately after a trial with no response in which late responses can be excepted.
MaritimeDefender.Settings.DotTrialLength = 2;
  • The average duration of a dot test trial in seconds.
MaritimeDefender.Settings.SetPhaseQueue(2, "IdentityTest, 1, Shooter, 3, DotTest, 140, Shooter, 3, DotTest, 140, Shooter, 3, DotTest, 140, Shooter, 1, Boss, 0");
  • The game phases for Maritime Defender. A list of pairs, a name and a value. Currently, the Game must start with an IdentityTest phase. The Shooter value is how many wormholes must be opened and ships identified in order to move on to the next Phase. The DotTest value is how many dot trials will take place during that phase, where a trial may be a motion of dots, or an absence of motion.
MaritimeDefender.Settings.HaveNonCoherentTrials = false;
  • Whether NonCoherentTrials should be included. If false, there will be coherent motion to the left or right for every trial.

Stellar Prospector

StellarProspector.Settings.StimulusWaitMax = 1500f;
  • The maximum amount of time in milliseconds before a stimulus must appear after the offset of the previous stimulus.
StellarProspector.Settings.StimulusWaitMin = 500f;
  • The minimum amount of time in milliseconds before a stimulus can appear after the offset of the previous stimulus.
StellarProspector.Settings.DistractorWaitMax = 10000f;
  • The maximum amount of time in milliseconds before a distractor must appear after the offset of the previous distractor.
StellarProspector.Settings.DistractorWaitMin = 2000f;
  • The minimum amount of time in milliseconds before a distractor can appear after the offset of the previous distractor.
StellarProspector.Settings.DistractorLifeMax = 10000f;
  • The maximum amount of time in milliseconds that a distractor can live for after it has been created.
StellarProspector.Settings.DistractorLifeMin = 2000f;
  • The minimum amount of time in milliseconds that a distactor must live for after it has been created.
StellarProspector.Settings.StimulusLifeMax = 6000f;
  • The maximum time in milliseconds that a stimulus can be displayed.
StellarProspector.Settings.StimuliPerCueMin = 1;
  • The minimum number of stimuli that must appear before the cued sector can change.
StellarProspector.Settings.StimuliPerCueMax = 1;
  • The maximum number of stimuli that can appear before the cued sector must change.
StellarProspector.Settings.MaxProgress = 100;
  • The amount of progress needed to completely finish the game. This is in arbitrary units.
StellarProspector.Settings.PeripheralProgress = 5;
  • The maximum amount of progress the player can receive from correctly responding to peripheral stimuli. In the same arbitrary units as max progress.
StellarProspector.Settings.ProgressLostPerMiss = 1;
  • The amount of progress lost anytime an incorrect response is given
StellarProspector.Settings.CentralStimulusProgressDrain = 1;
  • Amount of progress drained every 2 seconds during a central stimulus
StellarProspector.Settings.UseFlickering = true;
  • Determines whether or not to use flickering
StellarProspector.Settings.AutoCalculateFlickering = true;
  • Whether the frames on/off and intensities of the flickering effect are automatically calculated by the frequency or are just taken from the manually set values.
StellarProspector.Settings.CenterHertz = 6.67;
  • The rate at which the center sector flickers per second
StellarProspector.Settings.CenterOnFrames = 4;
  • How many frames (out of 60 frames per second) in a row does the center sector remain flickered on
StellarProspector.Settings.CenterOffFrames = 5;
  • How many frames (out of 60 frames per second) in a row does the center sector remain flickered off
StellarProspector.Settings.CenterIntensity = 1.25;
  • The percentage of intensity of the center sector when it is flickered on. 1.0 denotes 100% intensity.
StellarProspector.Settings.Sector1Hertz = 8.57;
  • The rate at which sector one flickers per second
StellarProspector.Settings.Sector1OnFrames = 3;
  • How many frames (out of 60 frames per second) in a row does sector one remain flickered on
StellarProspector.Settings.Sector1OffFrames = 4;
  • How many frames (out of 60 frames per second) in a row does sector one remain flickered off
StellarProspector.Settings.Sector1Intensity = 1.33;
  • The percentage of intensity of sector one when it is flickered on. 1.0 denotes 100% intensity.
StellarProspector.Settings.Sector2Hertz = 10;
  • The rate at which sector two flickers per second
StellarProspector.Settings.Sector2OnFrames = 3;
  • How many frames (out of 60 frames per second) in a row does sector two remain flickered on
StellarProspector.Settings.Sector2OffFrames = 3;
  • How many frames (out of 60 frames per second) in a row does sector two remain flickered off
StellarProspector.Settings.Sector2Intensity = 1.0;
  • The percentage of intensity of sector two when it is flickered on. 1.0 denotes 100% intensity.
StellarProspector.Settings.Sector3Hertz = 12;
  • The rate at which sector three flickers per second
StellarProspector.Settings.Sector3OnFrames = 2;
  • How many frames (out of 60 frames per second) in a row does sector three remain flickered on
StellarProspector.Settings.Sector3OffFrames = 3;
  • How many frames (out of 60 frames per second) in a row does sector three remain flickered off
StellarProspector.Settings.Sector3Intensity = 1.5;
  • The percentage of intensity of sector three when it is flickered on. 1.0 denotes 100% intensity.
StellarProspector.Settings.Sector4Hertz = 15;
  • The rate at which sector four flickers per second
StellarProspector.Settings.Sector4OnFrames = 2;
  • How many frames (out of 60 frames per second) in a row does sector four remain flickered on
StellarProspector.Settings.Sector4OffFrames = 2;
  • How many frames (out of 60 frames per second) in a row does sector four remain flickered off
StellarProspector.Settings.Sector4Intensity = 1.0;
  • The percentage of intensity of sector four when it is flickered on. 1.0 denotes 100% intensity.


Audio Stimuli Experiment

Tones will played at intervals based on the sound delay (AS_SOUND_DELAY) and max jitter (AS_MAX_JITTER) as specified in the config file, in floating-point units of seconds. The stimulus onset asynchrony between tones is calculated by adding AS_SOUND_DELAY to a random number in the range of 0 to AS_MAX_JITTER. The tone is the same each time, but the volume is chosen at random from the volumes specifiend in the config file.

Volumes are in arbitrary units on a linear (not dB) scale between 0 and 1.0. Experimenters should calibrate these units using a sound level meter to measure actual volumes in dB SPL produced by their sound card and speaker system, and modify AS_VOLUME1, AS_VOLUME2, AS_VOLUME3 and AS_VOLUME4 so that they produce the desired levels.

Each time a tone is played, an event is written to the log. See the next section for all possible event codes and formats.


Event Codes

AS_START

AS_TONE_PLAYED Volume=[volume] Tone=[tone # refers to the number n in the AS_VOLUMEn parameter]

AS_END


Config File Format

AS_SOUND_DELAY = [stimulus onset asynchrony, in seconds]

AS_MAX_JITTER = [maximum range of random jitter added AS_SOUND_DELAY]

AS_MAX_PLAYS = [total number of times that each tones is played]

AS_VOLUME1 = [volume]

AS_VOLUME2 = [volume]

AS_VOLUME3 = [volume]

AS_VOLUME4 = [volume]

AS_SOUND = [80dBl_Right or 80dBlLeft]

Important Notes:

- All spaces in the config file are necessary for the program to parse

- Make sure there is no white space after the final line

- all volumes must be expressed in double format (must include decimal, ex. 1.0 is correct, 1 is not)

Keyboard Configuration

Keyboard bindings are stored in a separate file, also specific to each minigame. For example, the keyboard bindings for the ColonySim could be found at [Installation Directory]\testkeybindings.txt (Default: "C:\Program Files\Autism Collaborative\testkeybindings.txt"). It is stored as a list of in-game events, each followed by the action that triggers it.

Quit			Escape
  • Trigger the Quit event when Escape is pressed.
PlaceBuilding		Left			mouse
  • Trigger the PlaceBuilding event when the Left Mouse Button is pressed.
ZoomInStop		OemPlus			released
  • Trigger the ZoomInStop event when the Plus Key is released.

Logging

The current default path for the log file is in the Application Data folder. The exact location will vary depending on the operating system installed.

Vista: C:\Users\[WindowsLoginName]\Documents\Roaming\Autism Collaborative\

XP: C:\Documents and Settings\[WindowsLoginName]\My Documents\Autism Collaborative\

Although it may seem natural to look in the "LogFiles" directory, the user-specific log file containing each individual's log data is instead found in each individual user's subdirectory within the "Users" directory:

Users\[AstropolisUserName]\LogFiles\ExperimentLog.txt

The documentation for the building placement log for the Colony Simulation can be found here -> Building_Placement_Log_Specification.

If the computer has a parallel port, the 8-bit numeric event codes in the log file are also placed on the parallel port as 5ms pulses (bounded by 5ms of zeroes on all eight data lines). Codes then can be read from a physiological or behavioural data recorder such as an EEG recorder, an MRI scanner, or a gaze tracker, and the full record from the log file can be synchronised to the event-code sequence in the data recorder, allowing examination of physiological or behavioural events as a function of stimuli and responses that occur during game play. The parallel port is used in compatibility mode only; enhanced mode is not used.