转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=891

随着移动平台软硬件的发展,越来越多游戏可以用于移动平台上。比如Unreal等大牌游戏引擎,也有了移动版本。没准过不了多久,CryEngine也会出现在手机上。

除了软硬件本身,阻碍开发的另一个因素就是开发语言。几乎所有现有桌面平台的游戏引擎都是用C/C++完成的,如果手机平台上没有C/C++的支持,那么重写引擎的代价会非常的大。下面就来看看现在流行的几大移动平台对纯C/C++的支持情况。

Symbian

作为老牌移动系统,Symbian平台对C++的支持一直不错。官方的Symbian SDK就包含Symbian C++,STL和Boost没啥问题。

iOS

iOS跟着iPhone和iPad被炒得热火朝天,但Apple提供的SDK官方只支持Objective-C。鉴于iOS SDK用的也是gcc tool chain,所以实际上也可以直接用gcc来编译C/C++代码,也有人这么做了。据说只要经过申请,就能获得Apple提供的C++ SDK。

另一种选择是使用第三方SDK,比如DragonFire SDK。它可以在Windows下用纯C/C++开发iOS程序,摆脱了对Mac的要求。

Android

Android的“默认语言”是Java,但我前不久的帖子“Android的纯C/C++开发”提到了用NDK进行纯C/C++开发的方法。而且现在也不再需要第三方修改过的CrystaX NDK,就可以使用完整的STL、RTTI、Boost等。

Windows Phone 7

虽然上一代Windows Mobile对C++的支持不错,但现在的Windows Phone 7(WP7)官方只提供了C#和Sliverlight来进行开发的方法,不支持C++原生代码。目前也还没看到有松动的迹象,很可惜。Onan Games倒是提供了一个中间件,可以在浏览器、WP7和Flash里执行C、C++和Objective-C源代码。我估计使用了动态编译之类的方法,仍然不是原生的,效率最多也就Java虚拟机那样而已。

MeeGo

MeeGo被Intel和Nokia捣鼓了那么多年,仍没什么起色。MeeGo的内核是Linux,SDK原生的语言就是C/C++,所以在这方面也没什么问题。

总结

总的来说,目前几个移动平台都可以顺利地用纯C/C++进行开发,就等WP7了。