Original Post
Hello again smart citizens of gamedev.net! I'm finally making my own multi-purpose game engine, and I tend to keep it cross-platform as much as possible (without having to relay on libraries on SDL). I'm currently at the phase of handling inputs on my engine and I've been trying to think of a good way to implement some sort of an input manager on my engine. What I want my input manager to do is to handle all input devices (keyboard, mouse, joysticks/gamepads) and simply recognize these input signals and translate these signals into standardized engine input signals. Also, I would like my engine to handle inputs received such that it will do the actions that correspond to a "MoveMap", a map that contains the mapping of the input signals to the appropriate action/function to be executed, that are stored as a stack. What would be the best strategy on designing an input manager such as this without making the dependencies so cluttered? In OOP-speak, which would be best inherited from, and/or abstracted from? I am also having a problem generalizing the point of entry of inputs such as Windows for mouse and keyboard inputs (the former uses windows mouse events, and latter uses GetAsyncKeyState() ).