[SDL] joystick identification

Nathan Coulson conathan at gmail.com
Tue Feb 21 20:25:51 PST 2012


There has been a lot of great discussion and ideas, but I hate to say
I am not quite ready to begin working this out yet (or setting up a
proper home).  Sorry it took so long to respond.

The source image will be a .svg, although I plan on making a library
that will interact with the online database.  I imagine this can be
converted to raster form relatively easily (Never actually looked into
how easy it would be to get a svg to raster parser yet), but I wanted
something that can scale as needed.

I was also working out a way to have premade templates for controls.
(although I meant this to be used at the individual game level).  I
suppose that a generic template or two could be part of the online
database, but not entirely sure having a simplified controller profile
defined for each gamepad is a great idea.

I suppose that the database can also contain the button options for
each game that uses the database, but maintenance could be a problem.



Let me start off by defining what should be in the database (and it
will be 2-3 weeks before I can dedicate the proper time for this), add
1 or 2 examples, and once I have a template see where it should go
from there.  (for now, I don't think I will be using an actual
database, and just have it as a collection of files).

On Tue, Feb 14, 2012 at 11:00 PM, Jared Maddox <absinthdraco at gmail.com> wrote:
>> Date: Tue, 14 Feb 2012 21:10:16 +0100
>> From: Gerry Jo Jellestad <trick at icculus.org>
>> To: sdl at lists.libsdl.org
>> Subject: Re: [SDL] joystick identification
>> Message-ID: <4F3ABFA8.8010209 at icculus.org>
>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>
>> Den 13. feb. 2012 08:32, skrev Nathan Coulson:
>>> http://nathancoulson.com/proj_conndb.php has a very quickly thrown
>>> together document on my ideas, and a very basic specification for this.
>>> (Looks like I'll be starting this project a bit earlier then I was
>>> expecting to.  Was planning on getting the game I was going to use this
>>> in working first).  Still, it will be a couple weeks before I can sit
>>> down and start coding this out.
>>
>> I'm not sure about this. Most games don't have SVG rendering
>> capabilities, and it's not exactly lightweight to add either. Also,
>> there's simply no way a single SVG image will be able to fit the UI
>> style of, well, every game.
>>
>
> Ah, but there's the trick: the game doesn't necessarily have to
> support SVG, you just need a controller mapping editor to be part of
> the controller database, and a controller-translator library to be
> built as part of compilation (so that you can link that with your
> game). Here's how it could work:
>
> 1) The game looks for controllers, you select one, it doesn't find a
> configuration for that controller in it's own database, so it:
> 2) invokes the mapping editor (specifying the controller, and a set of
> description/identifier pairs), so that the user will be prompted to
> create a new configuration.
> 3) If it does find a configuration, then it can either use that one,
> or give the user the option of that configuration or a new one.
> 4) Once the configuration is chosen, the game feeds it into the
> above-mentioned controller-translator which converts joystick/gamepad
> actions into the actions specified in the configuration file.
>
> The controller-translator is needed because some joysticks/gamepads
> apparently report things differently on different OSes. To compensate
> for that you need a 'virtual joystick/gamepad' that gets it's state
> from the real joystick/gamepad, translating it to the form that it
> theoretically should have. This should hopefully be simple enough that
> a configuration file (to tell the translator which of it's inputs
> translate to which of it's outputs) is all you would need.
>
> The job of the controller mapping editor is in turn, to allow the user
> to associate a label with a control (e.g. an axis-pair control, like
> an analog stick), use those associations to create a configuration
> file that the controller-translator can use to translate the actual
> device's events into virtual-device events, and then give that
> configuration file to the invoking program.
>
> This would also simplify the actual control assignments, since the
> game won't have to know the names of the controls, just an id of some
> sort (probably just an integer) that IT specified.
>
> There would presumably be a lot of ABI-breaking (and occasionally API
> breaking) updates at first, as weird controllers requiring extensions
> to the system were added, but that would probably settle down fairly
> quickly, and a first release would probably just need to support the
> PS & XBOX families of controllers.
>
> It would also be pretty easy for a game to let users upload their own
> configurations to the internet, it would just need a way to provide
> them access to the configurations (e.g. store them all as files in a
> 'controllers' directory).
>
>
>> Date: Tue, 14 Feb 2012 12:10:55 -0800
>> From: Nathan Coulson <conathan at gmail.com>
>> To: SDL Development List <sdl at lists.libsdl.org>
>> Subject: Re: [SDL] joystick identification
>> Message-ID:
>>       <CAFvYhDCpyqSGvuqYWThzEDK48WNh3fGFW93syk8XrV-3bOWm3A at mail.gmail.com>
>> Content-Type: text/plain; charset=UTF-8
>>
>> On Tue, Feb 14, 2012 at 12:36 AM, Jared Maddox <absinthdraco at gmail.com>
>> wrote:
>
>>> Could you provide a link for libconndb? I half remember running across
>>> some mention before, but it's proving impossible to google. Is there
>>> any particular advantage over SQlite on the client side, or is it a
>>> 'different strokes' sort of thing (note: I'm assuming that your plan
>>> is to store the SVGs & such in the local database)?
>>>
>
>> at the moment, it does not exist yet,  And when it does, not even sure
>> if I will actually be using a database for it.
>>
>> http://nathancoulson.com/proj_conndb.php (Page was created 2-3 days ago)
>>
>
> Oops, I saw the name and automatically assumed it was a library for
> connecting to remote databases, sorry about that.
>
>
>> Date: Tue, 14 Feb 2012 14:33:48 -0800
>> From: "RodrigoCard" <cuecax at gmail.com>
>> To: sdl at lists.libsdl.org
>> Subject: Re: [SDL] joystick identification
>> Message-ID: <1329258828.m2f.32012 at forums.libsdl.org>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>
> [snip]
>
>> This would be useful when the position matters (say, you, the gamedev, want
>> that the bottom buttons jumps, and the left ones shoots) but still addering
>> to conventions when the position of the button does not really matter (as I
>> said, the confirm/cancel buttons).
>>
>> What you all think?
>>
>
> I REALLY don't think that the game devs should have absolute say on
> control assignments (see my initial response above), especially since
> there may be some really weird controllers out there (I'm hoping to
> eventually make an acoustic pen with pressure sensitivity).
> _______________________________________________
> SDL mailing list
> SDL at lists.libsdl.org
> http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



-- 
Nathan Coulson (conathan)
------
Location: British Columbia, Canada
Timezone: PST (-8)
Webpage: http://www.nathancoulson.com



More information about the SDL mailing list