Feedback?

Sam Lantinga writes:

im curious why you say medium-core game developers? :> just ask
because i prefer raw interface myself, (although I must admit we do
have in house libraries we have developed). I have been a
professional game developer for a quite visible game company for about
3 years now, so i consider myself quite hard-core, and for home
projects (and even work) i still prefer raw interface with no crud :slight_smile:

Sorry, I was differentiating between Medium-core game programmers who
use things like libraries, and Hard-core game programmers who love to
write hardware registers and self-modifying code. :slight_smile:
Of course the distinction is a fuzzy one. :slight_smile:

Iā€™ve worked hard to make SDL proper as crudfree as possible.
In your opinion, have I succeeded?
(We can take this off the mailing list if you like)

honestly I havenā€™t looked into it as much as I would like yet, and
have yet to write a single line of codeā€¦(tuesday is cheap beer night
at a local club and thursday is pool/darts/beer night at another
pub)ā€¦and i slept wednesday nightā€¦and itā€™s semi crunch time at work
so im working long hours there :> i do like hardware registers, true,
but self-modifying code is still a nono for meā€¦im starting a
project at home more to learn than anything, at work iā€™ve been the
rendering/graphics guy, and the tools guy, so i want to broaden my
horizons and try my hand at C++ structuring (UML possibly) and general
game construction in general, since on a team you only do a portion.
i suspect the game im going to write now (at home as a project) will
be a Worms 2/Scorched Earth/Artillery clone (networked of COURSEā€¦my
two main loves in programming are networking and gaming) for X, and
hopefully a win32 (UGH) port wonā€™t be too tough if i choose wisely,
but i want nice FAST scrolling speed (such as worms 2 has) so under
linux i MAY make it run in 640x480 DGAā€¦no such game exists for UN*X
systems in general that I can see, so I want to fill a niche :>

at work im mainly a Playstation programmer btwā€¦current game is
getting quite high profile in the magazines and may do quite well :slight_smile:
doesnā€™t release till spring '99 so we have SOME time still :>

jeff

The Simple DirectMedia Layer is a low level interface abstraction layer
for multimedia programs. As such, it provides the basic portable API
required for building full-screen multimedia applications.

The services it provides include:

Video surface access (2D)
Audio stream access
General event queue

Okay. Now come the $250M question, is that all SDL will ever be? What
do you see as future enhancements to SDL? What could use improvement?
What could be added to the library? What should NOT be added to the
library?

In addition, to allow interesting, portable applications:

API for creation of threads
Basic semaphore mechanism

Always a good thing to have. It would greatly reduce the CPU workload
for games that run a lot of things in the ā€œbackgroundā€ (e.g. sprite
animation on a pinball table). And semaphores are very useful
(crucial?) to clean thread execution.

Simple timer services

Useful to keep gameplay on the same speed on a range of processors.

Windows DIB bitmap file loading
Microsoft WAVE file loading

Since those two are pretty much (sic) standardā€¦

Endian-independent value manipulation

Good for non-Intel machines.

Now, to make this interesting to the average developer, it really helps
to have examples and cool demos to show off what SDL can do, and give the
developer some documentation and useful libraries. Thatā€™s the purpose of
the SDL-demos archive.

Especially the demos and documentation (I did mention that those were a
big factor in my deciding to use SDL, didnā€™t I?). Anyway, more
documentation and demos are always a good thing, I think. The more
additions to SDL-demos, the better.On 31 Jul, Sam Lantinga wrote:

ā€“


| |/ | | | _ | | | mailto:@Knight_Walker |
| / | / / | | http://www.aros.net/~kwalker |
| \ | ___ | | |
| |\ | | / \ | | The Kobran Imperium (801)265-1299 |
|| || || || _____________________________________/

kwalker at aros.net writes:> On 31 Jul, Sam Lantinga wrote:

The Simple DirectMedia Layer is a low level interface abstraction layer
for multimedia programs. As such, it provides the basic portable API
required for building full-screen multimedia applications.

The services it provides include:

Video surface access (2D)
Audio stream access
General event queue

Okay. Now come the $250M question, is that all SDL will ever be? What
do you see as future enhancements to SDL? What could use improvement?
What could be added to the library? What should NOT be added to the
library?

In addition, to allow interesting, portable applications:

API for creation of threads
Basic semaphore mechanism

Always a good thing to have. It would greatly reduce the CPU workload
for games that run a lot of things in the ā€œbackgroundā€ (e.g. sprite
animation on a pinball table). And semaphores are very useful
(crucial?) to clean thread execution.

Simple timer services

Useful to keep gameplay on the same speed on a range of processors.

Windows DIB bitmap file loading
Microsoft WAVE file loading

Since those two are pretty much (sic) standardā€¦

Endian-independent value manipulation

Good for non-Intel machines.

Now, to make this interesting to the average developer, it really helps
to have examples and cool demos to show off what SDL can do, and give the
developer some documentation and useful libraries. Thatā€™s the purpose of
the SDL-demos archive.

Especially the demos and documentation (I did mention that those were a
big factor in my deciding to use SDL, didnā€™t I?). Anyway, more
documentation and demos are always a good thing, I think. The more
additions to SDL-demos, the better.

more documentationā€¦most competent programmers can get by by
Using The Sourceā„¢ and reading headers, ande even though i DO
enjoy that, nice clean good documentation is also very very
appreciated :slight_smile:

j

Okay. Now come the $250M question, is that all SDL will ever be? What
do you see as future enhancements to SDL? What could use improvement?
What could be added to the library? What should NOT be added to the
library?

Future enhancements: ā€¦ speed, probably, and more platforms.

Improvement, I dunnoā€¦ you folks tell me. :slight_smile:

What should be added?
Joystick input.
CD-ROM audio control
MIDI, maybe

What should not be added:
File format loaders
GUI elements
Multiple windows
Networking, probably (though I will probably add a demo library)
3D API

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

Sam Lantinga wrote:

Okay. Now come the $250M question, is that all SDL will ever be?

Future enhancements: ā€¦ speed, probably, and more platforms.

Speed is definitely the most important consideration right now.

Improvement, I dunnoā€¦ you folks tell me. :slight_smile:

What should be added?
Joystick input.
CD-ROM audio control

CD-ROM audio would be most useful for me, but all three of these would be
in-line with what already exists in SDL.> MIDI, maybe

What should not be added:
File format loaders
GUI elements
Multiple windows
Networking, probably (though I will probably add a demo library)
3D API

See ya!
-Sam Lantinga (slouken at devolution.com)

ā€“
Author of Simple DirectMedia Layer -
http://www.devolution.com/~slouken/SDL/

Maybe split up the library into sub-libraries. For example, does the warp demo
need to have sound support linked in?

That way, even if SDL does get bloated, it wonā€™t effect the programs that use
it, as they can customise how much bloat gets linked in :-)On Tue, Aug 04, 1998 at 02:07:20PM -0700, Sam Lantinga wrote:

Okay. Now come the $250M question, is that all SDL will ever be? What
do you see as future enhancements to SDL? What could use improvement?
What could be added to the library? What should NOT be added to the
library?

Future enhancements: ā€¦ speed, probably, and more platforms.

ā€“
ā€“ Michael Samuel

Donā€™t trust anything I say, just give it consideration.

Future enhancements: ā€¦ speed, probably, and more platforms.

Which is one reason I asked about SVGAlib. But from what Iā€™ve seen
(the warp demo) itā€™s plenty fast as it is. Even on my slow-as-tar P120
laptop. As for more platforms, that would be useful. What other
platforms should we consider?

Improvement, I dunnoā€¦ you folks tell me. :slight_smile:

I donā€™t know. Sometimes I think we want too muchā€¦ :slight_smile:

What should be added?
Joystick input.
CD-ROM audio control
MIDI, maybe

Joystick support on my OSā€™s would consist of communicating with the
driver (Which I canā€™t get to work under Linux, damnit!).

Iā€™m working on CD-ROM control (Audio, locking, etc.). I should have
some half-assed code within the next few days to a week.

Midi would be nice, but I know ZIP about it.

What should not be added:
File format loaders
GUI elements
Multiple windows
Networking, probably (though I will probably add a demo library)
3D API

Okay then, could you recommend any good libraries for handling the
above? I know Iā€™d like to display sprites, load different formats (or
load from compressed files like PAK files), handle multiple windows (a
tool bar window and the main window) and a decend 3D API (Iā€™m looking
into finding a 3D engine that I can port to SDL or something).On 4 Aug, Sam Lantinga wrote:

ā€“


| |/ | | | _ | | | mailto:@Knight_Walker |
| / | / / | | http://www.aros.net/~kwalker |
| \ | ___ | | |
| |\ | | / \ | | The Kobran Imperium (801)265-1299 |
|| || || || _____________________________________/

Maybe split up the library into sub-libraries. For example, does the warp demo
need to have sound support linked in?

Iā€™m not sure I like that idea. Sam is working very hard to make sure
SDL does not get bloated, and as it is now, the libSDLx11.so.0.7 on my
machine is only 134k. Frankly I was surprised how much it does for how
small that library is.

That way, even if SDL does get bloated, it wonā€™t effect the programs that use
it, as they can customise how much bloat gets linked in :slight_smile:

I recently tried to compile FreeCiv (Civilization II clone for X11). I
had to fiddle with the Makefile and try to find out what functions
belonged in which library for over an hour before I could get it
compile. the ā€˜configureā€™ script should have done this but didnā€™t. Iā€™m
still not sure why, but I donā€™t want to subject people to "hunt-n-peckā€™
to compile my program, since, quite frankly, the majority of Linux
users anymore arenā€™t hackers and canā€™t figure this stuff out on their
own.On 5 Aug, michael at surfnetcity.com.au wrote:

ā€“


| |/ | | | _ | | | mailto:@Knight_Walker |
| / | / / | | http://www.aros.net/~kwalker |
| \ | ___ | | |
| |\ | | / \ | | The Kobran Imperium (801)265-1299 |
|| || || || _____________________________________/

I recently tried to compile FreeCiv (Civilization II clone for X11). I
had to fiddle with the Makefile and try to find out what functions
belonged in which library for over an hour before I could get it
compile. the ā€˜configureā€™ script should have done this but didnā€™t. Iā€™m
still not sure why, but I donā€™t want to subject people to "hunt-n-peckā€™
to compile my program, since, quite frankly, the majority of Linux
users anymore arenā€™t hackers and canā€™t figure this stuff out on their
own.

For every problem, somebody else has thought of an answer :slight_smile:

nm -D <librarie[s]> | grep

Itā€™s really not that hard to find the right library to link against, unless you
donā€™t have a complete development environment.On Wed, Aug 05, 1998 at 04:41:15AM -0600, kwalker at aros.net wrote:

ā€“
ā€“ Michael Samuel

Donā€™t trust anything I say, just give it consideration.

For every problem, somebody else has thought of an answer :slight_smile:

Well, thanks for the info. Iā€™m sure I can use it later.

nm -D <librarie[s]> | grep

Well, the problem was that I didnā€™t know what libraries to look in. I
ended up figuring it out based on the names of the functions and
reading a lot of GCC debugging output.

Itā€™s really not that hard to find the right library to link against, unless you
donā€™t have a complete development environment.

With as many libraries as Iā€™ve got installed, I had BETTER have a
complete environment. And everything else works now.On 6 Aug, michael at surfnetcity.com.au wrote:

ā€“


| |/ | | | _ | | | mailto:@Knight_Walker |
| / | / / | | http://www.aros.net/~kwalker |
| \ | ___ | | |
| |\ | | / \ | | The Kobran Imperium (801)265-1299 |
|| || || || _____________________________________/

Improvement, I dunnoā€¦ you folks tell me. :slight_smile:

I donā€™t know if you consider this GUI elements, but weā€™d probably need
some stuff to draw lines, rectangles, triangles, etc. before we could
use SDL. Last I checked it doesnā€™t have such things, right?

-Mat

ā€œsloukenā€ == Sam Lantinga writes:

slouken> Yep, though you could easily write your own optimized
slouken> versions of those routines on top of SDL.

I just want to call the underlying GUIā€™s routines to do these things
(when it provides them, which is all I care about right now).

-Mat

ā€œsloukenā€ == Sam Lantinga writes:

I just want to call the underlying GUIā€™s routines to do these
things (when it provides them, which is all I care about right
now).

slouken> The problem is often there isnā€™t an underlying GUI to do
slouken> these things.

Right, but like I said I donā€™t care about those cases right now.

slouken> How fast does line drawing and circle filling have to be?

Those arenā€™t so important, but rect fills and scrolling need to be
very fast.

-Mat

ā€œsloukenā€ == Sam Lantinga writes:

slouken> Rect fills I understand. What kind of scrolling?

Maybe scrolling is already done as screen->screen blit?

I mean like if you have a Netscape window and you drag the scroll bar
the window contents change, but donā€™t have to be entirely redrawn
(just the new stuff, the other bits just get copied).

-Mat

Maybe scrolling is already done as screen->screen blit?

I mean like if you have a Netscape window and you drag the scroll bar
the window contents change, but donā€™t have to be entirely redrawn
(just the new stuff, the other bits just get copied).

Yup. The scrolling is done as screen -> screen blits.
Iā€™m not sure if itā€™s accelerated by default. I think you have to set
up a mapping from the video surface to itself to achieve this.

i.e. SDL_MapSurface(screen, screen->format);

Mind if I CC this to the SDL mailing list? It might be useful to others.

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

ā€œsloukenā€ == Sam Lantinga writes:

slouken> Mind if I CC this to the SDL mailing list? It might be
slouken> useful to others.

Go aheadā€¦

-Mat

Okay then, could you recommend any good libraries for handling the
above? I know Iā€™d like to display sprites,

Check out the screenlib example library

load different formats (or load from compressed files like PAK files),

Umā€¦ anyone, anyone? :slight_smile:

handle multiple windows (a tool bar window and the main window)

Nathan, didnā€™t you have a windowing system that you wrote?

decend 3D API (Iā€™m looking into finding a 3D engine that I can port
to SDL or something).

Iā€™m looking at CrystalSpaceā€¦

I gotta get the HElliZER demo up for you guys. :slight_smile:

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

handle multiple windows (a tool bar window and the main window)

Nathan, didnā€™t you have a windowing system that you wrote?

Yeah, it does things like translucent windows and antialiased fonts.
There isnā€™t an SDL port, but if youā€™re interested the code is at:
ftp://ftp.cs.monash.edu.au/users/njh/N/*

It currently works best under SVGAlib, but use an older one(N1.0 would be
good) as the newer ones use objective C which is harder to support.

njh