NIL is a gaming input library, currently for Windows only, inspired by the Open Input System.
Supported platforms are Windows Vista and newer. XP is not supported.
NIL is written in C++11, and by default builds as a statically linked x64 library under Visual Studio 2012.
NIL uses certain APIs from the Windows Driver Kit, so the WDK is required for building NIL.
NIL utilises three different input APIs to achieve best possible input from different types of devices:
- Raw Input API for all mice & keyboard input, with zero lag and no special key weirdness
- XInput API for XBOX 360 controller input
- DirectInput API for all other joysticks & gamepads
NIL can tell apart every input device connected to the computer, including keyboards and mice.
Multi-keyboard and multi-mice input support is, for once, a breeze.
NIL is fully based on Plug-and-Play support: It knows when devices are connected and disconnected
from the computer, and remembers previously-connected devices when reconnected.
Additionally, NIL is capable of receiving direct input from the G-keys of certain Logitech Gaming keyboards & mice.
NIL is single-threaded, buffered and fully listener-based.
- Force feedback support.
See the PITFALLS.md file for information on some potential implementation pitfalls.
NIL is licensed under the MIT license.
For full license text, see the LICENSE file.
Logitech SDKs under the external folder are property of Logitech.
See the Logitech SDK documentation files for licensing specifics.