|
I've decided to pull SLJoy for personal reasons. I may, someday, revisit the work I did with it, but it wouldn't be a libsecondlife plugin - it would be built into the client itself. The remainder of this page is preserved for posterity. Second LifeJoystick Interface (SLJoy)At A Glance- Proxy built on libsecondlife and SLProxy using C#
- Allows joystick status to be sent to SLJoy-enabled applications (aircraft, etc.)
- 100% Free, as in beer - full source code released under a BSD-style license
- Open API, so any sufficiently skilled scripter can build SLJoy support into their vehicles (and any other gadget that might benefit from joystick control)
Who This Is For- Software developers who might be interested in building joystick support into their apps, or contributing to the SLJoy project
- Other tech-savvy people who are curious and don't mind working with alpha-quality software
- This is not a finished product and is subject to change. If you don't fit either of the above two descriptions, it's probably a waste of your time to download this.
Download Known Issues- New releases of Second Life may break this, as it depends on libsecondlife, and libsecondlife has to know lots of specific things about the SL protocol. New protocol.txt and keywords.txt files have to be used, and libsecondlife.dll and SLProxy.dll might have to be recompiled if there is a significant change. I'm not sure yet how I want to go about making these things available, but I'll probably just put a new zip file up when I can.
- Control latency will be network latency plus however long it takes the simulator to deliver chat to your listen() event plus however long it takes you to parse the data and deliver it to your control logic plus however long it takes your control logic to report it to the vehicle system. This is likely to be a touch slower than the keyboard (a few tens to hundreds of milliseconds depending on your code path), but if you have a very short code path (such as directly writing to the vehicle system immediately after you parse the joystick messages from SLJoy) you might not even notice it.
- If your control method updates the vehicle system every time a key is down (which will usually be numerous times per second), you may find it doesn't react the same way to joystick messages that are only delivered when they change. You may have to "re-apply" your motors in a timer event to get them to act the same, or adjust your vehicle system setup to have a lower decay timescale or other parameter(s). Adjusting one parameter in the vehicle system can have wierd effects on other parameters, so keep an eye out.
- If you run SLJoy directly from inside #Develop, it may throw an exception related to the Stepper class and then hang. This is apparently a #Develop bug - I've never seen it do this when I run it standalone. (Once it hangs, it's dead, and your SL session is too, so unless you are actively working on the code, it's best to run SLJoy standalone.)
Support- This is alpha-quality software. The comm protocol may change, possibly more than once. VHI does not recommend building anything commercial around SLJoy at this time, due to the high probability that it will change.
- As this is free, tech support is not offered by VHI. If you build a product around this, it's your responsibility to help your customers with it if anything goes wrong.
- I will take bug reports about SLJoy, as long as the following protocol is observed:
- First, read the above section to see if it's a Known Issue. If it is, and you don't have anything to contribute that isn't already described in Known Issues, don't file the report.
- In Second Life, create a notecard called "Bug Report - SLJoy - (short summary)" (Obviously you put a very short summary where (short summary) would be)
- Fill out the notecard that looks like the following sample:
- Bug Report: (short summary)
- Name: Firstname Lastname
- Description: When I do this, SLJoy does that, but I expected the other thing.
- To reproduce the bug, do this: ....................................
- Drop the notecard on my profile (Huns Valen) and send me an IM in case I don't notice it.
- DO NOT SEND ME AN IM ABOUT A BUG BEFORE YOU'VE SENT ME A NOTECARD. It's too easy for me to lose track of bug reports sent in IM only, so I won't accept bug reports AT ALL unless you submit them in a notecard.
- I don't guarantee that I will fix the bug. (Hey, it's free, what do you want?)
- SLJoy is provided with a modified version of Cubey Terra's free airplane script. It demonstrates how to integrate SLJoy support into an existing app. This modification requires fairly advanced scripting knowledge, including understanding how the vehicle system will respond to receiving values directly and only when they change. If you can't understand how to do it from that example, I can't help you.
Contributing to the SLJoy Project- Eventually I will have the code for this checked into libsecondlife's SVN repository, and people can contribute patches at that point
- If you want to contribute financially, feel free to buy my stuff at SLExchange. Or you could just pay me (Huns Valen) some L$ directly, but why not get a cool aircraft in return? :)
|