Status Quo Prestudy (2018-11-27)

Tagged as: blog,
Group: C In order to explore the influence of latency and latency variance on performance and user experience, a simple prototype setup including a small game and a HID was developed.

In order to be able to estimate, how the latency characteristics may influence performance and user experience, a simple prototype setup for a prestudy has been developed. The current state of this study and the implementation of the necessary artifacts is described below.

Designing a Prestudy

In order to design a pre study, a ‘prepre-study’ will be conducted with five to ten persons. In this study, we test a few parameters, as speed and density of the obstacles the dino has to jump over, the latency and the variance. We want to find out how long the average play duration is, so we can adapt the parameters at the best for the pre study. Since our pre study will take part at the World Usability Day in the Techbase (05.12.2018), it makes sense to keep the testing time as short as possible (5 > minutes).

Developing a custom HID

In order to produce reliable results and allow the manipulation of the desired latency parameters, a custom human interface device was developed. The device should be minimalistic, in order to focus the test person on the task and prevent confusion, behave and react like a real world interface device to retain external validity, provide a low base latency and variance, while allowing the free manipulation of those latency characteristics of the device. The device was implemented using an Arduino Micro Pro Microcontroller, which features a library for HID-functionalities like emulating mouses and keyboards (https://www.arduino.cc/en/Reference/HID). The board was connected to a single button, which matches the mechanic characteristics of the keys of a consumer level keyboard. The button was fit inside a housing matching the height dimensions of a consumer level keyboard, in order to provide a hand posture similar to the usage of a usual keyboard. The firmware of the microcontroller fires a delayed ‘key-pressed’ event for the space key to a connected computer, when the button is triggered. The latency behavior was implemented using a constantly scanned, non-blocking ‘future event’ queue containing the timestamps, at which the delayed events should be triggered. The latency between the timestamp for the recognition of button press and the target timestamp is generated by a latency generator producing normally distributed latency values, that are configurable through average latency and related standard deviation via a custom serial interface. After the implementation of the firmware, the LagBox measuring kit (Bockes et al., 2018) has been used to measure the base latency of the device. An average latency of 2.11ms with a standard deviation of 0.45ms has been measured, which performs very similarly to the best performing device measured in the LagBox study (Bockes et al., 2018). Finally, a node-based express.js-web service (https://expressjs.com/de/) has been implemented, allowing a standardized interface to set latency characteristics and control experiment logging from within applications or an experiment-controller’s pc.

Developing a training game

Some kind of software is needed to conduct latency experiments with the Human Interface Device. To make it more interesting for test subjects, the decision has been made to make a little game. There are several requirements for the game that need to be fulfilled. It needs to be playable only with our single Input button. It needs to have some kind of a highscore to reliably measure user performance. The difficulty needs to be variable. It needs to be easy to play and not need much of an explanation for new players. It also needs to be able to run on an raspberry pi and therefore be compatible with the lagbox (Bockes et al., 2018). While discussing possible game ideas with Andreas Schmid, we choose the Google Chrome Dinosaur game, an Easter Egg in the browser that only appears when there is no internet connection (https://www.blog.google/products/chrome/chrome-dino/). The game is an endless runner and fulfills most of the criteria listed above. But since we need more control over the game, like predefining level layouts and logging data like timestamps and highscores, it has been decided to reprogram the game in python, using the pygame library (https://www.pygame.org/news). The final implementation is capable of all features needed to conduct the pre-study.

(More detailed Information on the pre study components will follow up in future blog posts)