Original Post
No doubt just the subject line could spark heated debate, so let me narrow the context down a little... I am about to embark on a clean-up and rewrite of a "game" I wrote 2 years ago. I wrote the original in C++ 6.0, making use of the MFC library. Graphics were done in OpenGL 1.3. Now, here is my problem. There are a number of things I like about C# -- the easier syntax, the .NET base, the garbage collector, etc... But as far as a high-speed graphics app goes, having to use wrapper calls for all OpenGL calls makes me worry about performance. I also wonder what overhead is incurred by using the Object class instead of void pointers in C++. (Trust me, I would not keep arrays of multiple data types if I had another conceivable alternative.) The current version of my game is or a large scale -- about 200 .CPP source code files, plus headers. So obviously it would be easier to import into a MC++ environment than to do a complete rewrite in C#. But at the same time, I do have a couple intermittent pointer errors that I can't seem to pinpoint, and having a GC would obviously solve that issue. I've read that MC++ creates optimized code that C# does not. But on the other hand I've read there is a redistibutable app (ngen.exe?) that can do a 1-time JIT compile at install time. Allegedly that EXE creates BETTER optimized code, because it is processor-aware. So which language really produces the better code? Let me conclude by saying that time is not an issue. If C# is ultimately the better way to go, I AM willing to recoding 200 source code files. Time is no issue. End performance is. I don't want to recode 200 files into C# and then, at the end of the process, discover I got better performance from C++. Your input would be greatly appreciated.