[SDL] I need input for an article on SDL

jvalenzu at icculus.org jvalenzu at icculus.org
Wed Jul 10 23:42:01 PDT 2002


Joseph Carter writes:
 > On Wed, Jul 10, 2002 at 09:45:43PM -0700, jvalenzu at icculus.org wrote:
 > >  > OpenAL is a standard developed behind closed doors with little
 > >  > documentation and basically no serious interest in Linux at all.  Oh sure
 > >  > it runs there, but this only marginally significant given that there is no
 > >  > real support for any of the 3D sound features in Linux.
 > > 
 > > I hate pointing it out but gaming on linux is a margin market anyway.
 > > I doubt you're serious about addressing what support for "3D sound
 > > features" but I can say that having a solid software renderer was and
 > > is my goal with the linux reference implementation.
 > 
 > Great - if you want a 3D sound API for two speaker systems.  Meanwhile, 4
 > and even 6 speakers are supported by several drivers now.

Guess what.  4 speaker sound is supported by linux openal, via
extension ( I'd like to take the moment to credit Chris Purnell
for this and several other excellent patches.  He was criminally
removed from the CREDITS file during the various cvs root changes
but has been re-added ).

 > <h1>Index</h1>
 > <p>
 >   This document has been removed.
 >   See <a href="http://www.openal.org/">www.openal.org</a>
 >   for information.
 > </p>

www.openal.org.  API Information.  Daily snapshot.  Were you really
confused?  You were even provided a link.  I'd say you failed to
provide a cursory effort.

 > The website (http://www.openal.org/info/) refers back to the CVS.  There
 > are SGML docs, but these total a mere 7300 lines total for the entire
 > library, in pretty-printed SGML source code.  How you document 15 megs of
 > source code completely or thoroughly in 7300 lines of mostly markup is
 > beyond me.  I know enough to write a simple mixer able to handle 8 sounds
 > for two channels with independant volume and attenuation, but I can't
 > follow what is in the documentation directory.

Indeed, if you claimed to be able to follow what was in a documentation
directory I'd be very surprised.  You've shown no ability so far.

The documentation is available in HTML for those of us who have
never been able to get SGML to work ( sadly guilty of that myself
).  Annotated versions are included to determine reasoning behind
api decisions.

And I can point out that each api decision was open to public
discussion, with requests for comments.  Several comments lead to
major changes in the API.  This contrasts with the process for
other open source libraries, which have had less public comment or
insight into their design.  The effort that Bernd committed to the
design of the API - including soliciting comments, questions,
suggestions from potential users - was beyond reproach.

 > Does the word "bloat" mean anything to you?  It'd be one thing if we were
 > talking about hardware acceleration here, but we're talking about extra
 > dependencies on half a dozen libraries to add support for mp3 and vorbis
 > in software as part of the reference implementation.  OpenGL is useful
 > because it is simple, well documented, and reasonably self-contained.  So
 > far, OpenAL is none of these things!  In fact, the package available for
 > my dist depends on libaudiofile, libesd, SDL, SMPEG, and libvorbis.

The extensions are entirely modular, so bloat is a red herring.
The dependencies are on a per-extension basis - so if you don't
want to install libvorbis, libaudiofile, libesd arts or whatever,
don't enable the extension.  I've never really understood the
philosophy that code reuse is bad anyway.  What's the alternative?
Put an entire copy of smpeg and libvorbis into openal?  Just so
people don't have to type --enable-smpeg?  I don't have any interest
in maintaining an mp3 decoder.

And there's nothing stopping you from implementing your own decoders
for these formats.  Then you can sit in comfort and introduce the
exactly same dependencies you just eliminated by selecting a
configure option.  Yay!

I hope it's obvious by now that your criticism is based largely on
ignorance and misconception.  The API is simple, amply documented
and if it does not meet your criteria for self containment, at least
it is modular.  I guess it's lost on you that many of the extensions
are in alut, not al.

This is off topic, so I'll be signing off.  If anyone has any
questions or comments, I'm more than happy to answer them on the
appropriate forums.

--
jv

--






More information about the SDL mailing list