总的来说这个问题比较好解决,Xcode新建的工程中就有opengl es这一项,基本的调用关系都给你弄好了。
下面说说我开发的过程
说到底我绝大多数时间还是在win平台下进行开发的,尽管业界说mac的系统如何如何好,xcode功能如何如何强大,但还是感觉没有windows好用,没有vs方便(这个问题也许会被专业的mac开发人员嘲笑 :)
所以我写的程序都是在win平台下,这就带来了移植的问题。
首先系统相关部分与游戏及引擎进行隔离,其实也就是一些输入问题,gl的初始化问题等。把这个做好之后,引擎及游戏代码不要使用任何系统相关的调用,如果不得不有,那要做好#ifdef这样的取隔。这样基本上就行了。
当然需要注意的还有win平台上某些貌似ansic的函数在mac os上并没有,比如stricmp。好在这样的函数vc大都有源代码,我们只要在win平台下单步跟踪进去就可以得到源代码,再将其移植到mac os上即可
在有就是GL向GLES的移植。
iPhone上的GLES分为两个版本,1.1和2.0
1.1的版本支持VBO,2.0的除此之外还支持Shader和FBO,因此总的来说如果不是用Shader和FBO的话(iPhone上的游戏也没大必要要支持这些,毕竟机能有限)所以引擎要做渲染层的分离,对于那些高级的函数,在底版本上可以用一个空实现,这样也基本上没什么大问题。
总的来说这样就可以在Windows上利用vs来写游戏,调试逻辑,定期(比如每周或者每个重要的里程碑前)在mac上编译上一次真机就行。