XNA在PC上开发,但为Xbox 360devise

我正在和一个好友一起做一个项目,他没有360,也没有钱可以买一个,但是我们希望我们的游戏被提交给XBLIG。 所以现在我们在PC上devise我们的游戏,但是我们正在使用改编的360控制器。 在这个过程中我们需要记住什么,以便我们可以“轻松”地将我们的游戏移植到PC上?

你必须记住,Xbox360的.NET性能远远低于普通台式机(也是它的一小部分!)。

主要有两个原因:加载/命中/存储惩罚(由于CPU / RAM / GPU的架构)和非世代的垃圾收集器。

对于在运行期间导致游戏中出现“暂停”或“冻结”的GC问题,您希望避免任何types的运行时垃圾,因此请小心使用string(例如不要连接),在初始化之后不要分配引用types对象加载(即没有var obj = new MyCoolObject(); ),并要小心与foreach。 我前段时间写了一篇博客文章,其中包括以下几点: http : //nextstopnowhere.wordpress.com/2010/03/26/garbages-out-pools-are-in/

但是无论你做什么,你都必须在Xbox360上进行testing,而且越快越好。

最好的方法是定期在控制台上testing游戏,以检查性能问题或有问题的垃圾收集; 否则在发布游戏之前,您将以漫长的debugging和优化会话结束。

而当移植到Xbox 360时,请检查同行评审恶意清单中指定的所有情况。

似乎没有人提到这一点,但一定要至less每天编译X360的项目。 Xbox只包含.NET(.NET Compact Framework 3.0)的子集,缺less像Tuples,一些集合,可选参数等很多有趣的东西,所以如果你依赖任何一个,意识到你不应该太晚在项目中。