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 should. 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 injury. 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 development. Cheers! --- 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://firstname.lastname@example.org. If you have any questions or concerns regarding the management of the list, please send E-mail to gamers-ow...@audyssey.org.