[Audyssey] Future Of Creating Accessible Games

2008-04-27 Thread Thomas Ward

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

2008-04-27 Thread John Bannick
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

2008-04-27 Thread Ryan Smith
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

2008-04-27 Thread Thomas Ward
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

2008-04-27 Thread Thomas Ward
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

2008-04-29 Thread Thomas Ward
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]