Hi Philip,

Philip wrote:

We are certainly in agreement here. Unicode conversions, memory
management and all
the other things are certainly a pain which I guess is why we are
writing engines.

My reply:

Yes, in deed. I primarily began writing G3D because I got sick and
tired of the nitty gritty details of C++. If I want to pass a string
of text to Sapi I don't want to have to do a character string
conversion to unicode all the time, or depend on Macros like _TEXT()
to do it either. So what I did is my SpeakMessage() function takes a
standard character string, converts it to a wchar, and then gives it
to Sapi. That saves me from constantly stopping to do that character
conversion myself. The engine does this automatically for me. As it

Philip wrote:

How come you decided to switch from .net to C++? What were your main reasons?

My reply:

Well, I stopped using .net for pretty much the same reasons you gave.
It is too big, constantly being updated, too many extra dependencies,
and security issues on top of it.

For one thing, in 2004 Microsoft made a big todo over the fact DirectX
9.0 ships with Managed DirectX for .net developers. There were a
number of books released around that time like Kickstart DirectX in
C#, a Visual Basic book with similar documentation, and I was pretty
impressed with the .net framework. So I wrote my first game Final
Conflict in .net and had based Raceway, Mysteries of the Ancients, and
other games on the .net and Managed DirectX platform. Then, out of the
blue in 2007 Microsoft suddenly deprecated Managed DirectX, deprecated
DirectSound, DirectPlay, and various other .net libraries I was using
pretty much pulling the rug out from under me. They introduced XNA
Framework for .net, but I soon discovered XAct the tool they use for
packing sound files etc wasn't accessible further adding insult to

On top of that I started out using .net 1.1 in 2003/2004. Back then
the .net framework was big, but not huge. However, between 2003 and
now the .net framework has increased dramatically in size. I remember
a time when the .net framework was about 99 MB, but the last time I
checked the current framework is well over 300 MB. I felt it was
rediculous to force my customers into downloading and installing a
piece of middleware that huge. Similar frameworks like the Java
runtime environment is several times smaller and is just as good as
.net.Perhaps better since Sun officially supports Mac OS, Linux, and
Windows compatibility between the Java runtimes where Mono, the open
source .net framework, isn't completely compatible with the Microsoft
.net framework. This is problematic ffor cross-platform development
using .net.

Finally, what really iced the cake is the issue of having wrappers for
anything and everything. If you wanted to use DirectX you couldn't use
it without some third-party middle ware like Managed DirectX, SlimDX,
etc. This required the end user to not only update his/her copy of
DirectX, but to install those third-party wrappers too. I found out
pretty quick I was constantly getting technical support requests that
STFC, MOTA, etc wasn't working and .net was giving them this or that
runtime error. After some investigation it usually turned out to be an
issue of said  third-party middleware not being installed, or they
installed the .net components in the incorrect order causing something
to break along the way. Major pain in the butt!

If all that wasn't enough to turn me off of .net the entire thing was
totally unsecure. In order to protect myself from crackers I had to
use a tool like Dotfuscator to obfuscate the executable to keep tools
like Reflector from reverse engineering my code. Otherwise any two-bit
pirate in the galaxy could dissasemble my code, turn off the security,
recompile it, and pass cracked copies all over the net. Obviously, i
don't want that.

Plus when it comes to security there is a licensing tool, XHEO,  that
is suppose to be first-rate for .net developers. Well, I tried said
library in my games and did some background research on the tool. Bad,
bad, bad. As it turns out many companies, top programmers, have given
negative reviews for this licensing library. No wonder. A google on
XHEO cracks will turn up all kinds of quick and dirty ways to bypass
XHEO security putting products like Rail Racer at serious risk if
anyone decides to use any of the cracks floating around the internet
for XHEO. Obviously, I took one look at that and said, "no way."

To make a long story short while I think C# .net is easy, I like the
language itself, there are some serious drawbacks that make it less
than ideal. Poor security, the .net framework is too large, too many
dependencies, etc make it impractical for serious software


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.

Reply via email to