Feature request: Joystick... stuff

For collaboration on developing the mod capabilities of VS; request new features, report bugs, or suggest improvements

Moderator: Mod Contributor

Post Reply
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Feature request: Joystick... stuff

Post by chuck_starchaser »

I don't know much about joysticks myself (I don't use them); but there seems to be a consensus emerging at the PU forum about the need for a special file or config variable to swizzle and invert axes... Something like that...
http://wcjunction.com/phpBB2/viewtopic. ... 2364#12364
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

There is, you can edit the <axis> tags in vegastrike.config to do exactly that (I believe it's invert="true" or reverse="true" or something like that to invert).

Maybe what you're actually asking is adding that to vssetup.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

klauss wrote:There is, you can edit the <axis> tags in vegastrike.config to do exactly that (I believe it's invert="true" or reverse="true" or something like that to invert).
I did; and I committed it inverted; and then a debate started as to whether that should be the default or not. Most players don't like having to edit vega.fig by hand though; only to have to do it again whenever the file changes in svn. Well, this brings up again the need to separate user settings from game settings...
Maybe what you're actually asking is adding that to vssetup.
The idea did come up in that thread, but then it was discarded because someone said there should be inversion for other axes, as well as swizzling of axes, and it was considered too much clutter to add to vssetup. I don't know what the answer is. Not my subject, though; like I said, I don't use joysticks; I was just passing the word here.
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

I don't get the problem then. SVN is SVN... development... not really worth going over all the trouble it brings when you edit SVN locally and never commit.

The idea is that users don't use SVN or use at their own risk (ie: their local modifications can be overwritten from update to update). In the case of the config, furthermore, they should be editing their local config file, not the one in /data (in linux, the one in their home ~/.vegastrike/vegastrike.config, in windows the one in /data/.vegastrike/vegastrike.config IIRC).

I for instance always do that - edit my ~/.vegastrike/vegastrike.config, and when I update I merge the changes with a diff (svn diff -rPREV:HEAD vegastrike.config > changes.diff ; edit changes.diff ; apply patch). Or when the changes are many, simply rm ~/.vegastrike/vegastrike.config and rerun vssetup. Complicated I know... but that's SVN world.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Post by loki1950 »

I always play in a copy of my SVN repo so that it stays clean even do my building in a separate directory never any old intermediates lying about :D

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

Klauss, we don't have an installable to download. SVN is the official and only way to get PU. And it will remain so for the forseeable future; though we're working on putting out a small, downloadable "demo". But we're getting way off topic. In any case, I know nothing about joysticks; my purpose was to pass on the message. Job done.
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

Well, the point wasn't to give you the finger of course... ;)

Sure, SVN is troublesome, I wanted to point out that. But I too wanted to point out that in the case of config files, if you have a config file in the proper location (ie: home folder) there should be no problem. If people are having problems, it's not set up properly - they should copy their config file into their home and do any further editing there. And of course be on the lookout since any update from SVN wouldn't apply if they don't merge the changes.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

Well, your method has merit; no question; but that's more like for programmers than for users. Too hard to explain, I think. Hell, we have trouble getting across that the username is "username" and the password is "password"... "But I don't HAVE a password! Where do I get one?" :roll:
People tend to take you literally... Until the day you want them to...
ace123
Lead Network Developer
Lead Network Developer
Posts: 2560
Joined: Sun Jan 12, 2003 9:13 am
Location: Palo Alto CA
Contact:

Post by ace123 »

I'm not really sure what the correct solution is to a config file... in this specific case maybe you mean we could split up the "invert" flag into a separate variable for each axis so that it is independent of the type of joystick?

A possible solution is to make a smarter configuration *editor*... However doing that is something easier said than done.

If I understand correctly, the inverted axes are different for each one, and in addition, each joystick has its own peculiarities about axis mappings. So simple presets just don't work too well in this situation:
Axis 1: Unused, Yaw, Yaw (Invert), Pitch, Pitch (Invert), Roll, Roll (Invert), Throttle, Throttle (Absolute), Throttle (Absolute, Invert)
Axis 2: Unused, Yaw, Yaw (Invert), ......

But then we would probably have to generate a macro language for config files around the convoluted system.

There was talk about redesigning the config format, however any way of redesigning it would require two configuration files: an "original" one that has defaults for the game, and a "custom" one that has the settings the user created.

There remains the fact that the code to read and edit configuration files would need to be rewritten from scratch.

Also, you will likely have synchronization problems when the main config file gets updated, and you still have year-old modifications in your home directory config file.

Maybe a solution is to make it only keybinding settings since those don't directly interact with the game. Everything else really needs to be presets (or some sort of labels where you can get a good idea of the 'lowest possible' and 'recommended highest' ones... like number of running systems for example).

I don't see anything of this sort actually helping solve the problem, however.

And indeed I don't think "professional" games have much better settings management, however I think they have split up game-related settings from user-related settings... so if you want to add a keybinding you just edit one file, and maybe they have good defaults so you just have to add lines to it instead of editing it. Also, said games don't use SVN and are never updated (or use a patching program which could modify user settings if necessary).
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

Well, no real rush on any of this.
I would think most users would never touch game settings; and user settings would never be changed in svn.
The situation now is that we change some game setting or other about once a week on average, and we have to put an announcement for users to delete their vega.fig before updating; because it's eternally conflicted.
I think having separate game.config and user.config files would be a giant leap for mankind.
User.config could be autogenerated if it's not there. That way we'd NEVER have to put it on svn.

As for the joystick, perhaps it would be best to split user.config further, like have controls.config, that do the keyboard, mouse and joystick; then a graphics.config, a sounds.config... I'm thinking, what you'll probably want to do eventually is to integrate configuration into the engine, rather than have a separate vssetup; right? To do the graphics.config in-game would require destroying and re-creating the draw surface; so it would be quite different code, and more involved, than the others. Having separate config files would allow you to migrate one at a time. Would allow these settings and interfaces to evolve separately too. It would also allow people to exchange presets for given controls; like there could be a controls.config for German keyboards that people can download without messing up their graphical or sound settings.
Darkmage
Merchant
Merchant
Posts: 57
Joined: Tue Mar 11, 2003 7:21 am
Location: Melbourne, Australia
Contact:

Post by Darkmage »

I wouldn't change the config file. I have two joysticks here and both have very different configuration options when used with vegastrike. I think most people will find this to be true for themselves as well. A better way would be to include a configuration option ingame. I think it's about time that vegastrike had an in-engine control panel page for configuring sound/input/video settings.
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

Darkmage wrote:I wouldn't change the config file. I have two joysticks here and both have very different configuration options when used with vegastrike. I think most people will find this to be true for themselves as well. A better way would be to include a configuration option ingame. I think it's about time that vegastrike had an in-engine control panel page for configuring sound/input/video settings.
Will you code it?
The idea of having in-game config has been around longer than you; and the stopper may be whether cequi or what other in-game gui will be used in the future, and that that should be settled before, though I may be wrong. In any case, it's not proper form to bring back a thread from months back, and about a small issue, just to make a major Feature Request that doesn't even belong in this forum. Least of all with phrases like "It's about time..."
Sindwiller
Merchant
Merchant
Posts: 32
Joined: Sun Aug 10, 2008 10:31 pm
Location: Zürich, Switzerland

Post by Sindwiller »

The idea did come up in that thread, but then it was discarded because someone said there should be inversion for other axes, as well as swizzling of axes, and it was considered too much clutter to add to vssetup. I don't know what the answer is. Not my subject, though; like I said, I don't use joysticks; I was just passing the word here.
"Too much clutter"? If those functions are needed, they should be implemented into vssetup and that should happen in a orderly manner. Sure, if you just fill a window with all that stuff, it'll be just overfilled. Tabs might help one out :P I'm not going on a rant; I'm not even capable of rewriting vssetup so I'd better shut up, actually. However, I think it's stupid to just abandon an idea just because it would mean "too much clutter", either visually or on the code-side. Other games have it, too ;)

Then again, you can just wipe my words in the war against flaming :P
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

There's nothing to do to vssetup to have those "functions". What parameters you do or don't have in vssetup are specified in the header section of vega.fig. Just a matter of adding a few lines in the header and axis reversal buttons will automagically appear in vssetup. That's not the issue; I think the issue is clutter :D
Don't joysticks come with some kind of software to allow reversing axes? Why should every game have to deal with this kind of thing, again and again, anyways? Somebody should have come up with a more rational way to manage joystics and other such devices? I don't use one, so I don't know, but it would seem reasonable to me.
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Post by loki1950 »

Don't joysticks come with some kind of software to allow reversing axes? Why should every game have to deal with this kind of thing, again and again, anyways? Somebody should have come up with a more rational way to manage joystics and other such devices? I don't use one, so I don't know, but it would seem reasonable to me.
There are quite a few but they are manufacture specific and only for windows joystick support has always been problematic look at the hoops needed to get some of the older games that have joystick support working just too many devices to generalize that and some only support MS's Direct input protocol and so useless on MAC and Linux systems.

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

loki1950 wrote:
Don't joysticks come with some kind of software to allow reversing axes? Why should every game have to deal with this kind of thing, again and again, anyways? Somebody should have come up with a more rational way to manage joystics and other such devices? I don't use one, so I don't know, but it would seem reasonable to me.
There are quite a few but they are manufacture specific and only for windows joystick support has always been problematic look at the hoops needed to get some of the older games that have joystick support working just too many devices to generalize that and some only support MS's Direct input protocol and so useless on MAC and Linux systems.

Enjoy the Choice :)
Damn! We should propose an Open Input project, at Sourceforge.
Sindwiller
Merchant
Merchant
Posts: 32
Joined: Sun Aug 10, 2008 10:31 pm
Location: Zürich, Switzerland

Post by Sindwiller »

http://en.wikipedia.org/wiki/Object_Ori ... put_System

Okay, it isn't called "Open Input System", but it is under the zlib license and it's cross-platform :P
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

OIS is the de-facto standard for Ogre projects BTW. It's rather new, but good enough. Probably better already than what VS has ;)
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
Sindwiller
Merchant
Merchant
Posts: 32
Joined: Sun Aug 10, 2008 10:31 pm
Location: Zürich, Switzerland

Post by Sindwiller »

klauss wrote:OIS is the de-facto standard for Ogre projects BTW. It's rather new, but good enough. Probably better already than what VS has ;)
Indeed. It looks fairly decent and if you want to implement input stuff (useful for customization and GUIs) in Python, python-ogre already delivers OIS bindings; I'm not an expert, but I'm pretty sure you can use them outside the whole package.
Post Reply