PadPoll

Icono de PadPoll.
Una interfaz de línea de comandos mostrando métricas de rendimiento de un mando de videojuego.

PadPoll es una herramienta multiplataforma para medir la frecuencia de sondeo de los mandos de videojuegos en Windows y Linux, la cual utiliza APIs de bajo nivel ofrecidos por los sistemas operativos para obtener los datos de entrada de los dispositivos y calcular las métricas que son mostradas al usuario mediante una aplicación de consola.

Tecnologías Usadas

  • Logo característico de Dotnet.

    .NET 10

    Utilizado para construir la aplicación de consola.

  • Logo característico de Csharp.

    C#

    Lenguaje de desarrollo utilizado con .NET.

Características

  • Uso de APIs de Bajo Nivel

    Emplea 'GameInput' en Windows y 'evdev' en Linux para obtener la entrada de los mandos.

  • Compilación Nativa

    Usa NativeAOT para compilar a un binario portable y de alto rendimiento.

Plataformas Soportadas

  • Mascota oficial del sistema operativo Linux llamada Tux.

    Linux

  • Logo característico del sistema operativo Windows.

    Windows 10

  • Logo característico del sistema operativo Windows

    Windows 11

Objetivo

Ofrecer una herramienta de código abierto nativa, portable y eficiente que compruebe de forma efectiva el rendimiento de mandos de videojuegos en Windows y Linux mostrando métricas confiables que reflejen la experiencia de juego.

Desafíos

  • GameInput API de Windows

    Situación

    La implementación de GameInput en Windows fue compleja debido a su diseño nativo para C++. La integración mediante P/Invoke e interfaces COM resultó difícil por la ambigüedad y discrepancias entre versiones en la documentación oficial.

    Solución

    Aunque GameInputNet ofrecía una solución, era incompatible con NativeAOT. Por ello, se utilizo dicha librería como referencia técnica para desarrollar una integración propia, minimalista y optimizada, garantizando el máximo rendimiento en PadPoll.