C++
还是.Net,要看做什么。
.Net做项目,
考虑到XP用户没有装.Net Framework,
需要把.Net Framework打包进安装程序。安装包会比较大,并且安装速度稍慢。这样,用户体验就要差一些。
所以很多流行的免费软件不用.Net。
.Net经常被说成COM的升级版。用COM的软件,发布起来就有点麻烦了。需要做一下DLL注册。而国内用户经常喜欢可以“绿化”的软件,直接拷来就用,连安装都不要了。
C++做的桌面应用,就没这些麻烦。把所有依赖的DLL都放到EXE目录下,就能跑,不需要装重量级的库。(如果用到COM接口的库,还是需要注册一下)
开发游戏,主要用C/C++,和诸如Lua、Python这样的脚本语言。但是游戏开发需要写很多编辑器供策划和美术使用,编辑器使用的技术也就是桌面应用开发的技术。目前这块,.Net和Qt是最流行的;MFC也有使用,但它实在不适合快速开发,用得极少;另外也有使用C++Builder的,只不过C++Builder被宝兰卖给小厂了,没多少影响力,但是用它开发编辑器还是蛮舒服的。
.Net在编辑器开发上的主要问题是,.Net有自己的内存模型,和C++的模型不太一样,调试时容易被坑。游戏引擎肯定是本地代码的,编辑器肯定需要调用引擎代码。实现起来倒不难,不需要把引擎包成.Net的DLL,直接用.Net的C++/CLI来写
游戏引擎肯定是本地代码的,编辑器要调用游戏引擎,游戏引擎一般以dll的形式为引擎提供功能。如果用C#来做,需要把引擎的dll用C++/CLI包装成托管dll。但其实直接用C++/CLI来写编辑器就挺好的,没必要用C#。参考资料看C#的就可以了,
反正都是调用.Net Framework的库,语法上有些不同。不过托管代码和本地代码的内存模型不同,调试起来会遇到坑。