Hi Hayden, Oh, a lot more than that. BGT is basically like its own little API because it wraps a number of libraries such as DirectSound, DirectInput, Sapi, and I'd imagine various other Win32 API functions and libraries as well. He has incorperated Angel Script, a scripting language, into BGT which simplifies matters as you don't need to know C or C++ to use BGT which is a nice addition.
Take PB Streemway for an example. That is the library that drives the audio engine for BGT and it is a rather useful library in of itself. First all the hard work of wrapping DirectSound is done for you. You don't have to mess with all the low-level grunt work like writing custom load functions to load sound files into memory and create a DirectSound buffer. I can say from experience that is truly grunt work in the extreme. However, Philip has gone several steps beyond that. Besides being able to load PCM wav data he can load compress file types such as ogg, supports encripted ogg and wav files, it can open an encripted packfile which he uses to good effect in games like Q9 and Kringle Crash. Right there BGT just through that one library shaves weeks off the time of game development not to mention makes it easier for new developers to get something constructive done, because they don't have to be a very skilled developer to do it. For example, take the act of creating a custom function to load a sound file into memory. This might shock you but DirectSound and XAudio2 aren't able to do this on their own. You have to write a custom function to load your wav, ogg, mp3, wma, file etc and then give it to DirectSound or XAudio2 for mixing and processing. There are tutorials out there on this and the Microsoft platform SDK has documentation on using MMIO to load sound data, but here we are talking about doing hours of research to do something that should be a simple task but is not. Streemway simplifies it for you, because it has a custom function sw_LoadFromFile() that loads files and creates a DirectSound buffer for you. Yay! In other words BGT not only wraps the Windows libraries, but packages everything in one nice toolkit that allows you to skip all the low-level crap like writing your own function to load sound data, and get on to the good stuff like writing the game itself. Who wants to spend time learning how to write a custom function to load a sound file, or cast a standard ascii character string to a unicode wide character string just to pass a line of text to Sapi. Not only is that vboring it ends up just being mindless grunt work just to do something fairly basic. This is why C++ is not a beginners language. It is too low-level and requires too much skill to master quickly. That is also a big reason why C# .NET is becoming the industry standard for general appplication programming for Windows. The .NET Framework, like BGT, wraps everything and you can get on with the business of programming whatever it is you want to write without spending countless hours on low-level grunt work. If you use SlimDX for .NET you don't have to fool with custom functions to load sound data, because the .NET library already includes that basic functionality built in. When dealing with strings the System..String class does all the necessary conversions behind the scenes so you only need to deal with one string type as far as the developer is concerned. If you enter a standard ascii string like "Hello world!" the .NET Framework is nice enough to convert it to unicode for you automatically. Another big yay for developers. BGT does something similar as a string is simply a string of text, and you don't need to get specific about type etc. Cheers! On 11/20/10, Hayden Presley <[email protected]> wrote: > Hi Thomas, > So, Phillip did just basically rap the necessary C ++ founctions? > > Best Regards, > Hayden --- 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].
