nfengine
nfengine copied to clipboard
Design and implement input subsystem
The system should detect and access all avialable input devices like:
- mouse
- keyboard
- gamepad/joystick
- VR devices (Oculus Rift HMD system, Vive/Touch controller system, etc.)
The API will be exposed for the user, so it must be well documented. Adding a new device (or device type) should't require serious changes. So the input messages should be very generic, for example:
- mouse movement - 2d int
- gamepad analog stick - 2d float
- Vive/Touch position - 3d float
- etc...
Materials:
- http://www.gamedev.net/page/resources/_/technical/general-programming/asynchronous-keyboard-input-for-fixed-time-step-games-r3959
- https://msdn.microsoft.com/en-us/library/ee418864(v=VS.85).aspx
TODO List (only on Windows; Linux version should come when nfCore is buildable on Linux):
- [ ] Base of Input system in nfCore/Input
- [ ] InputManager base class and backends:
- [ ] Keyboard/mouse
- [ ] Controller (XInput)
- [ ] Event mapping (key to event)
- [ ] Collection of default events (move, rotate camera etc)