Hi Tom,
Converting your code to C++ could take even longer than a few months. While
C#.NET is a C-style language, there are a lot of things you will do in C++
that you will not do in .NET. While it's entirely possible to convert your
code, it's not just a matter of hitting "convert". Even from VB to C# is a
lot of work.
SlimDX is extremely stable, and actually has more performance improvements
over MDX. The developers have ran numerous tests to make sure SlimDX is not
resource intensive and it has been proven to run a lot quicker than MDX. The
performance improvement you're talking about between C++and C# isn't big
enough to be noticeable by the average gamer. While C++ is a good language,
converting code isn't ideal since you're not coding it from the ground up in
C++, and as you probably guessed that can lead to missing critical points
where memory must be freed and stray pointers cleaned up. I think you've
already converted a project over to Java before which took a lot of your
time. In the interests of getting the project done, I say you should upgrade
to SlimDX (it's not difficult to do ever since they refactored the library,)
find an affordable solution to secure your .NET code (Email me offlist if
you'd like assistance,) and release it. The extra money you spend to secure
your .NET code will be well worth the extra months it will take to convert
your code to C++.
I do agree that C++ should be a language of choice for new development. I am
also getting sick of the headakes involved with .NET; it's a good language,
but in the end it is too version-specific. I find it so ironic that
Microsoft released the .NET language, and then dropped support for the only
interface it had to DirectX using .NET. It seems like even to Microsoft,
.NET is just a "wrapper" language.
Munawar A. Bijani
--------------------------------------------------
From: "Thomas Ward" <[email protected]>
Sent: Saturday, December 12, 2009 8:39 PM
To: "Gamers Discussion list" <[email protected]>
Subject: [Audyssey] Important MOTA Announcement
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 __ [email protected]
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 __ [email protected]
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].