A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 3508|回复: 5

非认证的Xbox 360开发者最佳实践

[复制链接]

精华
0
帖子
103
威望
0 点
积分
103 点
种子
5 点
注册时间
2009-12-23
最后登录
2018-6-19
 楼主| 发表于 2010-2-17 14:06  ·  江苏 | 显示全部楼层 |阅读模式
非认证的Xbox 360开发者最佳实践

对为Xbox 360写游戏感兴趣的而没有开发工具的开发者能够行动了。这份文件给出了能用于模拟Xbox 360的软硬件。它同时包括对程序员的一些建议使之能在Xbox 360开发的开始获得领先。


硬件

Xbox 360平台由一颗基于PowerPC的三核心CPU和一颗特制ATI图形处理器组成。这两颗处理器都不是标准硬件中可利用到的。我们建议使用下列系统,用一台PC来模拟Xbox 360:

#Microsoft Windows?XP
#拥有多硬件线程(超线程)或多个独立CPU核心的PC
#支持High Level Shading Language(HLSL)shader model 3.0(可利用到时)的ATI图形卡
#宽屏HDTV监视器


软件

Xbox 360游戏使用Microsoft?Visual Studio??⑾低潮嘈础?box 360 development kit(XDK)同时支持C和C++开发。我们建议使用下列软件以PC来编写Xbox 360代码:

#Microsoft Visual Studio 2005 或 Visual Studio .NET 2003
#Direct3D 9.0 Software Development Kit
#Microsoft Cross-Platform Audio Creation Tool (XACT)


Xbox 360编程推荐

Xbox 360的开发和为其它平台写游戏有很多类似之处,也有少许特别的地方。下面是一个创建Xbox 360游戏的最佳实践列表。

常规编程

#把你的游戏引擎多线程化。单线程游戏只能利用到系统潜在处理能力的三分之一。
  #选择Windows固有的线程API,简单同步。Xbox 360支持类似的API。
  #在Xbox 360上可以使用这样一个多线程体系,用一个线程用于世界更新,另一个线程用于图形处理。多出来的那个CPU核心可以用于音频,解压缩,几何学生成或其它游戏任务。
  #另外一个方式是把多出来的核心和OpenMP一起使用。OpenMP在Visual Studio 2005中被支持。
#确保你的游戏的内存使用在512 MB之内。Xbox 360不能像Windows一样使用硬盘分页。
#小心翼翼地访问内存。对于典型的使用高性能CPU的系统来说,内存反应时间可能是一个重大瓶颈。
  #对L2 cache进行最优化。Xbox 360拥有1MB容量的L2 cache。把RAM看成一个快速的硬件驱动而非无限的。
  #避免使用链表或其它节点在内存上分散的数据结构。避免帧中使用量大的数据结构。尽量使用连续的数据结构,比如数组。
#计算数据胜于装载数据。Xbox 360的CPU是一头数学怪物。跳过大量复杂的计算,避开了代码中一些特殊地方。详细地说,避开了浮点数比较,避开了由一个int转型到或产生出一个float,反之亦然。
#为了更好的性能,请选择Windows固有的函数而非C运行时函数。据个例子,选择ReadFile好过fread。
#在你获得官方Xbox 360开发包前,请推迟底层引擎的调整。过度的优化可能会产生反作用,而另一方面,一旦你获得了开发包,就可以计划花时间在平台的优化上。Xbox 360很强,花时间优化会使你的游戏性能获得巨大的变化。

图形

#关注Direct3D 9.0接口。这个接口窗体是Xbox 360图形API的基础。
#不要对Direct3DX(D3DX)过多依赖。D3DX有效函数没有针对Xbox 360做出调整——几乎总是有很多速度更快的方式能完成这些同样的任务。
#需要支持16:9的屏幕宽高比。需要支持一个大小1280 × 720的最小帧缓冲。
#使用HLSL在shader上。Xbox 360的GPU有一个非常强大的shader体系。利用GPU进行HLSL shader model 3.0编程是一个正确的方法。
#用一个Z-only来建立Z-buffer是一项让Xbox 360工作良好的技术.
#避免使用fixed-function管道。它在Xbox 360中不被支持。
#使用PIX,一个对游戏和图形调整进行性能分析的工具。PIX可以在DirectX SDK中得到。

音频

#使用XACT。XACT在PC和Xbox上都是创建和播放音频内容的首选。
#源料应该在最小采样率为48KHz下被采样。降噪处理,为实时效果做准备。
#XMA是Xbox 360的固有音频格式。 计划着利用到环绕立体声和XMA压缩。

网络/Live

#使用基本的套接字或Winsock来进行网络编程。Xbox Live库仅在与XDK协力时才能普遍使用。
#对于多数游戏,使用UDP作为网络协议更好。
#若计划在你的游戏中使用有声聊天。构建你的网络引擎时就应该想到你发送声音数据应该像其它游戏数据一样好。

内容

#更新你的内容管道成为支持big-endian格式的硬件。基于Intel的PC是little-endian格式的,而Xbox 360是big-endian格式的。为获得更好的性能,我们建议Xbox 360游戏碟上的所有内容都是big-endian格式的。
#确保你的艺术管道支持像顶点压缩,纹理压缩,和三角形剔除等特性。
#考虑到DirectX效果器(DX效果器),一般使用.FX文件。一个改良版本的DX效果器在Xbox 360中被支持。


常规平台编程推荐

开发平台游戏与写PC游戏有很大不同。下面的列表提供了一些制作成功平台游戏的一般性建议,请牢记脑中。
#设计成手柄输入,而不是键盘和鼠标输入。平台玩家按简单的按钮来玩游戏——他们不动鼠标或敲打键盘。
#设计成十英尺体验。使用在电视上易读的字体。使用简单菜单;避免长的卷动列表。
#考虑到在开发中使用电视做为输出设备。PC-to-TV视频转换器会被普遍使用。
#尽量减少装载时间。平台游戏不能安装在硬盘上——它们直接从游戏碟上运行,所以有效地使用游戏碟很重要。规划从光碟到游戏的数据流动,规划好游戏数据的压缩,卸载解压缩放在一个单独的线程中。要考虑到复制数据时避免不必要的搜寻。
#不要假定平台玩家有额外地储存单元或硬盘总是附加在上面地。一个游戏即使那些可分离的驱动设备拿走后也应该有很好的表现方式。
#要知道电视的字幕安全区域——也就是说,避免把UI或文字显示在屏幕边缘。


参考

Xbox 360系统说明书: http://www.xbox.com/en-US/xbox360/factsheet.htm
Xbox 360消费者站点: http://www.xbox360.com/
Visual Studio: http://msdn.microsoft.com/visualc/
DirectX软件开发包: http://msdn.microsoft.com/directx/
XACT for Windows当前是beta版本。你可以使用游客ID:XACTBeta,在http://beta.microsoft.com/申请这个beta版本。
OpenMP: http://www.openmp.org/.

评分

1

查看全部评分

该用户已被禁言

精华
0
帖子
1490
威望
0 点
积分
1604 点
种子
1 点
注册时间
2007-5-25
最后登录
2025-1-25
发表于 2010-2-17 14:14  ·  湖南 | 显示全部楼层
.............................................................................................................................
该用户已被禁言

精华
0
帖子
1490
威望
0 点
积分
1604 点
种子
1 点
注册时间
2007-5-25
最后登录
2025-1-25
发表于 2010-2-17 14:17  ·  湖南 | 显示全部楼层
XACT 在X360上很容易出问题,同样的代码在PC上却很正常

弑神者

潛水者

精华
0
帖子
136012
威望
0 点
积分
146341 点
种子
364 点
注册时间
2008-11-14
最后登录
2025-11-24
发表于 2010-2-17 14:22  ·  辽宁 | 显示全部楼层
太专业的内容,看不明白了。。。

精华
0
帖子
1733
威望
0 点
积分
1758 点
种子
0 点
注册时间
2007-2-9
最后登录
2013-1-3
发表于 2010-2-17 14:27  ·  上海 | 显示全部楼层
看着很专业,但是发这里有啥意义?

精华
0
帖子
1780
威望
0 点
积分
1784 点
种子
97 点
注册时间
2009-9-10
最后登录
2025-11-16
发表于 2010-2-17 17:02  ·  湖北 | 显示全部楼层
lz你这很老了吧,现在还是用xna比较方便。你这应该是360刚出时东西。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2025-11-25 18:52 , Processed in 0.242768 second(s), 18 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部