[Audyssey] Future Of Creating Accessible Games
The Future Of Creating Accessible Games by Thomas Ward April 27, 2008 Earlier this year, in February, I started a special developers list for new and old accessible game developers. A long with the mailing list I have been striving to put together a definitive wiki which contains articles, programming tutorials, and other resource materials for game developers. Not so surprisingly the number one question I am asked is what programming language is best for accessible games? Most of the time I offer up a generic answer like there is this programming language, that programming language, and here is the pros and cons of each. However, I wanted to know the answer to that question myself, and so I began an independent research study on what are the current best programming languages, sdks, and platforms for accessible games. After a good amount of research into such languages as C++, C#, Visual Basic, Java, Python, etc I am ready to share with you my results. In addition to what programming language to use I have been looking into the feasibility of cross platform games and cross platform sdks. Sad to say my results in this matter aren't all that encouraging for any accessible game developer. Truth is that most commercial game companies don't make Native Linux and native Mac OS games, and there are perfectly good reasons why they don't. The same reasons that apply to the mainstream market apply to us in the accessible games market. First, it might be important to state what may or may not be immediately obvious. At a programming level games are completely different from other software applications. The reason is based on the fact that the average game requires a tighter relationship between hardware and software than usual. That is why mainstream PC games keep requiring higher and higher specifications to run. The more advanced the game, the tighter the hardware relationship, the higher the specifications to run it. Here is a very simple example of what I am talking about. In your average everyday Windows application such as Word, notepad, Windows Mail, Internet Explorer, etc there is a very generic way that keyboard control is handled. Normally when you press a key or keys on your keyboard a standard Windows key down event is generated at the top of the Windows event cue, and over time it cycles down through various processes until an application like notepad catches the event and does something with it or discards it. Either way it is a rather generic way to handle keyboard input. Often times the process is handled on first come first served basis, and isn't made for rapid keyboard input. In 1995 Microsoft recognized the standard Windows Event mottle was impractical for Windows PC games so they invented DirectInput. What makes DirectInput special is that unlike with the generic Windows Event mottle DirectInput gives the game developer direct access and control of the user's keyboard. Instead of having to wait for a keyboard event to be generated and passed down layer by layer through the Windows Event cue the state of the keyboard is received almost instantly. IN addition where the standard Window Event cue can only handle a limited number of keys at a time DirectInput allows for the status of the entire keyboard to be polled at once allowing for new and complex keyboard states. Another example of where hardware control is important is sound output. With Windows 95 and later the Windows operating system has enjoyed background sound effects such as startup sounds, shut down sounds, default bells, dings, and so on. All of these sounds are played back using a generic library called Comaudio.dll. While Comaudio.dll is perfectly fine for playing back system sounds it doesn't have enough control over the sound hardware to mix and process game sounds in real time. The way to resolve this issue is to use Microsoft's DirectSound.dll or XAudio2.dll libraries. Both of these libraries are able to gain direct access to your sound card and render virtual 3D audio as well as mix and playback a very large number of sound effects in real time. Such audio support in games would not be possible without direct control of the sound hardware. Second, now that we know why games are different from all other types of software applications we need to know what development kits and tools are required to get the maximum performance out of our computer. At first glance there seams to be all kinds of game development kits such as DirectX, XNA, SDL, Pygame, etc. However, after all my testing there is really only one good development API for accessible games, and it is Microsoft's DirectX SDK. As part of my independent research I wanted to know if the open source SDL project was up to DirectX standards. For those who don't know what SDL is it is an open source game development sdk, similar to DirectX, for Mac, Linux, and Windows. However, after a couple of weeks of testing th
[Audyssey] Future Of Creating Accessible Games
Thomas, Your article is great! I'm printing it out right now so it doesn't get lost somewhere in electronic land. Your summaries of the various APIs are especially useful to a developer. Your speech results are especially timely as I'm currently looking into how to make our own speech better. For a coding language, I'm going to stay with Java for our stuff because: 1. It's much easier that C++. I shifted from C++ to Java precisely because the time it takes to code and maintain apps is the single most important factor in actually getting something out. 2. Our small company specializes in simpler games which don't use the more sophisticated input devices such as joysticks, wheels, force feedback, etc. 3. We already have a large body of Java code that lets us build stuff really fast and reliably. However, you do make a compelling argument for C++. And I certainly agree that your results suggest it is the right choice for a lot of independent game developers and game development companies. Thanks for sharing the results of what must have been a whole lot of hard work. John Bannick CTO 7-128 Software --- Gamers mailing list __ Gamers@audyssey.org 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]
Re: [Audyssey] Future Of Creating Accessible Games
Hi, Very Interesting. I was wondering how good AppleScript would be for making audiogames, as it's extremely easy to learn, it's almost like talking... --- Gamers mailing list __ Gamers@audyssey.org 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]
Re: [Audyssey] Future Of Creating Accessible Games
Hi Ryan, I don't know. I've never tried it, but I imagine Apple Script wouldn't be all that good an option for writing accessible games. As I pointed out in my article SDL for Mac is not an especially powerful game programming API. Especially, when it is compared directly with what DirectX has to offer for XBox and Windows games. The lack of a good API like DirectX on the Mac is in large part what is holding Mac OS back. The Cider project for Mac is a game emulator for Mac that can run native Windows DirectX and Windows PC games on the Mac which for now seams to be the only solution to having good games at all on the Mac. This problem is true for both Mainstream and accessible game titles. If gaming is your thing the Mac isn't where the gold is. Cheers. Ryan Smith wrote: > Hi, > Very Interesting. I was wondering how good AppleScript would be for > making audiogames, as it's extremely easy to learn, it's almost like > talking... > > --- > Gamers mailing list __ Gamers@audyssey.org > 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 __ Gamers@audyssey.org 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]
Re: [Audyssey] Future Of Creating Accessible Games
Hi John, One thing I should have mentioned is I had rather high standards for what both the language and API could do. I had in mind games similar to Gear Wars, Doom III, Halo, Nascar Thunder, etc that are the rave of the mainstream market. I was attempting to compare accessible games on a one on one feature list with mainstream games. Things like virtual 3D audio, force feedback controllers, high quality text to speech, etc. In that light C++ was the one and only language that met those demands. Obviously, since most of your games are word and puzzle type games most of the things I was looking for like joysticks, virtual 3D audio, etc doesn't apply specifically to my testing. The 7128 and Kitchens Inc type of game should be able to be created in anything from VB 6, to Java, to Python, etc. They don't require the sorts of things I was looking for. In your own special case if you want to improve speech my only suggestion is to buy the Sapi 5 SDK from Cloud Garden. I've tinkered with the demo for the Java Sapi 5 SDK, and it works, but was too much of an investment for me. I could get equal support from C++, VB, or C# for free. John Bannick wrote: > Thomas, > > Your article is great! > I'm printing it out right now so it doesn't get lost somewhere in > electronic land. > > Your summaries of the various APIs are especially useful to a developer. > Your speech results are especially timely as I'm currently looking into how > to make our own speech better. > > For a coding language, I'm going to stay with Java for our stuff because: > > 1. It's much easier that C++. I shifted from C++ to Java precisely because > the time it takes to code and maintain apps is the single most important > factor in actually getting something out. > > 2. Our small company specializes in simpler games which don't use the more > sophisticated input devices such as joysticks, wheels, force feedback, etc. > > 3. We already have a large body of Java code that lets us build stuff > really fast and reliably. > > However, you do make a compelling argument for C++. > > And I certainly agree that your results suggest it is the right choice for > a lot of independent game developers and game development companies. > > Thanks for sharing the results of what must have been a whole lot of hard > work. > > John Bannick > CTO > 7-128 Software > > > --- > Gamers mailing list __ Gamers@audyssey.org > 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 __ Gamers@audyssey.org 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]
Re: [Audyssey] Future Of Creating Accessible Games
Hi Willem, Yeah, it took me about six months of solid testing and research to come up with those findings. The main reason I got started was when Microsoft announced in Auggust 2007 that they were going to drop support for Managed DirectX. That obviously was going to be a major problem for me personally since I had a handfull of USA Games products under development using the very technologies they were about to drop. Of course they introduced XNA Studio, but a quick look into that showed not only was it unaccessible from a programming standpoint but it was specifically geared for the XBox 360. So that pretty much ruled .Net stuff out as a viable gaming platform for USA Games products. Then, I tried Java, Python, etc and concluded they just didn't have what it takes to produce anything really high quality. Yeah, as a language I like Java, but as a gaming platform it has a long ways to go before it will compete with commercial game quality stuff. I finally, reluctantly, returned to C++ and found everything I was looking for. Support for Sapi 5, solid reliable support for DirectX, support for game controllers, fast game exicution, the works. It was all and all well suited for my Genesis 3D engine which I want to produce and maintain as long as possible without having to do major rewrites everytime Microsoft gets a new idea up their butt. I found most of these new fangled changes are localized to .Net stuff while the core C++ stuff remains good for many years. Eventually C++ developers will have to switch from DirectSound to XAudio2, but it is not a change that will be all that critical until the industry standard is DirectX 10 which is only supported on Vista and above. Since XP is still Microsoft's most widely used OS DirectX 9.0C will remain industry standard for a few years to come. Willem wrote: > Wow Tom that is an excelent article! I can see you have put a lot of > work and effort into it. > > Not only is your article informative about the programming of > accessible games, but you also summed up the biggest strengths and > weaknesses of programming languages like java and vb6, different sound > libraries and making an accessible program in lesser used opperating > systems. I've been asking various people about programming and the > pro's and cons of opperating systems, as I am learning to program and > I'm not completely happy with java. Your article confirmed some of the > things my friends told me and teached me a lot more. I think it will > serve as a guideline for me in the future. > > It is a well balanced and well thought out article. > > I think i'll forward this to a few of my friends now. > Thanks a lot > Willem. > > > --- Gamers mailing list __ Gamers@audyssey.org 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]