1 of 20

EvLag – A Tool for Monitoring and Lagging Linux Input Devices

Shengmei Liu

and

Mark Claypool

2 of 20

Introduction

  • Latency degrades interactivity
  • Particularly for games
    • Highly interactive
    • Player performance matters
  • Techniques to mitigate (latency compensation)
    • But need more studies of latency on games and game actions

[Call of Duty, Activision, 2003]

[League of Legends, Riot Games, 2009]

3 of 20

Introduction

  • Typically, via user study
    • Add latency
    • Play game
    • Measure perf, QoE
    • Repeat

  • Must add lag to game
    • Limits games (open source)
    • Re-implement code (bugs)

4 of 20

Introduction

EvLag

  • Sits outside game, so can use with close source (commercial)
  • Latency to any Linux input device
  • Also logging of input events

This paper 🡪 features, implementation, evaluation, example use

EvLag

5 of 20

Outline

  • Introduction (done)
  • Related Work (next)
  • Implementation
  • Evaluation
  • Use
  • Conclusion

6 of 20

Related Work

  • Network latency tools
    • Networking: dummynet [4], Clumsy [31], MahiMahi [18], netem [32]
    • Can be used for network latency, but not local latency
  • Local latency studies
    • [7, 8, 13, 16, 17, 20, 21, 29]
    • cloud-based game systems [26, 30]
    • All use same technique – modify small game/app with latency
  • Measuring local latency
    • Camera, sensors [13, 24, 27, 33]
    • We use to verify EvLag works

7 of 20

EvLag – Overview

Features

    • Fixed latency to any input device
    • Lag multiple devices at once (e.g., keyboard and mouse)
    • Log input events, one file per device

Implementation

    • Linux evdev
      • Generalize raw input as character devices
      • /dev/input
    • Three threads
      • Reader, Writer – handle events
      • Main – setup, handles timers

8 of 20

EvLag – Implementation

Reader

Writer

9 of 20

EvLag – Implementation

Main

10 of 20

EvLag – Usage

Example:

11 of 20

EvLag – Utilities

EvParse – parse EvLag log files

EvDetect – automatically find device given string

12 of 20

Outline

  • Introduction (done)
  • Related Work (done)
  • Implementation (done)
  • Evaluation (next)
  • Use
  • Conclusion

13 of 20

Evaluation – Measuring �Local Latency

14 of 20

Evaluation – Results

15 of 20

EvLag – Example Study

  • User study,

43 participants

Shengmei Liu, Atsuo Kuwahara, James Scovell, Jamie Sherman, and Mark Claypool. “Lower is Better? The Effects of Local Latencies on Competitive First-Person Shooter Game Players”, In Proceedings of the ACM Conference on Human Factors in Computing Systems (CHI), Virtual Conference, May 8-13, 2021. Online at: http://www.cs.wpi.edu/~claypool/papers/csgo-lag-21/

0

100

200

300

(ms)

Gaming system

Normal PCs

Consoles, TV, etc.

25

EvLag

16 of 20

EvLag – Example Study

17 of 20

EvLag – Demo

18 of 20

Summary

  • Understanding latency helpful for designs and techniques to compensate
  • User studies must modify code, limiting use of commercial games
  • EvLag – adds latency to input devices in Linux
    • Can be used for any application
    • Also logs input

Download:

apt package:

https://web.cs.wpi.edu/~claypool/papers/evlag/install.html

git repo:

https://claypool@bitbucket.org/claypool/evlag.git

19 of 20

Future Work

  • Additional features
    • Enhanced parsing of logs (game controllers)
    • Different lag for each device
  • Additional studies of latency
    • Games, game actions, input devices
  • Similar tools for other platforms
    • Windows, Mac, Android, iOS

20 of 20

EvLag – A Tool for Monitoring and Lagging Linux Input Devices

Shengmei Liu

and

Mark Claypool

Thank-you for your attention!