下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
论坛 >移动开发 >iOS游戏开发3个新框架全解

iOS游戏开发3个新框架全解

女神晴姐发布于 2015-09-12 17:41查看:1413回复:16

苹果非凡的技术整合和持续创新能力体现在其涵盖领域的任何方面,而对于游戏开发,未来苹果除了继续完善已有的2D游戏框架SpritKit, 3D游戏框架SceneKit和全新的图形渲染API Metal 外,还将增加GamePlayKit, ReplayKit和Model I/O三个新框架:

1. GamePlayKit给游戏开发者带来了全新的游戏架构(“实体组件系统”)和一些通用模式(比如:状态机,Goal-agent-behavior系统等),同时它还提供了大量游戏算法,比如寻路算法,模糊逻辑和规则系统等。

2. ReplayKit可以让玩家在游戏中录制游戏视频,并且可以添加语音评论,然后通过社交网络分享出去。

3. Model I/O框架,主要是用来处理3D资源和数据,同时可以给一些资源做离线处理,提高游戏运行时性能。

 

 

SpriteKit新功能

 

 

SpriteKit是苹果在2013年推出来的2D游戏开发框架,它最初的设计很多来自Cocos2D-iPhone项目,特别是API方面,几乎和Cocos2D-iPhone没有差别。得益于此,Cocos2D用户可以用很小的成本转到SpriteKit上面来。 去年苹果推出了一系列重磅级功能特性:物理集成,XCode资源打包、实时编辑器,SceneKit 3D框架,Metal图形API等,这让SpriteKit成为了开发iOS/OS X平台上的游戏的首选游戏框架。 今年,苹果继续发力,添加了3个新的节点类型,同时还完善了整个游戏开发流程和工具链支持。

 

SKCameraNode

 

此类模拟游戏里面的照相机,它可以定义游戏的可见视图,同时它也是一个node,可以对它进行缩放,旋转和平移等操作。此类是开发者继去年WWDC后最希望实现的功能,对于实现一些大地图的冒险类游戏和RPG游戏非常有帮助,可以给主角添加一个SKCameraNode子节点,然后游戏视角就会跟随主角的移动而移动了。另外,游戏里面可以支持多个SKCameraNode.

 

SKAudioNode

 

此类可以实现基于位置的音效,环境音效和沉浸性音效。可以想像一下,一颗导弹向你的主角飞过来,声音由远及近,当导弹离你的主角很近时,甚至可以听到导弹尾部喷气的声音,这种游戏音效会给玩家带来非凡的听觉感受。

 

SKReferenceNode

 

此类是SpriteKit的一个亮点,它可以实现已有组件的序列化,支持数据驱动式的游戏开发。 配合XCode,序列化的组件可以被当作游戏资源在各个不同的工程和游戏里面重用。 而且它会自动Cache,同样的文件不会被加载多次。对于一些复杂的场景和组合动作序列,当需要重用它们的时候,SKReferenceNode是个大杀器。

 

Metal支持

 

目前iOS 9全面支持Metal,已有的SpriteKit游戏跑在iOS 9上面,不需要做任何修改即可享受Metal带来的性能提升。如果你的设备支持Metal,那么它就会使用Metal,反之则切换到OpenGL ES.

 

SpriteKit 相关工具

 

一个好的游戏框架离不开一个好用的工具支持,游戏开发者可以通过工具快速地进行迭代式开发。苹果一直致力于完善SpriteKit的工作流,让开发者可以更快速地开发游戏,同时让玩家可以不用关心技术细节,只需要专心游戏玩法即可。

 

接下来SpriteKit相关工具支持方面主要会有以下几点:

 

1. 资源分类(Asset catalog)支持,开发者可以更精确地控制不同设备使用的资源分辨率,最重要的是,玩家在下载游戏到设备里面时,只会下载与其设备分辨率匹配的资源。

 

2. 按需加载资源,通过给不同的资源设备Tag,可以指定某些场景和关卡只加载特定Tag的资源。

 

3. XCode快速预览:支持在Playgound里面使用Swift编写一些测试代码,然后快速预览效果。不需要额外的编译,立马就可以看到API的使用效果,这对于测试一些API和验证一些想法非常有帮助。

 

4. 2D时间轴动作编辑器:这个应该算是SpriteKit的大杀器了,它是一个功能完善的2D动作编辑器,可以支持实时预览动作效果,并且同时支持2D和3D。

 

5. 数据驱动:SKReferenceNode可以让可重用的游戏组件数据化,让玩家可以用更少的代码来完成游戏开发。

 

小结

 

整个SpriteKit在性能,工具和易用性方面都有了较大的提升,另外,配合SceneKit,开发者可以更容易地开发3D休闲类游戏了。

 

SceneKit新功能

 

SceneKit是苹果为了让游戏开发者更方便地开发3D游戏而推出来的,它支持iOS和MacOS X。 同时,它还完美支持粒子系统,物理集成和SpriteKit。今年,苹果改进了场景编辑器,同时对Metal的支持也更加完善了。

 

新的场景编辑器

 

新的场景编辑器的功能总结如下:

 

1. 支持更多的3D文件格式: DAE,OBJ,Alembic, STL和PLY文件格式;

2. 新的原生文件格式,使用NSKeyedArchiver来存取;

3. Shader修改器和环境光遮蔽(Ambient Occlusoni);

4. 天空盒(Skybox)和几何修改器;

5. SCNTechnique支持;

6. 支持声音节点;

7. 支持Model I/O(后面会具体介绍Model I/O是什么);

 

除了这7点以外,还有诸如compute shader, relfective cub map等功能。

 

Metal支持和SKTransitions

 

新的SceneKit可以根据设备类型自动匹配是否使用OpenGL或Metal作为渲染后端,同时它支持SpriteKit的切换场景切换,制作SceneKit场景切换效果更容易了。

 

Metal 新功能及性能优化

 

今年WWDC游戏相关视频中,苹果用了3个视频介绍了Metal的新特性以及性能优化方法,同时SpriteKit和SceneKit在iOS 9中都是默认使用Metal作为渲染API。Metal作为苹果生态圈的高性能图形渲染API,大有可能在将来某一天取代OpenGL的趋势。

 

新功能介绍

 

这里简单给大家介绍一下Metal的新功能,具体的细节还需要查看相关文档和视频:

 

1. 新的内存模型:它一共支持3种内存模型,分别是共享内存模型,私有内存模型和托管内存模型;

2. 新的纹理压缩格式(ASTC);

3. 设备GPU 类型判断:自动根据设备的GPU类型来判断支持的特性集合;

4. MetalKit框架:让Metal应用开发更加简单方便;

5. Metal performance shader 框架:提供了一系列数据并行算法;

6. Metal 调试工具:更方面地调试Metal图形应用;

7. Metal应用程序瘦身:这一点和上面介绍的SpriteKit瘦身原理是一样的。

 

MetalKit框架

 

MetalKit对于一些常见的应用场景提供了高效的实现,开发者可以用更少地代码来开发应用,并且开发出来的应用性能和稳定性会更高。 MetalKit提供了一个MTKView类,它统一处理了渲染一个Metal场景所需要的设置代码,另外,它提供了一个纹理加载器,它可以从一个图片文件中创建一个Metal纹理。最后,MetalKit完美支持Model I/O,让3D模型的处理更加简单。

 

Metal performance shader框架

 

Metal performance shader是一个为GPU提供数据并行算法的一个框架,目前只支持A8处理器。 它定义了一些类似操作CPU风格的API,这样可以让GPU编程变得更加简单。它提供了很多内置的并行算法,比如兰索斯重新取样(Lanczos resampling),卷积函数(比如高斯滤镜等),直方图等。

 

Metal调试工具和最佳实践

 

众所周知,图形应用是非常难以调试的,而Metal在设计之初就考虑了多线程,而多线程的调试也是很困难的。因此,如果没有好用的工具支持,调试Metal应用将会变得非常困难。 此次,苹果围绕Metal提供了一系列好用的工具。比如:一个可视化的帧调试器,一个资源和状态查看器,shader性能分析工具,集成的离线Metal编译器等。 读者可以根据WWDC中关于Metal性能优化的视频去了解更多详细的信息。 另外,苹果给我们定义了一些最佳实践:

 

要尽早分析和经常分析代码;

在最合适的时机去获得Drawable对象;

尽可能基于GPU去考虑多线程渲染;

提前创建好一些耗时的对象并尽可能地重用这些对象,提前编译好着色器程序。

 

小结

 

Metal已经成了苹果在3D图形渲染的一张王牌,它的性能远超OpenGL,开发者应该全面拥抱它,利用它来开发出性能更好的图形应用和游戏。同时,使用Metal,也可以用更少的代码来编写图形应用,另外,它也会让你的程序会更容易维护。

 

GamePlayKit介绍

 

GamePlayKit是今年WWDC游戏开发方面最大的亮点,它提供的实体组件系统将直接改变之前以继承为主的开发游戏方式。另外,还为游戏开发提供了大量实用的算法与设计模式,iOS游戏开发从未如此简单。

 

 

收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享

共有16条评论

  • 慧星的那一夜
  • MK
  • 药师
  • IT宅男
  • mr jack
  • YUI
  • Mr ken
  • cappuccino
  • 课课家技术团队1
  • 选择版块:

  • 标题:

  • 内容

  • 验证码:

  • 标题:

  • 内容

  • 选择版块:

移动帖子x

移动到: