Hi Jim, Sigh...Yes, but you are comparing apples to oranges here. I was talking about programming a game using the C++ libraries for DirectX, and you are talking about using DirectX 8 using Visual Basic 6. There is a huge difference here in what you need to know to program using DirectX. The reason you find it so easy to program games using DirectX is because Microsoft created a handy little wrapper library called dx8vb.dll which handles all of the low level programming and DirectX programming for you. All you have to do is setup the proper DirectX 8 objects and functions, and your in business. Microsoft did something quite similar for Visual Basic .Net and C# .Net by adding Microsoft.DirectX.dll, Microsoft.DirectX.DirectInput.dll, and Microsoft.DirectX.DirectSound.dll for .Net programmers. Again the actual coding required for DirectX has been simplified for a new programmer using a less complicated language. If you were a C++ programmer you would find a huge world of difference and understand what I'm talking about in my earlier message. For C++ developers there is no handy dx8vb.dll library to handle all of the low level stuff. That's up to you, the programmer, to write some of the low level stuff like creating a class to get the format and size of a wav file so you can then load it into a DirectSound buffer. You may want to create a sound manager class to wrap the DirectSound secondary buffer pointers for easier management etc. It is a totally different ball game than the one you've been playing with Visual Basic 6. As for the Win32 API I believe I've explained this before. It is quite simply all of the major headers and libraries required for programming Windows applications. For example, if you have ever used kernel32.dll for the GetTickCount function then you have used the Win32 API without ever knowing it. Visual Basic 6 does use the Win32 API in most of your day to day programming, but it is often hidden by or wrapped by something else in Visual Basic 6. The bottom line of what I'm saying to you is that the reason you and others find Visual Basic 6 so easy is because Microsoft intentionally simplified everything to a level an average computer user or new programmer can easily understand without too much effort. As Philip said before there are levels of programming ranging from total beginner, where you are, to very advanced where Philip and I am. One can not simply know only Visual Basic, a beginner level language, and speak with any authority of how hard or simple say C++ is or is not with any skill.
HTH On 2/17/10, Jim Kitchen <[email protected]> wrote: > Hi Thomas, > > 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. > > BFN > > ----- Original Message ----- > Hi, > 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 > stuff. > > HTH > > Jim > > I like Visual Basic 6.0 because I can not C. > > [email protected] > http://www.kitchensinc.net > (440) 286-6920 > Chardon Ohio USA > --- > Gamers mailing list __ [email protected] > If you want to leave the list, send E-mail to > [email protected]. > You can make changes or update your subscription via the web, at > http://audyssey.org/mailman/listinfo/gamers_audyssey.org. > All messages are archived and can be searched and read at > http://www.mail-archive.com/[email protected]. > If you have any questions or concerns regarding the management of the list, > please send E-mail to [email protected]. > --- Gamers mailing list __ [email protected] If you want to leave the list, send E-mail to [email protected]. You can make changes or update your subscription via the web, at http://audyssey.org/mailman/listinfo/gamers_audyssey.org. All messages are archived and can be searched and read at http://www.mail-archive.com/[email protected]. If you have any questions or concerns regarding the management of the list, please send E-mail to [email protected].
