USA Games News
May 22, 2009
Welcome to the may edition of the USA Games News. As usual we have our
hands full trying to balance time equally between our personal lives as
well as our current USA Games projects. As a result things haven't been
progressing quite as quick as we had hoped, but that is to be expected.
However, things are still progressing more or less smoothly, and we are
hoping to have a release of Mysteries of the Ancients beta 5 in the not
too distant future. I'll discuss that later on in this news letter.
Before we actually discuss our games and other products currently under
development I think we need to start with where we are heading as a game
company and some of the new tools, languages, and other breakthroughs we
are currently working on first. This information will explain more about
where we are with games like Mysteries of the Ancients.
As a lot of you are aware over the passed year we have put a lot of time
and research into different ways to port Genesis 3D from Windows to Mac
OS X and Linux. It is a fairly involved process because the operating
systems are fairly different in design, and those differences have to be
over come by using common tools, libraries, and a common programming
language supported by all of the target platforms. It can certainly be
done as there are a few accessible games such as SoundRTS, the 7-128
games, and a few others are certainly Windows and Mac compatible. That
proves it can certainly be done, but on the other hand I also know the
Genesis Engine is a bit more sophisticated than those games. The Genesis
Engine is designed to be a real time First Person game engine with 3d
audio, true physics modeling, and a full virtual 3d environment.
Porting all of that functionality from Windows to Mac or Linux is
proving to be somewhat difficult to do. We do have options, but it takes
quite a bit of time and testing.
One possible solution, one highly recommended by professional game
developers, is to switch to C++ and use open source solutions such as
SDL, OpenAL, OpenGL, etc. That of course would certainly work, is
probably the best approach, but it would take quite a bit of time to get
everything converted to C++ and those open source solutions. So we kept
Another possibility was to use Java. I've programmed in Java for several
years, know it fairly well, it is well known for cross platform software
development and design, and it looked like a good place to start. As
many of you might recall we initially ported the Genesis 3D Engine to
Java 6 last summer with some mixed results. It worked, but we
encountered various problems at the time and set it aside.
Early this spring we decided to take a look at the Genesis Engine
written in Java again. We ran it on a Linux test box and did quite a bit
of testing, performance tuning, fixed various bugs, and ran it with a
simple test game. Voila, the simple game seamed to work fine both on
Windows and Linux without a lot of issues. It seamed at the time that
the Genesis 3D Engine in Java was stable, worked, and the game was cross
platform. So we decided to give it something bigger and more realistic
to run.. We decided to port Mysteries of the Ancients to the Java based
Genesis Engine with some mixed results.
After we finished the porting process, which didn't take that long to
complete, we found Mysteries of the Ancients beta 5 was a massive
resource hog. When we ran it on a computer with a 3.6 GHZ Pentium
processor and 1 GB of ram Mysteries of the Ancients ran, but it was
using a lot of system resources to run. When I installed the game on an
older laptop with a 1 GHZ processor and 256 MB of ram the game crashed
on startup with memory errors. Still another test on a laptop with a 2
GHZ processor and 512 MB of ram ran, but it would also crash with memory
errors after playing the game through a while. Obviously, the over all
system performance of the game was terrible and something had to be done
about it before releasing anything to the public.
Part of the problem turned out to be the sounds themselves. In the
Windows based version written in C-Sharp I always used sample rates of
44100 KHZ 16 byt mono. While it sounded great when I dropped those
sounds into the Java based version of the game it used a lot of memory
and performance took a massive hit. When I converted the sounds to 22500
KHZ instead of 44100 KHZ it made a huge improvement in over all
performance. However, I am aware the game is still using too many system
resources to run. One of the things I am doing now is looking for
bottlenecks and areas of the game engine that can be cleaned up to run
faster, lighter, and smoother.
One area that has required lots of performance tuning is audio
management. It is largely based on the Java Sound API, and from our
initial testing it can't handle as many real time sound effects at once
as DirectX. For the most part it is not a big deal, but to solve that
particular issue we have had to rewrite a fair amount of code to unload
any sounds that currently are not being used to save system memory.
Basically, only load and use the sounds required for the items and
enemies in the room plus any specific player sound effects. This is a
bit time consuming, but when we are done I think most low memory issues
will go away. It isn't something an end user is likely to notice, and it
won't detract from the over all gaming experience.
For example, let us assume a gamer decides to turn background music off
in a game. Well, the music file is no longer needed so the Genesis
Engine will unload it from memory freeing up x amount of memory for
something else. It isn't something a gamer would necessarily notice, but
it will dramatically improve over all proformence and system resources
by not waisting memory and processor power on unnecessary sounds and music.
Bottom line, I think the Java based Genesis 3D Engine shows serious
promise as our next generation cross platform game engine. However,
until we finish debugging it and release a public test release of an
actual game using it we won't know how successful it is going to be. We
have high hopes that it will be the answer we seek for producing
Windows, Mac, and Linux titles, but only time and public testing will tell.
Mysteries of the Ancients
I think the last section of this news letter pretty much covered all the
major issues with Mysteries of the Ancients. Basically we hope to
release a cross platform version of the game written in Java 6 that will
run equally on Mac OS X, Linux, and Windows. WE are coming up on a
public release for beta 5 soon, but most of the delays are do to
technical issues with the engine itself. Once we fix some of those
technical issues we plan to release a copy to our private testers for
feedback, testing, and will fix any issues that arise from private
testing. After that
we will release Mysteries of the Ancients beta 5 to the public for more
A couple of weeks ago we asked the Audyssey list about scoring. The
majority of those polled indicated that they would very much like to
keep the scoring feature. Since there are a number of those in favor of
it we will eventually add that into the cross platform engine. For
testing purposes I have elected to keep scoring out of beta 5, but once
we know the Java based engine is stable, runs smoothly, works well, etc
I see no reason not to go ahead and add scoring and arcade mode back
into the game at some point. However, it isn't a top priority at the moment.
In a nutshell we are going to attempt to release a cross platform
version of the game soon. If it succeeds that will be great. If it fails
we still have the Windows release written in C-Sharp that uses DirectX
to fall back on. In either case the final release should be out in the
next couple of months assuming all goes well.
Gamers mailing list __ Gamers@audyssey.org
If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org.
You can make changes or update your subscription via the web, at
All messages are archived and can be searched and read at
If you have any questions or concerns regarding the management of the list,
please send E-mail to gamers-ow...@audyssey.org.