开发ms smartphone 游戏

开发ms smartphone 游戏

ID:20112614

大小:60.00 KB

页数:5页

时间:2018-10-08

开发ms smartphone 游戏_第1页
开发ms smartphone 游戏_第2页
开发ms smartphone 游戏_第3页
开发ms smartphone 游戏_第4页
开发ms smartphone 游戏_第5页
资源描述:

《开发ms smartphone 游戏》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、开发MSSmartphone游戏  适用于:  MicrosoftSmartphone2002软件摘要  概要介绍MicrosoftSmartphone2002软件的游戏开发并提供一些相关技巧。游戏市场概述  伴随着新的Microsoft®obilePlay1,一个包含国际象棋、跳棋、纸牌、锄大地、军棋和黑白棋等多人游戏的在线游戏包XenGames(英文)InterstellarFlames,一款让用户驾驶战斗机保卫地球的动作游戏TerraMobile-iobox(英文)Defender以及其他将具有无线功能的游戏  游戏开发工作和开发

2、出的游戏的质量很大程度上取决于目标平台的性能以及可用的游戏引擎。除了Smartphone软件开发工具包中的API以外,预计还会有以下游戏引擎可供使用:  Fathammer的X-Forge三维游戏引擎(英文)  Tao'sGroup的多媒体Java(J2MEMIDP)平台(英文)  AmigaAnyartphone用户的引人入胜的游戏体验。编写高效的游戏  为了深入了解如何编写高效的游戏,我们请教了SvenMyhre。SvenMyhre是AmazingGames(英文)的CEO,同时也是一名游戏开发人员。  手持设备用户和开发人员中间普

3、遍存在一个错误概念,即现在的ARM处理器与同一速度级别的Pentium处理器功能相当,但ARM处理器并未很好地体现出这一点。一个早期的Pentium处理器就可以胜过当前基于ARM的所有Smartphone和PocketPC,这是由处理器自身及其支持系统决定的。  Pentium处理器具有超标量体系结构(能够在一个时钟周期内执行多条指令),有五个并行执行单元和一个集成的浮点运算单元。一般情况下,大多数以Pentium处理器为核心构建的PC都有一个内部L1缓存和一个大型外部L2缓存。  当前基于ARM的Hz、16位的总线最多只能为33-MHz的AR

4、M处理器提供足够的代码指令以使其保持全速运行,这其中还不包括您需要处理的数据。为了解决这个问题,大多数ARM处理器都包含一个指令缓存和一个数据缓存,通常这两个缓存的大小均为8Kb,有些大的可以达到32Kb。只要缓存中出现请求的代码指令或数据,CPU就能以全速直接从缓存中获得它们,而不必经过缓慢的内存总线。而一旦需要访问尚未加载到缓存中的代码和数据,您就会切换回<33MHz(假定总线为66MHz、16位)的速度。实际上,将一个132MHzARM处理器的速度降低为2MHz是相当容易的。只需要采用一种效率非常低的方式来组织数据,使缓存失去作用就

5、可以实现这个目的。  即便是这样,也比您使用错误数据类型和低效率编码的工作速度要快。执行大量除法运算,或者滥用浮点数据类型,将使CPU为达到每秒20万条代码指令的速度而筋疲力竭。内存访问和带宽  Smartphone可以配备各种基于ARM的处理器,每一种处理器的内存访问开销都不同。但可以肯定的是,由于缓存容量太小、存储总线速度太慢,因此您无法忽略这个问题。  比如,您的处理器运行速度为132MHz,内存总线为16位、运行速度为66MHz。每次读取一个尚未到达处理器缓存中的字节时,处理器都要先填充一整条缓存线。一条缓存线可能是16个字(在ARM体

6、系结构中,一个字相当于32位或4字节),也就是说一条缓存线为16*4=64字节。由于您的内存总线是16位的,因此在操作结束之前它将被占用32个周期,而且更糟的是,由于总线运行的速度只有处理器的一半,所以处理器将在您获得请求的一个字节之前延迟64个周期。因此,要确保值得花时间去等待填充缓存线。同样,还要确保您的内存尽可能紧密,同时还要检查内存访问模式,以判断是否可以调整结构以使运行效率更高。如果您需要定期访问某一结构中的一个数据成员并要处理大量这样的结构,则请您考虑将这个特殊的数据成员移到它自己的数组中。  基于同样的原因,应该尽可能使用字节(8

7、位)或双字节(16位),这是因为ARM处理器在从内存到寄存器加载信息的过程中,可以将无符号和有符号的字节和双字节扩展为字。不过,在将有符号值从寄存器存储到字节或双字节的内存位置时,编译器将生成两条额外的移位指令,以确保即使由于寄存器中的值过大而无法保存在指定的内存位置,该值也能保留其符号位。在ARM上,其中一条移位指令可能不需要任何系统开销(几乎每一条常规指令都可以与一条移位指令配对),这取决于编译器的效率。这是您在处理内部循环时应该了解的一条信息。每次使用单字节或双字节的变量时,都要确保尽可能使用无符号的数据类型。内存管理器  您可能已经对此

8、有所了解,但是一般的内存管理器和函数,如malloc、realloc和nealloc的一种包装),速度都很慢。您通常需要预先分配所需的全部内存,并使用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。