Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
135 stars 2 forks source link

"'Advanced' General Controller" Node #1247

Open amplified1 opened 8 months ago

amplified1 commented 8 months ago

Is your feature request related to a problem? Please describe.

The general controller node makes it much easier to make things that will function for anybody, regardless of the device they are using, but it has a problem, it is held back by the vive wands as the least complex input device, which stand alone in their extremely low selection of buttons, so if you want to make an item that uses more than just primary, secondary, and the basic joystick or touchpad input, then you have to manually add support for every other controller the game supports, the biggest issue here is that too many people simply don't. The amount of items I have seen that only properly support index controllers for no good reason is unfortunate.

Describe the solution you'd like

My proposal is that a secondary general controller node is added that instead uses the touch controller and the many controllers from other companies that take direct inspiration from it for the baseline inputs. That being a joystick (or touchpad, a decision would have to be made for behavior with the index controllers), analogue grip and trigger, and 2 face buttons.

This would simplify the process of supporting everyone by allowing the creator to only check for two input methods instead of like 5(?), giving a cut-down version to people still on vive wands, but there's not much you can do about that, but giving everyone else on more sophisticated controllers a better experience. And even if a creator only decides to put in the effort to use one controller node, it brings the supported control schemes from whatever the creator was using, to everyone except vive wand users, which is unfortunate, but sometimes you just can't support it without compromising functionality.

Describe alternatives you've considered

The original general controller node could get upgraded to have more inputs, but this is not ideal as it would break things and also mean that it would be even less likely for vive wand users to have the ability to use community made items.

A more generic control system like the keyboard input nodes but for individual buttons that are consistent across multiple controllers could also maybe work, but idk, that's just a random thing that popped into my head while writing up this issue.

Additional Context

Obviously part of the problem I am trying to solve is more of a social problem than a problem with the game, but I think it's worth looking into game implementations that can mitigate social problems.

This also would not fully solve the problem as many people make items that only support an arbitrary controller even when a general controller node would suffice, but I hope at least for some, the added convenience would encourage them to support a bit more than their native controllers, and save time for people that already do put in the effort.

Frooxius commented 8 months ago

I don't quite see how would this work in practice. The whole point of the standard set of inputs is that it's a common subset that can map to any controllers.

Making a version that cannot map to common subset, but tries to be one that does - how would you map things to generalized inputs?

Say we use the Touch controller for baseline inputs - now that will only mostly work with Touch controllers, because others won't really map to this well. Or we use Index as baseline, now other controllers don't really map and work with this.

You essentially end up with two situations:

I don't think this is a good solution for this kind of problem.

Generally what my goal was to introduce at some point is a customizable binding system - so you define your own "binding actions" in-game for given item and then you can provide a set of bindings for some common controllers (including general one). The binding can define optional inputs as well, that some controllers won't have mappings to.

With this item, users would be able to contribute their own bindings for it to cover for extra controllers that users can't.

If you'd still want some sort of extended standard controller, I'd suggest proposing the set of inputs and how it would map to a number of common controllers out there for us to consider it.

amplified1 commented 8 months ago

I did propose a set of inputs, but an improved input mapping system as described by you sounds like a much better solution

Frooxius commented 8 months ago

I don't see a formal mapping of proposed set of inputs and how they would map to a number of different controllers in the post.

There is only a vague mention of potential inputs, but no mappings. That's too vague for us to work with and evaluate.