SDL plans for next release

(From the new TODO file)
Lots:
Add SDL_Flip() for double-buffering
Add DGA and GGI support for Linux
Update BeOS port for PR3, support BeIntel
Port to MacOS
Generally shake out the library so it’s really useful.

WishList:
OpenGL integration so this library is useful for 3D as well. :slight_smile:
CD-ROM control
Joystick/Gamepad input

See ya!
-Sam Lantinga (slouken at devolution.com)–
Author of Simple DirectMedia Layer -
http://www.devolution.com/~slouken/projects/SDL/

CD-ROM control

Can you be more specific as to what you want to do here?

Michael Samuel,

Surf-Net City - Internet Cafe and Internet Service Providers
Phone: +61 3 9593-9977
E-Mail:
WWW: http://www.surfnetcity.com.au/~michael/On Wed, 1 Apr 1998, Sam Lantinga wrote:

CD-ROM control

Can you be more specific as to what you want to do here?

I’m only taking a crazy wild guess here, but how about Play, Stop,
Forward, Reverse, Switch Track, Notify, Eject?

Maybe a hook to the mixer, too, to set CD volume control. But that might
be going too far…

-ChuckOn Thu, 2 Apr 1998, Michael Samuel wrote:

CD-ROM control

Can you be more specific as to what you want to do here?

I’m only taking a crazy wild guess here, but how about Play, Stop,
Forward, Reverse, Switch Track, Notify, Eject?

Well, I was thinking that, but it seemed too easy :slight_smile:

Michael Samuel,

Surf-Net City - Internet Cafe and Internet Service Providers
Phone: +61 3 9593-9977
E-Mail:
WWW: http://www.surfnetcity.com.au/~michael/On Wed, 1 Apr 1998, Chuck Homic wrote:

Date: Wed, 1 Apr 1998 19:40:55 -0500 (EST)
From: Chuck Homic
Reply-To: sdl at surfnetcity.com.au
To: sdl at surfnetcity.com.au
Subject: Re: SDL plans for next release
On Thu, 2 Apr 1998, Michael Samuel wrote:

Can you be more specific as to what you want to do here?

I’m only taking a crazy wild guess here, but how about Play, Stop,
Forward, Reverse, Switch Track, Notify, Eject?

Well, I was thinking that, but it seemed too easy :slight_smile:

Easy is good. :slight_smile:
It would be a nice addition to the API - you don’t have to call external
programs, or know the native CD play methods. I’m also thinking a bit of
the way data and music tracks can coexist on CD. I don’t know much about
it right now. Can you “play” a mixed CD normally? Can you “play” it while
it’s mounted? (unlikely)

Fun stuff. I’m looking forward to getting a CD-burner when they get cheap.
(Or maybe DVD-ROM burner…)

See ya!
-Sam Lantinga (slouken at devolution.com)–
Author of Simple DirectMedia Layer -
http://www.devolution.com/~slouken/projects/SDL/

Can you be more specific as to what you want to do here?

I’m only taking a crazy wild guess here, but how about Play, Stop,
Forward, Reverse, Switch Track, Notify, Eject?

Well, I was thinking that, but it seemed too easy :slight_smile:

Easy is good. :slight_smile:

My money’s on 15 minutes for the Linux version of it :slight_smile:

It would be a nice addition to the API - you don’t have to call external
programs, or know the native CD play methods. I’m also thinking a bit of
the way data and music tracks can coexist on CD. I don’t know much about
it right now. Can you “play” a mixed CD normally? Can you “play” it while
it’s mounted? (unlikely)

Yes, you can play audio while the cd is mounted (Quake 2 does it!), and
you can tell what kind of track it is, by the TOC information on the CD.

Fun stuff. I’m looking forward to getting a CD-burner when they get cheap.

Hehehe… I’ve got one here… Even more fun debugging cdrecord :slight_smile:

(Or maybe DVD-ROM burner…)

There isn’t and free DVD software available, and Joerg Schilling is going
to release the DVD version of cdrecord commercially…

Although, on the DVD subject… It would be interesting to get DVD
support into SDL… (Hey, even if it does nothing, it’s a good buzz word
to use :slight_smile:

On the subject of buzz words, it would be nice to announce that SDL is Y2k
compliant :slight_smile:

Michael Samuel,

Surf-Net City - Internet Cafe and Internet Service Providers
Phone: +61 3 9593-9977
E-Mail:
WWW: http://www.surfnetcity.com.au/~michael/On Wed, 1 Apr 1998, Sam Lantinga wrote:

Date: Wed, 1 Apr 1998 17:07:44 -0800
From: Sam Lantinga
Reply-To: sdl at surfnetcity.com.au
To: sdl at surfnetcity.com.au
Subject: Re: SDL plans for next release

(From the new TODO file)
Lots:
Add SDL_Flip() for double-buffering

Cool!

Add DGA and GGI support for Linux

DGA yep, GGI…hmmmm…

Update BeOS port for PR3, support BeIntel

Yep

Port to MacOS

This is gonna be a chalenge, if you thought it was hard getting clone() to
work on PPCs, wait until you try getting the MacOS Multiprocessor lib
working(needed for pre-emptive threads under MacOS)

OpenGL integration so this library is useful for 3D as well. :slight_smile:

Is this a good idea? 3D and 2D are really quite different in their
requirements.

CD-ROM control

As in audio playback? There’s plenty of code around to do this, perhaps
you should make this a separate library?

Joystick/Gamepad input

Cool! Might be a good idea to look at the various other attempts at this,
cos it seems very hard to get ‘right’->DirectInput, InputSprockets etc…

njhOn Wed, 1 Apr 1998, Sam Lantinga wrote:

CD-ROM control

Can you be more specific as to what you want to do here?

I’m only taking a crazy wild guess here, but how about Play, Stop,
Forward, Reverse, Switch Track, Notify, Eject?

Would that be CD-audio control? Or perhaps just CD control? I wouldn’t
call it CD-ROM control… :slight_smile:

Maybe a hook to the mixer, too, to set CD volume control. But that might
be going too far…

Yeah, this is dangerously close to getting emacs disease…

BTW, maybe we should add a web browser? a File System? a complete
version of DOOM which runs when the user sits on the keyboard and moves
the mouse? :slight_smile:

cya,
njhOn Wed, 1 Apr 1998, Chuck Homic wrote:

On Thu, 2 Apr 1998, Michael Samuel wrote:

Add DGA and GGI support for Linux

DGA yep, GGI…hmmmm…

I checked out the GGI web page, and it looks ‘respectable’.

The main thing being the lack of a need of root privs.

OpenGL integration so this library is useful for 3D as well. :)

Is this a good idea? 3D and 2D are really quite different in their
requirements.

I think that Mesa handles the GL part quite well, and is already very
portable.

Leave the 3D to Mesa, and the 2D stuff to SDL.

CD-ROM control

As in audio playback? There’s plenty of code around to do this, perhaps
you should make this a separate library?

The Linux system calls for cdrom control are so easy to implement that
it’s not even an effort to do so.

But, accessing the data on a CD while playing audio tracks will get
tricky, and it would be nice to have a library that figures out what to
do, rather than relying on the OS’s implementation of it.

Joystick/Gamepad input

Cool! Might be a good idea to look at the various other attempts at this,
cos it seems very hard to get ‘right’->DirectInput, InputSprockets etc…

Might not be necessary for Linux, from looking at the Maelstrom source,
Sam might not have to go far to find an implementation :slight_smile:

As for Win95, it actually has Joystick/Gamepad drivers in it, so there HAS
to be a library that handles it…

I’m not too sure about BeOS. (I haven’t even seen it yet :slight_smile:

Although, the problem with Joystick/Gamepad support is that it is VERY
architechture dependant (not OS dependant), as you won’t find a Joystick
for the i386 that will work on a Mac (m68k/ppc).

Michael Samuel,

Surf-Net City - Internet Cafe and Internet Service Providers
Phone: +61 3 9593-9977
E-Mail:
WWW: http://www.surfnetcity.com.au/~michael/On Thu, 2 Apr 1998 njh at cs.monash.edu.au wrote:

Port to MacOS

This is gonna be a chalenge, if you thought it was hard getting clone() to
work on PPCs, wait until you try getting the MacOS Multiprocessor lib
working(needed for pre-emptive threads under MacOS)

Might I add to that that there should be a good number of games which
could be co-released via SDL for MacOS and linux, as many MacOS
programmers are much less anti-open source, FSF etc… and are used to
lower market share than their Luse95 counterparts.

I have a friend who is a commercial MacOS games programmer who actually
wanted to know how hard it would be to port to linux… Hey even Andrew
Welch(Maelstrom?) has stuck up for Free-Software(got the email here
somewhere… ).

njhOn Thu, 2 Apr 1998 @Nathan_J_Hurst wrote:

Add DGA and GGI support for Linux

DGA yep, GGI…hmmmm…

I’m playing with GGI now. My god, it’s frustrating.
It has potential, but it has a long way to go before it’s primetime, IMHO.
There’s no way of enumerating modes in 1.3, and I can’t get 1.4 alpha
shared library loading to work.
There also seems to be no way to get the surface pixel format (??).

Port to MacOS

This is gonna be a chalenge, if you thought it was hard getting clone() to
work on PPCs, wait until you try getting the MacOS Multiprocessor lib
working(needed for pre-emptive threads under MacOS)

Yep. I was hoping that MacOS 8 had some sort of asynchronous event model.
Heh. We’ll see. :slight_smile:

OpenGL integration so this library is useful for 3D as well. :)

Is this a good idea? 3D and 2D are really quite different in their
requirements.

I’m not sure. They are quite different, but as a general multi-media
library, SDL might benefit from it… but it might be better to just
let the devloper use Mesa or D3D directly. There’s so much associated
code with OpenGL that it is almost a waste to add it.
(Though it would be great experience learning OpenGL :slight_smile:

CD-ROM control

As in audio playback? There’s plenty of code around to do this, perhaps
you should make this a separate library?

Perhaps. It might be nice to have it right there though. :slight_smile:

Joystick/Gamepad input

Cool! Might be a good idea to look at the various other attempts at this,
cos it seems very hard to get ‘right’->DirectInput, InputSprockets etc…

Yeah, I’m not even going to start work on this until I have a firm idea
of how to do it cleanly. Any ideas?
When are the force feedback joysticks going to be supported on Linux? grin
I wouldn’t have thought of it until I put my hand around a joystick shaped
lightsaber. :slight_smile:

See ya!
-Sam Lantinga (slouken at devolution.com)–
Author of Simple DirectMedia Layer -
http://www.devolution.com/~slouken/projects/SDL/

CD-ROM control

Can you be more specific as to what you want to do here?

I’m only taking a crazy wild guess here, but how about Play, Stop,
Forward, Reverse, Switch Track, Notify, Eject?

Would that be CD-audio control? Or perhaps just CD control? I wouldn’t
call it CD-ROM control… :slight_smile:

Hey, let’s not jump on the fellow for not using the most precise term
available…

Maybe a hook to the mixer, too, to set CD volume control. But that might
be going too far…

Yeah, this is dangerously close to getting emacs disease…

BTW, maybe we should add a web browser? a File System? a complete
version of DOOM which runs when the user sits on the keyboard and moves
the mouse? :slight_smile:

Both CD Audio control and mixer controls are things that are
non-standard across operating systems, and requires a standardized
interface. (And, quite easy to implement, too.) It sounds like it’s
right up SDL’s alley!

Now my cross-platform games can have CD audio support, too.

-Chuck

I checked out the GGI web page, and it looks ‘respectable’.

The main thing being the lack of a need of root privs.

The idea is sound. The implementation needs work.

I think that Mesa handles the GL part quite well, and is already very
portable.

Leave the 3D to Mesa, and the 2D stuff to SDL.

I agree. :slight_smile: My eyes were getting too big for my plate. :slight_smile:

Cool! Might be a good idea to look at the various other attempts at this,
cos it seems very hard to get ‘right’->DirectInput, InputSprockets etc…

Might not be necessary for Linux, from looking at the Maelstrom source,
Sam might not have to go far to find an implementation :slight_smile:

Lucky me. grin

Seriously, handling all the different types of input devices is an almost
impossible project. DirectInput has punted so far as to make a user-loadable
data format for each input type.

There seem to be only a few basic types (not counting feedback devices):

Button
Wheel
Axis

But, the number and meaning of each on an individual device is well,
non-standard. :slight_smile:

See ya!
-Sam Lantinga (slouken at devolution.com)–
Author of Simple DirectMedia Layer -
http://www.devolution.com/~slouken/projects/SDL/

Both CD Audio control and mixer controls are things that are
non-standard across operating systems, and requires a standardized
interface. (And, quite easy to implement, too.) It sounds like it’s
right up SDL’s alley!

Yep! :slight_smile:

Now my cross-platform games can have CD audio support, too.

Yay! That’s the idea. :slight_smile:

(Sorry, I meant CD Audio control, but with some thought of looking at
how data CD tracks are handled)

See ya!
-Sam Lantinga (slouken at devolution.com)–
Author of Simple DirectMedia Layer -
http://www.devolution.com/~slouken/projects/SDL/

Might I add to that that there should be a good number of games which
could be co-released via SDL for MacOS and linux, as many MacOS
programmers are much less anti-open source, FSF etc… and are used to
lower market share than their Luse95 counterparts.

That’s actually one of the incentives of doing a MacOS port of SDL.
I can’t give any details because they aren’t firm yet, but people
are interested. :slight_smile:

NJH: Do you know if GameSprockets is a run-time or devloper library?

See ya!
-Sam Lantinga (slouken at devolution.com)–
Author of Simple DirectMedia Layer -
http://www.devolution.com/~slouken/projects/SDL/

That’s actually one of the incentives of doing a MacOS port of SDL.
I can’t give any details because they aren’t firm yet, but people
are interested. :slight_smile:

Yes, I know… BB talked to you?

NJH: Do you know if GameSprockets is a run-time or devloper library?

It’s a Shared library(like DLL).

The Doco is on the Web.

njhOn Wed, 1 Apr 1998, Sam Lantinga wrote:

There seem to be only a few basic types (not counting feedback devices):

Button
Wheel
Axis

But, the number and meaning of each on an individual device is well,
non-standard. :slight_smile:

What I did on Terminus made things even simpler:

Digital (called Button)
Analog (called Axis)

Where digital is any control that has an on/off state, such as "button 0"
“button 4” “hat 1 up” “hat 6 left”, etc…

Analog is anything that has a range, like any axis or wheel.

The only unfortunate thing is that requires a mapping from a nonsensical
input type to some sort of game function. Somewhere inside Terminus
there’s a controller config:

Axis 0 - Yaw ship
Axis 1 - Pitch ship
Axis 0 (while holding button 1) - Roll ship
Button 0 - Fire weapons

And so on… But take weird controllers, such as the Logitech Cyberman,
or the Spacetec Spaceorb (which each have 6 axes) it looks something like:

Axis 4 - Yaw ship
Axis 5 - Pitch ship
Axis 2 - Roll ship
Axis 0 - Thruster X
Axis 3 - Thruster Z

And so on again… What that means is the game requires a control mapping
for EVERY kind of controller that exists. (Of course simple things like
2-axis n-button joysticks all use the same config, but the exotic ones
need to have custom setups.) I can’t think of doing it any other way.
It’s not hard to package control setups for 10-20 different kinds of
joysticks with my game. And the interface to the code is always the
same, since all it wants is a bunch of numbers in some range, and the
several boolean states.

Somebody play with this idea for a while, and make it good. :wink:

-Chuck

Both CD Audio control and mixer controls are things that are
non-standard across operating systems, and requires a standardized
interface. (And, quite easy to implement, too.) It sounds like it’s
right up SDL’s alley!

Yep! :slight_smile:

Now my cross-platform games can have CD audio support, too.

Yay! That’s the idea. :slight_smile:

Well, the other thing that is non-standard, and becoming VERY popular
lately is networking…

Now, say you have a really cool game (Like Maelstrom), with network
support (like Linux Maelstrom), how much effort do you have to go to to
actually do these things:

  1. Design a protocol that doesn’t have a lag in it, and can be used for
    syncronised game play (save the author from understanding tcp/ip networks)
    (UDP is a MUST for this feature)

  2. Keep the developer from jumping the hurdles of different tcp/ip
    implementations

  3. Allow people to have a (hopefully) working networking implementation,
    so then the author can decide whether it is a bug in the networking or a
    bug in the game core.

Of course, the way this thread is going, you might have to break the
library up into something like this:

libSDL-[graphics implementation].so
libSDL-cd.so
libSDL-joystick.so
libSDL-netplay.so

And then the author figures out which one he/she needs. (Then the
’Microsoft Office Syndrom’ doesn’t byte (ok, ok… bite) the library(s).

(In other words: ‘Flame me!’)

Michael Samuel,

Surf-Net City - Internet Cafe and Internet Service Providers
Phone: +61 3 9593-9977
E-Mail:
WWW: http://www.surfnetcity.com.au/~michael/On Wed, 1 Apr 1998, Sam Lantinga wrote:

Date: Wed, 1 Apr 1998 21:13:50 -0800
From: Sam Lantinga
Reply-To: sdl at surfnetcity.com.au
To: sdl at surfnetcity.com.au
Subject: Re: SDL plans for next release

Well, the other thing that is non-standard, and becoming VERY popular
lately is networking…
Hmmmm, Direct* anyone… How about SoundSprocket style 3d sound sourcing
while we’re at it?

Of course, the way this thread is going, you might have to break the
library up into something like this:

libSDL-[graphics implementation].so
libSDL-draw.so ?
libSDL-cd.so
libSDL-joystick.so
libSDL-input.so (hey what about keyboard, mouse, trackball, spaceorb etc)

libSDL-netplay.so

libSDL-sound.so
libSDL-3dSound.so
libSDL-movies.so
libSDL-endian.so

hmmm, KISS…

What would Linus T. do at this point?(prolly write an OS to support games
:slight_smile:

njhOn Thu, 2 Apr 1998, Michael Samuel wrote:

hmmm, KISS…

What would Linus T. do at this point?(prolly write an OS to support games
:slight_smile:

No, he’d make on big huge pile of code out of it, and access all of it by
calling intr 0x80.

We haven’t violated KISS yet. Organizing libaries by what they do isn’t
such a bad idea.

-Chuck