Simple keymapping code design question.
Hello,
I've been researching keymapping for the game I am creating, but need some initial direction. I know I don't want to use a simple "when x is pressed" architecture since I want the user to be able to use different input systems (primarily keyboard/controller) and be able to customize keys if they want to. I've already figured out how to code my input, so now I'm just trying to narrow down how I should go about building a new long-term input architecture in terms of objects/extensions for different input systems and key customization. There are a ton of joypad/input objects and control extensions and I simply don't know where to begin. I don't want to invest hours into learning one just to find out it can't do what I need it to do, if it can be avoided.
So for anyone with experience who might have an answer immediately offhand, what objects/extensions would you use in the following scenario?
A platforming game where the user has standard movement (left, right, up, down, jump, hold-jump, crouch) being controlled by a Platform Movement Object, but also has 4 attacks, 8 weapon switches, and a few additional buttons beyond those. I want the user to be able to switch directly to the different weapons when playing on keyboard, but that creates too many buttons for a standard controller so I would need next/previous weapon buttons as well, primarily for controller players. Basically I need a ton of buttons. I need to be able to at least set what the default buttons would be for the keyboard, and if possible also allow the user to customize the buttons (I assume the latter goes with the former anyway).
Mainly I just don't want to end up having to redo my input architecture down the line so I want to make a good choice early on here. Essentially I'm just looking for a lead on what control objects I should start with given this scenario, and I will go research those on my own time. Even if I decide at some point I don't want customizable keys, having it fundamentally built-in already at no processing cost is definitely going to be a good thing if I change my mind again at some point.
Thanks a bunch!
-eido