lostrit

lostrit

🏢  独立游戏开发者
V2EX 第 124974 号会员,加入于 2015-06-30 22:53:21 +08:00
20 S 15 B
lostrit 最近回复了
2015-10-01 19:24:36 +08:00
回复了 anubiskong 创建的主题 游戏开发 用 swift 写游戏和用 cocos2d 之类的引擎有什么区别?
@anubiskong 很好哇 独立开发者么?
2015-10-01 19:21:16 +08:00
回复了 anubiskong 创建的主题 游戏开发 用 swift 写游戏和用 cocos2d 之类的引擎有什么区别?
@anubiskong 也是小体量的项目,目前还没做完..
2015-10-01 18:22:14 +08:00
回复了 anubiskong 创建的主题 游戏开发 用 swift 写游戏和用 cocos2d 之类的引擎有什么区别?
已经用 swift 做游戏将近半年时间。
建议你首先考虑游戏是否跨平台,如果你真心确定就做 iOS 和 OS X 平台的游戏再继续看,否则直接选别的引擎去吧。

然后说 swift 做游戏的事。据我所知用 swift 做游戏基本只有只有如下选择:

1. Cocos2d-objc : https://github.com/cocos2d/cocos2d-objc ,之前叫 cocos2d-iPhone , swift 发布的时候改名过 cocos2d-swift , cocos2d-x 的灵感来源。现在由于前途未卜又改名成 cocos2d-objc 了...引擎由 Objective-C 实现,与 swift 的结合使用亲测没有大问题。有自己的图形编辑界面 SpriteBuilder ,前身是 CocosBuilder 。
优点:如果你使用过 CocosBuilder 和 cocos2d-x 的话,应该还是比较好上手的。功能还算强大。
缺点:前途未卜。之前一段时间在 Apportable 的帮助下进行了安卓的支持,后来 Apportable 撤出了,这个引擎可以说已经没有什么竞争力了(当然 SpriteBuilder 这个编辑器我个人还是很喜欢的),它的 forum 上也激烈讨论了这个引擎何去何从的问题。现在的状况就是很多底层使用的 API 已经比较过时了,然后寥寥数人还在焦头烂额的勉强维护着。所以制作过程中遇到引擎 bug 可能得自己修复。
还有就是在 swift 中使用 objc 框架时代码补全明显比纯 swift 慢很多,真的是很多,直接影响到了写代码的节奏,不知道是我没调教好的原因还是什么。
文档么,没有非常完善但基础的部分也够用了,毕竟是开源的啥东西弄不明白自己看源码好了。

2. 苹果自己的 SpriteKit 、 SceneKit ,这个不介绍了, WWDC 说的挺全乎的。做 2D 游戏的话就用 SpriteKit , 3D 游戏就用 SceneKit 。这两个框架之间还可以相互使用,就是说你可以 SpriteKit 中加一个 node 显示 SceneKit 的东西,也可在 SceneKit 中使用 SpriteKit 的东西制作 UI 。
优点:正品有保障。没有 cocos2d-objc 的代码补全延时。文档完整度没的说。
缺点:不开源。有些东西文档没说清楚的只能自己去试。
编辑器, Xcode 6 加入场景编辑, Xcode 7 加入了动画编辑,基本的拖拖拽拽没啥问题,但是你要想做点真正能用的东西,用起来那叫一个别扭。
作为游戏框架感觉还不够完善,比如最基本的按钮啊,视差效果啊, TiledMap 啊,这些都需要你自己去实现。

以上两个是仅我所知的 swift 下的游戏引擎。要我说,没有无坑的引擎,至少我到现在没有遇到过,但同样,也基本没有不能解决的坑。实在都不满意的话自己去做引擎好了, swift 的话你可以使用 Metal ( iOS8+, OS X 10.11+)或者 OpenGL ES 3 ( iOS7+)。就是只怕到时候会遇到更多的坑。我也曾经有一段时间陷入想找到一个完美舒服的工具去做游戏的困境中,后来我才发现,没有工具是完美的,但这都不影响你把你自己的游戏做的完美。硬着头皮把游戏做完的时候,你就不会再在意工具给你的那点别扭了。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   950 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 22:43 · PVG 06:43 · LAX 14:43 · JFK 17:43
Developed with CodeLauncher
♥ Do have faith in what you're doing.