Hi everyone,
Over the passed few months many of you have reported to me a problem
with Mysteries of the Ancients where it crashes suddenly and often times
without warning. Some times an error will come up stating that a certain
*.wav file could not be found, DirectX passes an illegal argument
exception, and so on all of which seam to be related to Managed DirectX.
I've confirmed this problem is related to Managed DirectX itself, not my
games, from various sources so it is quite apparent that the Managed
DirectX API for .NET programs needs to be taken out of the game and be
replaced with something else much more stable and reliable. I agree that
this should be done before Mysteries of the Ancients 1.0 is released.
Obviously this will take some time, but there are various options and
alternatives open to me at this point.
There is a somewhat short term solution I could use where I simply
upgrade the existing Genesis Engine written in C# .NET with alternative
sound and input APIs. Just off the top of my head there is
FMOD,Earclang, the XNA Framework, and SlimDX just to name a few options
here. While upgrading the engine to use one or more of these APIs
wouldn't take too long I do wonder if that is the better solution for
the project long term.
A better long term solution is to simply move away from C# .NET
altogether and begin converting the code over to C++ now. Two of my
projects STFC and USA Raceway are already in the process of being
written in C++, and it would be in my long term interests to go ahead
and switch the Genesis Engine and Mysteries of the Ancients to c++ now
rather than wait to do it later on.
For one thing I've been in the process of converting the Genesis Engine
over to C++ anyway as well as some on going projects like the new STFC
and USA Raceway. Rather than go through the trouble of removing Managed
DirectX from the .NET based engine, upgrading it for this one game, it
makes more practical sense to save myself the time and work by
completing the C++ version of the Genesis Engine. Once that task is
completed I could conceivably produce a better more stable version of
Mysteries of the Ancients by using the newer and hopefully better C++
based game engine.
Another reason why I think Mysteries of the Ancients should be converted
to C++ has to do with long term technical support on my end of things.
Ever since I began releasing games based on Microsoft's .NET technology
my number one technical support issue has been related to downloading,
installing, and upgrading the various .NET components you need such as
the .NET Framework and Managed DirectX. Were i to switch to C++ I could
save both you and I a lot of work downloading, installing, and upgrading
libraries as I would primarily use standard Windows libraries that would
be found on any XP, Vista, or Windows 7 system. You should be able to
just install and go without wondering if you have the absolutely latest
DirectX or .NET Framework on your system. I think this is a much better
user friendly setup and hopefully would require a lot less tech support
from me.
Those are just some of the advantages of switching to C++ now. Others
would include better system performance, better security, a wider
availability of game related APIs, etc. Basically, C++ can't be beat
when it comes to game programming, and now is clearly the time to
strongly consider using it for this project as well as my on going and
pending projects.
The one question I know many of you are asking is, "how long will all of
this take?"
That is a difficult question to answer. Anything I would say here would
be simply a guess at best. Do to the fact C# .NET is a C-Style language
it obviously has a lot in common with C++, and much of the code could be
converted pretty easily from C# to C++. That would obviously save time.
Still there would be quite a lot of manual coding by hand to fully
convert the engine from one language to the other. How long that would
actually take is anyone's guess. However, if I had to make an educated
guess say three or four months for the conversion process if everything
goes well.
Anyway, the point I want to make is that there are lots of ways of
resolving our Managed DirectX issue. In the short term I certainly could
upgrade the .NET based Genesis Engine, finish Mysteries of the Ancients,
and have 1.0 out fairly quickly. However, I believe the long term
solution, converting the game to C++, is the better solution. The
advantages of converting the game to C++ far out way those of simply
upgrading the current .NET engine and releasing it. While it takes
longer it is ultimately what i feel I should do.
So for those of you who are in a rush to get this game please be patient
and understand I'm only doing this for your best interests. I'd much
rather take a few extra months developing this game if it is going to be
easier to install, is more stable, and a better product rather than
doing the quick and easy thing. As they say good things come to those
who wait.
Sincerely,
Thomas Ward
President of USA Games Interactive
http://www.usagamesinteractive.com
---
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
http://audyssey.org/mailman/listinfo/gamers_audyssey.org.
All messages are archived and can be searched and read at
http://www.mail-archive.com/gam...@audyssey.org.
If you have any questions or concerns regarding the management of the list,
please send E-mail to gamers-ow...@audyssey.org.