Multiple Controller Support [SYNTH-151] - #1436
Conversation
fixed an error in inputsystemtest
[SYNTH-151]
AlexD717
left a comment
There was a problem hiding this comment.
While the core functionality is now implemented, I feel like the UI can still be significantly improved.
Having the toggle in the Configure -> Inputs panel is good, but there should also be one in the Spawn Asset panel, alongside the input selection.
Additionally, instead of a simple dropdown, we should use a separate panel or modal to select and easily identify controllers. For example, it could highlight the controller when an input is received. With the current dropdown, I can't tell Controller 1 from Controller 2 without testing them, a problem that gets much worse if you scale up to 6 controllers.
Finally, with the current input selection, if I spawn a robot and assign it the "Jax" input layout (or any other controller layout), it flags an interference, assuming someone else is already using it. As a result, I can't assign that same "Jax" layout to a second controller.
|
(I don't have any controllers to test with) |
rutmanz
left a comment
There was a problem hiding this comment.
Two robots with same scheme on different controllers should probably have different names
If you can call them something other than controller 1 and controller 2 (like maybe more specifically with the name descriptor of possible)
—-
It looks like it only detects controllers after they give an input, is there a way to query them without this? (other joystick tester sites do this)

Task
SYNTH-151
Allow multiple gamepads to each control individual robots
Symptom
Situation: User wants to simulate full FRC match (six robots) on one computer, not online multiplayer. They discover that Synthesis has a limit of one gamepad, which can only control one robot (theoretically more robots but would be poor ux). They also find that the alternative, having five robots controlled on one keyboard, is infeasible. With this new feature, a computer like a large gaming laptop to a PC with sufficient ports could allow for six controllers.
Solution
Reworked
InputandInputSystem's gamepad support to have an array of gamepads that acceptsplayerSlotss. Additionally updated all used gamepad methods to accept a playerSlot. UpdateddefaultInputsto also have a playerSlot parameter, and implemented custom scheme logic. In theEditInputInterface, add a simple dropdown for a user to customize gamepad slot, as well as syncing logic. TouchedInputSystemTestas it was throwing an error.Verification
Note
I have one gamepad to lend to testers, and can find one more, so you don't necessarily need a gamepad of your own to test.
Before merging, ensure the following criteria are met: