Chinaunix首页 | 论坛 | 博客
  • 博客访问: 397191
  • 博文数量: 466
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-16 13:59
文章分类

全部博文(466)

文章存档

2015年(466)

我的朋友

分类: C/C++

2015-03-16 14:36:51

最近在公司做了几款MTK平台的游戏,通过游戏开发的全过程,了解一些MTK平台的开发环境以及相关知识,这里做个总结。
   由于国内外MTK平台游戏开发资料相对较少,可以作为参考的实例几乎没有,所以我在整个项目的开发过程中采用探索式的开发方法,根据其他平台积累的游戏 开发经验进行项目的研发。游戏是一款益智类游戏。由于是第一次开发该平台上的游戏,游戏内容相对比较简单,但是整体架构完整,这也会为开发更高难度的游戏 打好基础。
   总体上来说,首先需要做技术实现上的准备,熟悉开发环境和编译环境,学习相关的操作系统结构和相应的API,根据以上两点总结开发技术上的难点和要点, 并且给出解决方案;然后再这基础之上进行游戏架构和模块的设计,完成与游戏内容相关的逻辑算法;最后进行软件编码和测试,并生成发布版本。
开发基于MTK平台的软件,首先需要向MTK公司购买开发用SDK包和开发用的手机和相应的开发辅助软件。开发环境我们选择的是比较熟悉的 WindowsXP,由于MTK软件是基于C语言的,而且SDK包中PC模拟环境使用了Microsoft VC++6.0,所以IDE工具选择了VC6.0。生成手机的最终安装文件是通过ADS编译的,脚本语言使用的是Perl,这也是由SDK决定的,因此需 要安装编译工具ADS 1.2和Perl 5.8。烧录工具FlashTools和Debug工具Catcher,都是由MTK厂商提供的,前者主要负责把编译后的文件安装到手机上,后者是用来实 时跟踪手机运行时的状态的,以上这两个工具在使用时电脑都需要USB专用数据线与手机连接才能使用。
   MTK平台操作系统使用了Nucleus实时操作系统,在其上做了个内核抽象层的封装,以适应多种实时操作系统,如Oscar、ThreadX、 Nucleus。整个软件系统包括Nucleus操作系统、平台设备驱动、协议栈、文件系统、WGUI、MMI、J2ME等。在这里MMI部分几乎包括了 操作系统内核、协议栈、文件系统之上的所有部分,其中WGUI也在其中。其中,与游戏开发相关的API主要集中在MMI部分,此外还要熟悉系统消息传递机 制和线程等相关知识。
    尽管MTK操作系统和Windows有所区别,但是相应的系统机制还是有些类似的,这里需要参照手机厂商相关系统文档,并且和Windows系统进行对照分析,找出其中的异同点,这样可以尽快的熟悉和使用MTK系统和相关API。
游戏程序设计是根据游戏策划文档的要求做出来的,这部分内容尽管和MTK系统关系不大,但是为了以后游戏开发,需要将MTK系统的一些API进行进一步的 封装,并且开发一套游戏引擎。这样做的目的就是通过此次项目总结出一套通用的MTK系统下的游戏制作方案和流程,为以后游戏开发打好基础。
   本实例中是一款单机的游戏,逻辑部分主要包括输入、输出和中间的游戏性部分。输出部分主要负责图像显示和声音输出;输入部份要求游戏可以通过手机键盘和 手写笔输入;游戏性部分要求根据用户的输入按照游戏策划的要求产生正确的输出。这些都涉及到一些游戏开发中与平台无关的游戏算法,可以参考其他游戏中的相 关实现,或者自己进行相关的设计。
   MTK的PC模拟版使用VC的编译器和链接器生成,ARM版使用ADS1.2的编译器和链接器生成。因为MTK的整个软件系统是一个很庞大而且复杂的工 程,并且要支持多个MTK的产品系列和多家客户的客户化支持,使用集成开发环境(IDE)已经无法胜任,而且很难做到整个工程的自动构建和资源、代码的生 成。所以MTK的软件系统使用了Windows下的GNU开发工具链(MinGW)来进行工程的管理、配置和构建,MTK将MinGW放到了第三方工具 中。另外还使用了Perl脚本来解析用户输入的命令行参数,因此第三方工具中还包含了ActivePerl(Windows下的Perl解释器)。不过, 整个软件系统并没有使用MinGW的全部工具,只使用了Make这个工具,由几个Makefile控制了构建的过程,在编译和链接时根据最终生成PC模拟 版还是ARM版而分别调用VC的编译器和链接器或ADS1.2的编译器和链接器。
    这里需要说明一下MTK软件的开发流程。整个软件开发首先要在PC环境中模拟开发出来PC模拟器版本,这部分开发工作在VC++6.0IDE环境中就可以 完成,跟踪调试比较方便。然后需要将PC模拟器版本进行相应的配置和修改,并进行第二次编译,生成真实的手机版本。
    尽管PC模拟环境和手机环境十分接近,但是由于涉及到两个编译和运行环境,仍然会有不同的地方。在这里需要借助厂商提供的Debug工具Catcher,通过数据线接受软件在手机中的调试信息。
阅读(741) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~