User Tag List

Page 2 of 3 FirstFirst 1 2 3 LastLast
Results 11 to 20 of 23

Thread: Joystick 2 object

  1. #11
    Clicker Fusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleSWF Export Module
    happygreenfrog's Avatar
    Join Date
    May 2011
    Location
    I.L.T.D.O.I.R (I.L.T.D.O.I.R's Location: The Dimension Of Infinite Recursion)
    Posts
    4,297
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Oh, okay. I guess I completely misunderstood what you said in the other post. I think the part that threw me off was this:

    The force feedback does work on the Xbox 360 controller.
    Which implies that force feedback, well, does work on the Xbox 360 controller. I guess you meant to say "doesn't" instead of "does".

    Anyway, sorry for misunderstanding.

  2. #12
    Clicker Fusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleSWF Export Module
    happygreenfrog's Avatar
    Join Date
    May 2011
    Location
    I.L.T.D.O.I.R (I.L.T.D.O.I.R's Location: The Dimension Of Infinite Recursion)
    Posts
    4,297
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    AH! Okay, got it. That is rather confusing. Thanks for clarifying! I personally always used force feedback instead of rumble, if I remember correctly, so that would explain things a lot.

  3. #13
    Clicker Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)

    Join Date
    Jul 2014
    Posts
    15
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I am editing this post because I asked a question about how do we make a difference between the triggers on an xbox 360 wireless controllers but found the response in another thread.

    Snail replied in this thread explaining how the triggers work. It is not an issue with Clickteam but with the XBox 360 wireless controllers drivers.
    http://community.clickteam.com/threads/81103-How-to-assign-Xbox-360-controller-triggers?highlight=joystick+xbox+triggers

    Thanks!

  4. #14
    Clicker Fusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleUniversal Windows Platform Export ModuleSWF Export ModuleInstall Creator ProPatch Maker
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)
    Crian's Avatar
    Join Date
    Oct 2009
    Posts
    318
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    An updated version of this extension would be really appreciated.

  5. #15
    Clicker Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)
    Volnaiskra's Avatar
    Join Date
    Jan 2014
    Location
    www.sprykegame.com
    Posts
    1,738
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    Just FYI, I did lot of work once to unify the various outputs of the Joystick 2 object, and coax some extra functionality out of it ( customisable deadzones). I released the result as VACCiNE (in my sig). It makes all major gamepads work out of the box, exactly the same way, and considerably simplifies the process of reading their inputs.

  6. #16
    Clicker Fusion 2.5
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)
    JimJam's Avatar
    Join Date
    Jun 2006
    Location
    USA
    Posts
    338
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb Controller Extensions Test

    I was curious about this object, so I did some performance tests. And they weren't great.

    I tested the X-axis data as reported by the following 4 extension objects:

    • Analog Joystick Object
    • Joystick 2 Object
    • XBOX Gamepad Object
    • Gamepad Object


    I created a quick program to test the accuracy of axis data reporting from the device to Clickteam Fusion. I then recorded that data, exported it, and graphed it for visual comparison with the other controller device objects.



    Here are my findings:

    Performance:


    Analog Joystick Object:
    Good:

    • Its RAW AXIS data is actually accurate raw data (0 to 65535 max), which is good.
    • No unchangeable hard-coded deadzone.
    • Joysticks respond accurately and timely.
    • Joysticks feel smooth and responsive.

    Bad:
    • Only seems to support 1 joystick. No multiplayer.


    Joypad Object:
    Good:
    • Joystick is exactly as accurate as the Analog Joystick Object. It reports the same exact data in 99.9% of events.

    Bad:
    • Glaring problem: the Joypad Object noticeably reduces an app's framerate down to 14 fps! Even when its in its own blank frame alone. I could not find a way around this at all. Memory leak or something?


    Joystick 2 Object:
    Good:
    • Access to a very high amount of buttons, axes, and joysticks.
    • Seems to be compatible with many different styles of device.
    • Can report all sorts of info on the joystick device.

    Bad:
    • Its RAW AXIS data is not actually RAW data. It seems to make up a number between -1000 and 1000. I'm not sure why, since the "Percent" values also give a value of -100 to 100 (same value range divided by 10). Its not possible to actually get the RAW AXIS data, only these two (nearly identical) interpreted numbers. This massively reduces the available sensitivity of a device. For an extension which gives you access to so much joystick data, it seems strange that you can not actually access the RAW axis values. Especially considering the older Joypad object did have this feature.
    • Seems to have an 8% deadzone hard-coded into the object. Switching past the center-point of a joystick "sticks" a little, and is not smooth. So until the player pushes the stick past 8%, this extension reports as 0%, as shown here:
    • This hard-coded deadzone is not calculated as circular. Instead, there is a linear dead-zone for each axis. What this means is that (for example) if you point the joystick at 0 degrees and 100%, and then push it up by 2 degrees, you'll likely still be in the Y-axis' deadzone. This means that the joystick also "sticks" to the 90 degree angles, and doesn't provide a smooth circular rotation. Very bad.
    • In all cases, there seems to be a definite input delay as well. Running an app at 30 fps, the input from a joystick is delayed by 2 whole frames. That's game-breaking for any fast paced game such as a racing, action, or fighting genre. At 60 fps the input delay seemed around 1 to 2 frames still. The lower the frame rate, the more obvious the input delay. At 5 fps, you can actually watch the yellow bar (for joystick 2's X-axis) move in the opposite direction of your physical joystick due to the input lag being so far off. This is also evidenced in the graphs I created comparing the outputs of the various extensions. You can see this input delay very clearly here (the Joystick 2 Object's orange line sends an UP/DOWN signal 2 frames after the other objects):
    • It seems that the hard-coded 8% deadzone is "adjusted for" by the extension, which is likely why the joystick distance/percent isn't accurate. At 8%, the Joystick 2 Object outputs "1%" and scales up from there. This is in contrast to the XBOX object's hard-coded deadzone, which just instantly jumps from 0% to 25% with no gradation. Regardless, this objects 8% hard-coded deadzone is still bad, and actually narrows the sensitivity available from a joystick. This was really noticeable on my Flight-stick, which is intentionally designed to be very sensitive for minute movements. You can see the Distance/Percent discrepancy here:
    • Not only is there an input delay, but there seems to be "output shelves" on RAW AXIS data. If you look at a lot of the graphs, you'll notice that the other extensions report smooth data every frame, while the Joystick 2 Object often reports the same AXIS data two frames in a row. In effect, this causes jerky movement, as the joystick output data jumps and stalls in roughly 10% intervals. You can see these jerky "shelves" best here:
    • Conclusion: The doubling of axis data on multiple game loops (frames) as well as a 2 frame input lag, hard-coded deadzone, and inaccurate joystick distance reporting, kind of makes this object unusable for anything requiring sensitivity or accuracy. At best, you can only get gross movements, which is only suited for non-action games (or games that only use the analog sticks as digital inputs). Add onto that other people reporting application-crashing bugs and I can't say I could recommend this object.



    I don't recall having these problems with this extension in the past, so its possible that the major problem is likely due to Microsoft Updates which made changes to the DirectInput drivers or something, as I know Microsoft is trying to push XINPUT as a replacement to deprecate DIRECTINPUT.


    XBOX Gamepad Object:
    Good:
    • XBOX Gamepad object is the only extension which seems to allow the Left/Right Trigger their own axis values. That's a plus I guess.
    • General setup and use is pretty simple, especially for XBOX style controllers.

    Bad:
    • Does not allow access to actual RAW axis data. Only reports values of -1000 to 1000. (Still manages to report joystick Axis data accurately though, as it matches the percent/sensitivity of the Joypad object and Analog Joystick Object in terms of accuracy.)
    • Seems to be a noticeable 1 frame input delay in joysticks. You can see this on the various graphs. Despite the Axis data being accurate, the XBOX object inputs always lag behind the Joypad Object and Analog Joystick Object. A serious flaw for any action games.
    • Massive glaring flaw: There seems to be a very large 25% hard-coded deadzone in the object. Not only does this make 25% of your joystick range unusable, the XBOX Gamepad object does not even adjust for this. The object will output a huge leap from 0% to 25%, and then gently move from there forward in 1% intervals. This would make any "tip-toeing" or subtle joystick movements impossible., as this data can not be read from the device. See the 25% deadzone here:
    • XBOX Gamepad object does not detect flight-sticks, or any NON-XBOX styled controller, at all. From what I understand, this is forced deprecation move from Microsoft to replace DirectInput drivers with XInput (basically making 3rd party devices "legacy"). Boo for monopolies.


    In Conclusion:
    There's some major problems with the way Joystick 2 Object is implemented, which is likely causing lots of problems for players. And the XBOX Gamepad alternative leaves a lot to be desired. The Joypad Object is pretty accurate and good, but literally drags the framerate to the ground.

    There's basically no good way to use a joystick/controller in Fusion right now. :/

    Its possible that I'm the only one experiencing this problem... But I would say that its always good practice to err on the side of "If one person is experiencing a bug, its likely others are too." Not to mention I tested with two different devices, and also don't experience any sort of input lag on any of the other games and software that I use.

    Regardless, I'm curious what other's have noticed. I'm gonna release the performance-test-app that I made to see what other people report.

    You can see some of the other graphs I made at this link:
    https://imgur.com/a/htFkO

  7. #17
    Clicker Fusion 2.5 DeveloperiOS Export ModuleInstall Creator Pro
    Julian82's Avatar
    Join Date
    May 2012
    Location
    outbuddies.com
    Posts
    650
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    Great data you provided here! And it unfortunately confirms and illustrates very well the sub-par gamepad support in Fusion. I personally don’t mind the input lag and dead zones, but I’m sure there are players who will.

  8. #18
    Clicker Fusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleSWF Export Module
    happygreenfrog's Avatar
    Join Date
    May 2011
    Location
    I.L.T.D.O.I.R (I.L.T.D.O.I.R's Location: The Dimension Of Infinite Recursion)
    Posts
    4,297
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    While the implementation of the hard-coded deadzone sounds bad, it's worth noting that deadzones in of themselves are far from what I'd consider something to worry about. About 99% of the time, you want at least a small deadzone anyways, since most sticks don't report that they're perfectly centered even when they are.

  9. #19
    Clicker Fusion 2.5 DeveloperHTML5 Export ModuleiOS Export ModuleSWF Export ModuleInstall Creator Pro
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)
    chrilley's Avatar
    Join Date
    Jul 2006
    Posts
    857
    Mentioned
    10 Post(s)
    Tagged
    1 Thread(s)
    Very impressive data and testing done @JimJam . I have a feeling a lot of the issues you bring up is just a product of time. The lag in Analog Joystick, for instance, I cant imagine was there when the developer first released that object. These extensions are sadly very old now and I don't think they have been updated to keep up with Windows or Fusion's progress over the years.

    I wonder if it is likely we'll see a new gamepad object for F2.5 or if F3 will have some kind of solution for it at some point...

  10. #20
    Clicker Fusion 2.5
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)
    JimJam's Avatar
    Join Date
    Jun 2006
    Location
    USA
    Posts
    338
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by happygreenfrog View Post
    While the implementation of the hard-coded deadzone sounds bad, it's worth noting that deadzones in of themselves are far from what I'd consider something to worry about. About 99% of the time, you want at least a small deadzone anyways, since most sticks don't report that they're perfectly centered even when they are.
    This is absolutely true about joysticks generally not being fully centered. But a hard-coded deadzone doesn't give the developer (us) much freedom in how they want to implement the joystick input.

    For example, I was working on a test app that would move the Mouse cursor with joystick input. I wanted to program in my own adjustable deadzone, which the user could change to anywhere from 0% to 99%. But with the Joystick 2 object, it basically limits that range of motion to 8% - 99%, and reports inaccurate axis distance. And with the XBOX object the deadzone is a whopping 25%.

    My flight-stick has really high sensitivity, useful for flight simulation accuracy. Very small movements are needed for such a game. I wouldn't be able to replicate that kind of accuracy with the Joystick 2 Object.

    I feel like most instances, taking away freedom form the designers (us) and our products' users is generally not good. Having options in terms of input sensitivity is always a plus. I think if the Joystick 2 Object actually just had the option to choose between real percentage (joystick input form -100% to 100%) and actual raw input (x value of 0 to 65535) I wouldn't mind. Because then it gives us as developers the option to just use simple input values, or to get nitty-gritty and program our own deadzones and accurate movement if we choose.

    But as I stated in my longer post above, its not just the deadzones, but how they're implemented. They're not circular, but instead linear, which causes "sticking" on the 90 degree points -- which also limits the accuracy of directional data as well as distance. I think this is a case of trying to "over engineer" an extension, instead of just letting us get the RAW device input values and doing the math ourselves. In an attempt to "fix" these values, they've been tweaked and tampered with in a way which doesn't report accurately.

    All in all, I would love to see an update to the extension which fixes these issues.

    Quote Originally Posted by chrilley View Post
    Very impressive data and testing done @JimJam . I have a feeling a lot of the issues you bring up is just a product of time. The lag in Analog Joystick, for instance, I cant imagine was there when the developer first released that object. These extensions are sadly very old now and I don't think they have been updated to keep up with Windows or Fusion's progress over the years.

    I wonder if it is likely we'll see a new gamepad object for F2.5 or if F3 will have some kind of solution for it at some point...
    I agree. I don't think most of the problems with the joysticks are due to the extension developers, because I don't remember such noticeable input lag in the past. I would almost guarantee that it has something to do with Microsoft messing with the DirectInput libraries or something -- basically as you said, computers have changed a lot over the years, and PCs have never been very consistent on how they deal with game controllers in the first place.

    I personally use either Joy2Key or XPadder to map joystick inputs to keyboard keys, but I don't think its a good idea to recommend our customers/players use 3rd party software for proper Joypad input.

    Oh, and for the record, I don't know if you just got all the extension mixed up, but my data shows that the Analog Joystick Object was actually the fastest, cleanest, and most accurate extension of them all -- it was all of the other 3 which gave serious input lag and slowdown. But the biggest downside of the Analog Joystick Object is that is imply doesn't offer support for more than one joystick/controller. :/

    Hey @Volnaiskra, I'm curious what kind of data you'd get out of my MFA test, since I know you did a lot of testing with the VACCiNE program you wrote. I tested the free version of VACCiNE and noticed the input lag there too. I'm guessing because of the reliance on the Joystick 2 Object which has a noticeable 2-frame input lag from my findings.

    You can download the app I created from my Dropbox link here, which also contains all the *.CSV data I generated and OpenOffice *.ODT spreadsheets with graphs.

    (I also created a separate thread over here)

Page 2 of 3 FirstFirst 1 2 3 LastLast

Similar Threads

  1. help Joystick Control object
    By kemo in forum XNA Export Module Version 2.0
    Replies: 2
    Last Post: 3rd October 2013, 07:49 AM
  2. Joystick 2 Object
    By Panchos in forum Multimedia Fusion 2 - Technical Support
    Replies: 0
    Last Post: 15th July 2013, 06:27 PM
  3. Joystick 2 Object Example
    By Bedziu in forum File Archive
    Replies: 0
    Last Post: 25th October 2008, 09:22 AM
  4. Joystick object 2 - RC1
    By z33z in forum Extension Development
    Replies: 24
    Last Post: 24th March 2008, 01:15 PM
  5. Joystick object 2
    By z33z in forum File Archive
    Replies: 1
    Last Post: 11th February 2008, 09:27 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •