移动开发之我见-移动平台游戏开发技术的前世今生

随着智能手机平台的兴起,移动平台应用开发变成现在热门的话题,而在应用开发中,游戏的开发占有举足轻重的位置,而移动平台的开发技术,尤其是游戏的开发技术在近几年的变化非常大,从最早门槛低的J2me技术开始,到针对各个平台的开发技术,直到现在依赖各种框架和引擎的跨平台技术.......大家对于技术的革新和追求从来就没有停止,本文就从一名普通开发者的角度来总结一下移动平台游戏开发技术的前世今生。

在最早的J2me时代,J2me这项技术的学习相对简单,开发速度也比较快,而且当时几乎所有手机平台都支持java,所以“一次编码,到处运行”也就不是梦想了,但是由于机型的硬件性能所限,不同的平台在移植上也需要下一番功夫,针对不同屏幕,不同内存,往往要开发不同的版本,当时的开发者根据经验,往往把很多种机型分组处理,为每组开发一个模板,然后再针对在不同机型上的运行情况做不同的调整,形成了一种相对高效的开发模式,但是,在这个阶段由于手机设备的硬件水平普遍偏低,因此开发中的限制也比较大,这一点在之后的智能机时代得到了很大的改善........

随着苹果ios系统和iphoneipad一系列产品的发布,随着android系统和相应的设备的诞生,移动平台的种类丰富了,从单一的手机发展到平板等多种手持设备上,而移动游戏的开发方式同样也有了改变,开发者们开始尝试针对不同的平台的开发框架来进行开发,这里用android的开发来说,笔者认为androidjava开发框架是最接近之前j2me的开发框架的,因此这时,有些开发者只是在开发j2me游戏的基础上,将其移植到android平台上,这样做很简单,甚至只需要改变几个函数api的名称即可,但是,智能平台的硬件及性能的提高并没有带来游戏品质的提高,于是开发者们也探索着进行只针对单一平台的开发,利用平台特性(多点触屏,重力感应等)开发出了很多不错的游戏,虽然android平台的屏幕及分辨率也是千奇百怪,但是开发和移植由于更出色的框架变得简单起来,相对的也不需要太多的考虑内存的限制(这方面的限制相对于java时代宽裕了很多)。但是问题依然存在,对于不同的智能平台(androidios)依然需要写不同的代码来进行开发,如何跨平台这个问题摆在了开发者面前.........

对于跨平台的探索,我想借用6月份程序员杂志上的一段文章说明,苦逼程序员自己学习ocjavaC#使自己变成“活”的跨平台工具,夜以继日的加班来在不同平台上实现跨平台,可以说是“人肉”跨平台。普通程序员使用“中立”语言(比如C++支持androidios)或者使用一些引擎,来使自己的代码更多的复用。而文艺程序员则是编译脚本代码来发布不同版本,通过底层引擎化来实现跨平台,这种跨平台通过引擎和框架来实现,比如最新发出alpha版本的cocos2d-html5引擎,使用该引擎,游戏的代码通过javascript这种脚本语言来编写,这样可以借助html5的跨平台特性发布网页版本的跨平台游戏,也可以通过cocos2djavascript版本发布本地版应用,实现“一次编码,到处发布”,这样“一次编码,到处发布”的跨平台引擎还有unity3d等。

这些跨平台引擎使用的原理包括openglhtml5等,首先说opengl(对于移动平台大多是opengl es),由于显示硬件都支持opengl这种图形渲染的api,所以大多数移动平台都支持opengl,因此基于opengl开发的引擎及框架可以实现跨平台也就不奇怪了,包括webgl同样是把javascriptopengl结合到一起,从而使网页上也可以实现opengl渲染。Html5同样可以实现跨平台,其中他的canvas部分同样是负责渲染部分,虽然现在不是所有浏览器都支持webgl,但是现今大部分浏览器都支持html5canvas,笔者感觉canvas很像j2me中的画布画笔等,因此学习也没有什么难度,同时html5在未来的跨平台技术中,也会有更好的应用。

对于技术的追求和学习不会止步,从我的这篇文章可以看出,移动平台的技术在近几年中的发展的确很快,一方面,作为移动平台游戏开发者来说,我们可以实现品质更好的游戏,另一方面,作为对我们的激励,只有不断学习才能赶上技术变化的脚步。

你可能感兴趣的:(游戏,android,移动开发,平台,j2me,跨平台)