1. Usaré el encoder del numpad (USB HID)

La mayoría de teclados/numpads sondean a 125 Hz (cada ~8 ms). Si dos jugadores presionan dentro del mismo intervalo de 8 ms, el dispositivo reporta ambos “al mismo tiempo” y el orden puede ser arbitrario.

2. pulsadores a GPIO

  • GPIO con pulsadores + diodos o un encoder USB arcade (NKRO).

  • Ventaja: cero latencia (1–3 ms) y evita ghosting, a costa de más cableado.

  • Usa gpiozero o RPi.GPIO, con pull-ups internos (o resistencias) y antirrebote (debounce).

  • Si vas a superar 8–10 botones, considera un MCP23017 (expansor I²C)

Librerías

  • Recomiendo: Pygame o Pygame Zero (eventos de teclado)

Pygame ya te da el orden en que llegaron los eventos, suficiente para la mayoría de juegos.

  1. evdev

Con python-evdev puedes leer directamente /dev/input/event* del numpad y evitar que el sistema “escriba” dígitos en otras apps. El paquete evdev está diseñado específicamente para Linux.