Analog Joystick Support Yet?
#1
Posted 28 January 2013 - 01:08 PM
#2
Posted 28 January 2013 - 01:58 PM
This is not a quick fix - it is nothing to do with analogue input, it is because the game engine / netcode has no concept of an analogue turn - you are either turning or not.
Therefore, it requires a re-code of the netcode.
#3
Posted 31 January 2013 - 08:47 PM
Can't wait until they implement - back to MW/2/3/4 days with me. Piloting will feel more like it than the OFF/ON feeling we have now (which still, isn't bad).
#4
Posted 22 February 2013 - 08:44 AM
evilC, on 28 January 2013 - 01:58 PM, said:
This is not a quick fix - it is nothing to do with analogue input, it is because the game engine / netcode has no concept of an analogue turn - you are either turning or not.
Therefore, it requires a re-code of the netcode.
If they are going to have to rewrite the netcode, why are they wasting time optimizing it?
#5
Posted 22 February 2013 - 08:47 AM
#6
Posted 22 February 2013 - 12:18 PM
#7
Posted 22 February 2013 - 02:34 PM
If anyone really wants to use a stick to play MWO, seriously consider one of these sticks above, since they are the easiest route to the highest degree of functionality possible, likely even surpassing the capabilities that will one day be available in the form of official support.
However, so long as you are using an airplane joystick to pilot something that moves like a tank, the task is quite difficult even with the best support by PGI. The real challenge is using pitch/roll stick with a spring centering bias and relative inputs to replace the ease and precision of a mouse which moves in the natural direction of the reticule travel and uses absolute inputs.
For pedal users another challenge is using airplane pedals to steer something that turns like a tank, which at the moment relies on 'bump steering' due to the on/off nature of current digital turning. A match requires a lot lot lot of tiny steering inputs at times, and with airplane pedals this requires you to move *both feet to accomplish each input. You will either undercontrol the mech or be constantly be shifting in your chair, which leads to serious fatigue/back problems and is far from comfortable even in the short term. I use pedals that have toebrakes (Saitek Combat pedal post coming shortly!), and just use the toebrakes to generate 'a' and 'd' commands so I only move one foot each time. Big. Difference. This is how you drive a tank BTW, as well as how the original BattleTech Tesla Pods operated but I digress...
It's really a shame no one makes an off the shelf stick that moves in pitch/azimuth with no spring centering and uses absolute inputs. I made my own stick that does just that, and it's very natural/easy to use, although a little (srsly, just a little) more challenging for high precision sniping at long range. It moves in the same directions as the reticule (like a mouse) and firmly stays put in whatever position it is in when my hand is not on it (like a mouse), it uses absolute inputs (like a mouse) and I don't have to choose between control-ability vs reaction speed, unlike a self centering stick using relative inputs. Oh, and I use zero deadzone with my setup, which is another drawback that mouse users don't have to tolerate.
Whenever I die and spectate another stick user, I see why there is so much derision among the general population of mech pilots and terms like Steeringwheel Underhive are coined. Unless you have a stick with a pitch/azimuth gimbal that uses absolute inputs, I can only recommend throttle/mouse/pedals with a clear conscience.
#8
Posted 23 February 2013 - 02:18 AM
What figures did you use? ie full deflection for 50ms, off for 50ms, full for 25ms, off for 25ms etc...
#9
Posted 23 February 2013 - 02:26 AM
Seriously, awesome post!
Care to share the specifics of your analog turning script?
#10
Posted 23 February 2013 - 07:50 PM
Quote
Quote
First, thanks for the kind words. This project means a lot to me, and so it does when people like it. ^_^
As to the steering, I hope I didn't make it sound cooler than it is... Due to limitations within the MWO coding, I was only able to obtain 2 *smooth rates of turning that are appreciably slower than the full rate. I was gonna wait and make this stuff it's own post, so I apologize in advance to those of you who wind up seeing most of this again when I make a rudder post. Got more news to post about my new stick script as well, which includes some neat stuff, most notably the automatically scaling of stick sensitivity in accordance with zoom level... :D
As we all know, turning in MWO is digital, so is achieved by holding 'a' or 'd', or assigning an analog axis to do such (this is what happens when you bind an axes to turning in the MWO options menu). When holding a keypress, by default it generates 20keystrokes per second, at 32miliseconds each. My initial tests were done using the standard 32ms pulse, but increasing the delay between them to lower the keystrokes per second. Unfortunately as it turned out, 32ms is juuuust not quite long enough of a keystroke to properly initiate turning before the keystroke is finished. This is not a problem at 20 keystrokes per second, since once enough keystokes are pressed fast enough MWO counts it as a continuous input and turning rate is 100%. I'm not sure exactly where the critical mass mark is set, but it's somewhere around 50% time on/off.
Due to the MWO limitation I mention above, my scheme does not yield turning rates from 0-100%, but rather more like ~65-100%. I could not find any useable rates below ~65%, and all lower speeds than that are simply too ratchety/jerky. I played around with many many combinations of altering keystroke event time and delay, and finally settled on a nice simple 50ms. While it is possible to find smooth rates above 65%, I limited my script to 2 of them for the time being. To achieve full turning rate with 50ms pulses, I use a 50ms delay (fulfilling the 50% req). The next rate down is a 50ms pulse with a 75ms delay, and the next is a 50ms pulse with a 100ms delay. My current prototype scheme has the axis divided into 7 equal zones, with the center being 'x' for all stop.
zone char stroke delay ~rate%
3) 'a' 50ms 50ms =100%
2) 'a' 50ms 75ms ~80%
1) 'a' 50ms 100ms ~65%
0) 'x'
1) 'd' 50ms 100ms ~65%
2) 'd' 50ms 75ms ~80%
3) 'd' 50ms 50ms =100%
It goes without saying that I am looking forward to real analog turning support. In the meantime, the scheme above can be used via TARGET through either a spare axis on any supported stick, or with the Cougar rudder pedals.
I am currently actually using Saitek Combat Pro pedals that are reconfigured, and they no longer operate as airplane pedals. I disassembled the pedals and screwed the pedals to a board, 16" on center (they come 12" on center, way too close together). The center axis does nothing, and all turning is by pressing the toebrakes. The left pedal generates 'a' and the right generates 'd', with deadzones at the beginning. I'm just using Saitek's software to accomplish this simple version, but will soon be repurposing axes from my Cougar so I may control them via TARGET instread, allowing me to use my scheme outlined in this post. In the meantime though, I'm pretty certain that this is the most user-friendly that a pedal setup can be, and it's really easy/intuitive to use in addition to comfortable even after many hours of matches. Post a coming, but here's a tease shot of my pedal test rig:
*rates below ~65% suffer horrible ratcheting effects and IMO are not useable in-game, although entirely possible to make.
#11
Posted 24 February 2013 - 11:58 AM
Also, I was having it pulse the stick not hit keys, but I guess the same may hold true.
Armed with this information, I may well have another stab at it, would love to implement something like this in UJR.
Thanks for the info man.
#12
Posted 26 February 2013 - 06:11 AM
#13
Posted 26 February 2013 - 06:17 AM
shotokan5, on 26 February 2013 - 06:11 AM, said:
Do you have any proof or reasoning for that argument?
#14
Posted 26 February 2013 - 07:09 AM
The netcode has no concept of an analogue turn, and as such will need to be rewritten to support analogue turning.
This has been stated by the devs.
3 user(s) are reading this topic
0 members, 3 guests, 0 anonymous users