USA Games News

Aug. 20, 2008

Introduction

Greetings gamers,
Welcome to another friendly USA Games news letter. This one really is a 
lot more up beat and positive then the passed two or three news letters. 
Also we have some good news to release this time so stay tuned.
Before I actually get into the topic of our games I'd like to let 
everyone know that my wife and I are now moved back into our apartment 
and are finally setup again. I have all of my computers back up and 
running, and as a result I have a Windows XP, Windows Vista, and Ubuntu 
Linux 8.04 computer to do development and testing on our products with. 
This is very good as our new game engine we are working on is now being 
designed to be multi-platform supporting Mac, Linux, and Windows. It 
also may eventually be possible to port our games to cell phones and 
other mobile devices with a compatible Java 6 runtime environment.
Yeah, you heard that right. We have finally decided to adopt Java 6 as 
our new programming language and API for all of our new games. The 
reason is that we converted one of our games to use SDL.net for C-sharp, 
and decided it wasn't good enough for our needs. While SDL.net was a 
fairly decent programming API we wanted all the power of DirectX. We 
discovered Java's J3D graphics and audio API fit our needs perfectly. It 
is multi-platform, renders equal 3D audio support on all platforms, and 
I already know Java fairly well so the switch isn't all that big an 
issue for me.
Obviously, with the change in language and API we will go back to using 
pre-recorded speech for the majority of our games. While there is a Java 
sdk for Sapi 5 it is pretty expensive, and of course is not 
multi-platform. Besides that, while we were supporting Sapi in 
Montezuma's Revenge we got a lot of technical support issues with Sapi. 
In many cases the end users Sapi broke for whatever reason, and it had 
to be fixed to play our games. We feel just dropping Sapi will add 
greater stability and replayability to our games long term as well as 
not tie the game to a proprietary Windows technology.
With all that said let us get on with the news we have for you today.

Tomb Hunter
Mysteries of the Ancients

We are happy to announce despite the disruptions to our programming 
schedule our replacement game for Montezuma's Revenge, Mysteries of the 
Ancients, is back in active development. Over the passed two weeks we 
have been working hard on translating our C-code from C-Sharp to Java, 
and that process is going very well. Actually, it is going  better than 
expected. One reason we can account for this very fast translation 
process is that Java and C-Sharp are very similar in a lot of ways. They 
both use the same lexical and syntactical structure, use the same 
variable declarations, and sometimes similar functions and class names. 
As a result some parts of the game code just need a few changes here and 
there while others more language specific need to be rewritten. In any 
case it is going faster than I had first anticipated.
The programming language isn't the only thing we have upgraded in this 
new version. We also have done a massive sound upgrade to the game, and 
it sounds, well, a lot more realistic than ever. We have updated the 
background ambiance, character effects, footstep sounds, and several 
other sound effects. Some sounds we have digitally remastered to sound 
better. All and all we have done an excellent job on giving the game all 
new audio effects.
In addition we have redesigned the game somewhat, and given it a more 
Tomb Raider style make over while preserving its original side-scroller 
format. In addition to swords Angela Carter will be able to pick up 
various firearms such as a Browning 9MM pistol, 357 Magnum, 12 gage 
shotgun, and an Uzi. As well as weapons Angela will be able to collect 
various items such as: diamonds, emeralds, rubies, sapphires, gold coins,
ancient scrolls, healing potions, and torches to light her way.
The enemies in this new side-scroller have also undergone an upgrade as 
well. The skulls are now undead skeleton warriors armed with bow and 
arrows. Some of the skeletons are, however,  undead priests that are 
able to throw fire balls. In addition to the skeletons there will be 
plenty of rattle snakes and gray wolves inside the ancient ruins to 
avoid or kill.
New and deadlier enemies aren't your only obstacle to face. There are 
several new traps to avoid such as: poison darts, chasms to jump over, 
fire pits, spikes, and rolling boulders to name a few deadly traps you 
will have to avoid a long the way.
As far as a schedule we are hoping to have a beta out by Christmas, but 
we can't promise a December 25 dead line. Obviously this year has proven 
difficult enough to keep a schedule for our games do to people and 
events out of our control. Not only that, much of that time was spent on 
researching and testing alternatives to Microsoft DirectX and the .NET 
Framework. While both technologies are fairly good for Windows only 
users I am not, strictly speaking, a Windows only user.
Over the passed year I have really began exploring the possibility of 
using Apple Mac OS or Linux as my primary operating system, and there 
are elements of both that make them good alternatives to the Windows 
platform. Not the least is the screen reading technologies for both are 
cost effective on a small budget, and I don't have to worry about the 
Vista style product activation that I despised from the beginning.
I personally feel it is slightly unfair to tie a product specifically to 
Windows for those power users, like myself, who are decidedly unhappy 
with the way Microsoft and other companies  are going with all the 
anti-piracy and security measures to force the average legal Windows 
user into paying for the same software media multiple times if they have 
more than one computer in there home or office. In my case I do feel 
there does need to be a line drawn somewhere that states how far I am 
personally willing to spend in support of all the digital rights 
management that is being heavily promoted by the recording industry 
Association of America, Microsoft, and the film industry that have 
pushed for tighter control over our personal use of digital media we 
have legally purchased. I could probably rant for hours on the evils of 
DRM technology, and why as users we need to be more vocal in trying to 
protect our fair use rights to the media we have purchased. However, DRM 
technology is a controversial subject, and one I will not go into at 
length here.

Finally, more and more people are getting into mobile devices such as 
cell phones, PDAs, and other hand held devices with microcomputers built 
into them. As a result of the boom in mobile technologies more and more 
game junkies are becoming interested in taking there favorite games on 
the road with them on their cell phone, PDA, or laptop.
As a result game companies, especially adaptive game companies such as 
USA Games, has to take such trends somewhat seriously and begin creating 
games that may eventually be able to be ported to these devices. Even 
mainstream game companies like Edos Interactive have began seeing this 
fact and have released Tomb Raider Legend Mobile for mobile devices. A 
language like Java can do this with only miner changes in some cases. 
Which is a good reason to walk away from more proprietary Windows only 
APIs and languages.

USA Raceway

Another game that has seen much more active development of late is USA 
Raceway. Like Mysteries of the Ancients it is now being converted over 
to pure Java. Besides those reasons mentioned earlier in this news 
letter there are some other good reasons to do this for Raceway.
One of the things I have noticed between the time James North originally 
announced his plans for Raceway, and the time I actually began creating 
this game two very decent racing games have been released for the 
accessible games community. Both Topspeed II and Rail Racer are fairly 
good racing games, and both offers online network play between gamers. I 
can't count how many times I have personally received requests to add 
network game play and one on one racing between Raceway players. Well, 
now it seams you may get your wish.
A few years ago when Raceway was initially scheduled for release 
Microsoft's DirectPlay technology would have certainly been the way to 
go for online networked games. It was a programmer friendly, fairly 
straight forward, API for writing networked games that helped make 
DirectX the defacto game developers API of choice. Then, in 2007 
Microsoft officially announced their intention to drop DirectPlay from 
DirectX leaving developers like myself without a clear API to use for 
online game play that has the simplicity and functionality of 
DirectPlay. With a language like Java such concerns is not a problem.
When the programming language was first released by Sun Micro Systems 
they had intended that Java come packaged with a fully functional, well 
documented, networking API that will work on virtually any operating 
system. Over the years Sun has continued to design and update the core 
networking API, and today it really is the leading API for software 
developers trying to network applications across different operating 
systems and computer platforms. What this means for you and I is that it 
shouldn't be all that difficult to use Java's native networking API to 
build a cross platform independent
racing game where two or more gamers can race together online. 
Obviously, this functionality needs more work, but it is definitely a 
thought for a future addition to Raceway.
With a programming language like Java 6 it is not all that far fetched 
to imagine a instance where you might be able to fire up your Windows 
Mobile phone, PDA, etc connect to a wi-fi connection and play against an 
online player while you are waiting between classes, on your coffee 
break at work, waiting for a doctors appointment, etc. This is truly the 
power of walk away content, multi-platform software, and why so many 
mainstream users are spending so much time on their cell phones, PDAs, 
and other mobile devices. The power of multi-platform software combined 
with a universally excepted networking API really is the only way to go 
if you want to reach the widest number of users, and give them virtually 
endless  choices how to use their software media. It is this kind of 
freedom that digital rights management attempts to control by 
restricting software media you buy to one platform, one computer's 
unique hardware, and forcing you to pay multiple times for the same 
product for every computer or device you plan to use it on.
If you haven't already noticed I am a typical computer geek, and I love 
to think of stuff like this all the time. As a result it isn't that hard 
for me to think of a game like Rail Racer, and take that idea to the 
next level. It already has a great online racing system in place. Why 
not take that idea and make it so Raceway will work on mobile devices, 
PCs, Macs, or whatever device will support it? It isn't that difficult 
an idea to play a game on your mobile  device, save the game, copy the 
save game file to your Windows PC at home, and continue in the race 
exactly where you left off.
Since Raceway is primarily season based, where you play in an actual 
Nascar-like season, you will want to be able to back up and save your 
seasons. You may even wish to be able to transfer them between various 
devices you own such as your mobile phone and your PC. Now, days with 
the way technology is progressing it is getting easier to do that sort 
of thing, and it will make Raceway far better than James North's 
original design by light years.
With that said, there are going to be some drawbacks. If I want to do 
maximum portability over devices it would be better to depend on core 
Java input methods rather than using OS specific input devices such as 
joysticks. I'm probably not going to introduce joysticks, steering 
wheels, initially until the core game is complete and stable. At that 
point we can explore the option of hooking Raceway up to an API such as 
JInput for obtaining force feedback racing wheels, joysticks, game pads, 
and other devices not natively supported by Java. So what I am talking 
about is a lot of work, and time consuming. On the other hand I think it 
will be worth it, because there is a lot of power to be had in walk away 
content you can just drop on a memory card and take it with you on your 
mobile device, or play it on your desktop PC at home.

Summary

USA Games has always strived for perfection and software innovations 
that are rarely seen in the blind gaming community so far. I will admit 
we have not always been timely in getting our products out, and many of 
you have been waiting long enough to see our products come to light. 
However, now that we have selected the technology we plan to use, and 
once Genesis 3D is ported to Java you should begin seeing faster turn 
around times on our games. While Genesis 3D will be more difficult to 
use do to the necessity to self-voice the games without the aid of Sapi 
it will however offer the ability to create games for virtually any 
operating system or device that supports Java 6.
At the time of this news letter the majority of Mac OS users are 
currently running Java 5. It is my hope that Apple will be offering a 
Java 6 upgrade by the time our new Java based games become available. If 
not it may become necessary on my part to recompile the games for the 
Mac platform using a compatible JDK for Mac users. I'm hoping this won't 
be necessary, but time will tell.
As for the games running on Linux we are currently tracking down an 
unusual error where the Linux Java runtime for Ubuntu 8.04 isn't working 
properly. When we test the MOTA Alpha on Windows everything seams to be 
working fine. When i install the Alpha on my Linux system half the time 
the menu keys fail to work. I'm totally clueless as to what is causing 
this error as the code refering to those keyboard commands is straight 
out of the core Java API, and is standard on every Java runtime 
environment out there. I'm currently putting out a report of this 
problem to some mainstream Java developer forums, and hope they can give 
me some ideas to why this might be working incorrectly. It may be the 
version of the JRE I have installed on that system has some bugs in it, 
and I need to update to a newer Java version such as Java 6 update 7. 
Also i can try testing it on other Linux distributions such as Fedora 
and Open Suse for comparison though the Java runtimes should be identical.
In any case there are problems getting everything working as it should 
on Mac, Linux, and Windows, but that is to be expected at this point. 
The new Java based engine I am working on has only been in active 
development for about three weeks, and is obviously still buggy anyway. 
A good portion of the original engine code has been converted to Java, 
but even as close as C-Sharp and Java are to each other in similarity 
there are still things that were easy to miss or overlook when doing the 
conversion process.
For example, when declaring a boolean flag in C-Sharp you would declare 
it like
private bool isKilled = false;
while in Java it would be declared like
private boolean isKilled = false;
which are pretty similar but not exactly the same. As a result it is 
sometimes easy to forget which is which and use a C-Sharp declaration in 
the Java version of the game resulting in a massive compilation error 
that has to be edited and repared by hand.
Other diferences between the languages can be just as easy to overlook. 
So I have had to rethink the way a certain block of code was written, or 
find a better, cleaner, solution to a particular issue. For example, the 
weird bug where you could walk through walls I had in the C-Sharp 
version of the game. Well, that bug reappeared in the Java version of 
MOTA so I took that colision detection code, rewrote that section of 
code from scratch, redesigned how it worked, and now it appears that bug 
is well and truly gone. In the end it turned out I just used a poor 
design to begin with, and I had to tototally rethink the process through 
before I saw the error in my original design. Programming is like that 
sometimes.
A lot of non-programmers think that programming is all about math, or 
knowing how to use this or that programming language. That is the easy 
part. The hard part is actually training yourself to think logically, 
cover every possible condition a certain state the game can be in at 
that time, and then programming your game to deal with those different 
conditions at that current point in time. Often it is the small things 
we take for granted that get overlooked, and then need to be corrected 
when our game behaves in a way that is less than satisfactory or does 
something that is unrealistic.
For example, let us assume you found an old sword, and then are forced 
to climb up a rope to get up to a ledge. Logically speaking, a person is 
going to want to climb up that rope two handed and isn't going to be 
hanging on to a huge and heavy sword as he/she does it. In more modern 
games they offer the ability to ddraw and holster weapons so the main 
character is free to use his or her hands for other tasks such as 
climbing, swimming, hand to hand combat, or moving certain items such as 
a heavy stone door. It is these kinds of logical concidderations a game 
developer has to seriously think about if we want our games to be at all 
somewhat realistic.
So in the end we are working on an all new engine, improved game play, 
and rethinking how our games are logically designed. Improving the games 
internal logic will eventually make a funner and much smoother gaming 
experience for all involved.


---
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]

Reply via email to