尽管XNA 3.1吸引了我,但我已经尝试了两者,因为它能够轻松地喷出代码,而不必担心内存和垃圾清理以及所有棘手的废话。您可以编写代码的有趣部分(如果多数民众赞成甚至存在:D)。但是XNA限制了我,因为我无法将使用它编写的任何内容移植到Linux或Mac OSX,即使这样,想要玩我的游戏的人也必须下载.NET 3.5可再发行组件和XNA 3.1可再发行组件,这根本不会发生。我应该可以在那里放一些DLL,而不是让游戏玩家上网并下载东西。即使那样,由于整个XNA的“用于游戏的一个文件”默认策略,随着时间的流逝,代码仍将变得一团糟。
您认为哪个更好?
最佳答案
确实,这将取决于您对C++的经验水平,以及您是否真的认为无法移植代码是一个大问题。至于内存管理的东西...
当您使用C++ 0x标准中的一些新功能(例如shared_ptr和unique_ptr,lambdas等)时,SDL变得容易得多。即使是SDL中需要原始指针的内容,也可以使用,只需使用.get()在智能指针上发挥作用,您的生活变得更加轻松。
简而言之:擅长C++,如果您真的对轻松将游戏移植到其他系统感兴趣,那么我会选择SDL。如果您只真正了解C#并涉足C++,并且仅将游戏安装在Windows和Xbox上并不是什么大问题,那么绝对可以使用XNA。
关于c# - XNA 3.1与SDL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4141213/