You know, I don't even know what the Win32 API is. And I don't really
understand any of the code that is needed to set up the DirectX sound
functions, keyboard input or joystick input. I just cut and pasted that stuff
in and as long as I then know how to use them from the examples from where they
came, well as you can see from my games, it works.
I don't know if this is a good example or not, but, one does not need to know
how an internal combustion engine works to drive a car.
----- Original Message -----
Absolutely right. I didn't think about that, but it is none the less
true. I can use a similar example just in comparing say DirectX to
another multimedia API such as SFML.
Even though you might be programming in a language like C++ not all
APIs, (libraries,) are the same. Some are infinitely easier than
others to learn and use. That's why for argument sake I'll quickly
compare DirectX to SFML.
With Microsoft DirectX there is quite a bit you have to do to get it
fully initialized, setup, and ready to use. In DirectSound, for
example, there is no default sound manager you can use to load wav
files into buffers. Instead you pretty much have to create your own
sound manager probably using the CSoundManager class found in the
DXUtils directory as a starting point for a sound manager that loads
and prepares a sound buffer for playback. Anyone new to programming,
and some old programmers, would agree this isn't the most user
friendly way to introduce someone to DirectSound by any means. If that
wasn't bad enough all of the DirectX examples are tied specifically to
the Win32 API which means you have to have a general working knoledge
of Windows Win32 based programs to begin with. That's ok for an old
C++ programmer like me, but it is not ok when trying to teach totally
new programmers how to use an API like DirectX.
Fortunately, there are multimedia libraries such as SFML that are much
easier to program and use. What the developer of SFML did is he made a
simple interface to various other high end APIs such as OpenGL,
OpenAL, and created a window library that creates a basic window using
the operating systems default GUI. Instead of writing several lines of
code to create a Window with the Win32 API you can do it in one line
using the sf::Window::Create() function. Similarly if you want to
create a new audio buffer just call the sf::SoundBuffer::Load()
function. The basic idea here is that the author of the SFML API
understood that something like DirectSound and OpenAL by themselves
would be confusing and complicated to a new programmer, and simplified
it as best as he could. That is why SFML stands for the Simple and
Fast Multimedia Layer.
So as Philip was saying there are vastly different levels of
programming complexity. SFML is pretty user friendly where DirectX is
a vastly more complex API to learn and use. I could probably teach
someone how to use SFML pretty easily, but I couldn't do the same for
DirectX without getting into a bunch of Windos specific WIN32 API
I like Visual Basic 6.0 because I can not C.
Chardon Ohio USA
Gamers mailing list __ Gamers@audyssey.org
If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org.
You can make changes or update your subscription via the web, at
All messages are archived and can be searched and read at
If you have any questions or concerns regarding the management of the list,
please send E-mail to gamers-ow...@audyssey.org.