在本文中,我们探讨了几种游戏引擎和框架,重点介绍了它们各自提供的一些关键优势。阅读本文后,您将有多种选择来制作下一个热门歌曲。请注意,我们只关注这些平台的 2D 方面。让我们开始吧。
1. Cocos2D
Cocos2d 是一个免费的开源框架,兼容 swift 和 Objective-C。它支持ios和 OS X,如果你的代码是用 Objective-C 编写的,它还通过SpriteBuilder android 插件支持android 。对 Android 的 Swift 支持正在开发中。
Cocos2d 中的项目是通过SpriteBuilder创建的,SpriteBuilder是一个图形设计环境,可用于快速原型化和构建游戏。您不需要使用 SpriteBuilder 来构建您的游戏,但是,项目创建必须通过 SpriteBuilder 完成。
场景管理是通过CCDirector班级完成的,班级可以利用大量的过渡CCTransition。它通过类和动作提供动画CCAnimation,例如移动、缩放和旋转,以及它的CCAction类。Cocos2d 类支持粒子系统,CCParticleSystem类支持平铺贴图CCTiledMap。
Cocos2d 也使用 OpenGL 作为其渲染引擎。它使用Chipmunk作为其物理引擎。如果你喜欢 Objective-C 或 Swift,并且想要为多个平台(iOS 和 Android)进行开发,那么 Cocos2d 是一个值得考虑的框架。
2. Cocos2d-x
Cocos2d-x是 Cocos2d 的 C++ 端口,可以编译到许多其他平台。Cocos2d-x 可以编译到 iOS、Android、Windows Phone、OS X、Windows 和 Linux。
Cocos2d-x 不附带 SpriteBuilder。不过,它确实有一些有趣的项目,例如Cocos Creator,它提供了框架、场景编辑、调试、游戏预览和发布到多个平台。
3.团结
Unity是一款支持 C# 和UnityScript的手机游戏引擎,UnityScript是一种专为 Unity 设计并以javascript为蓝本的语言。它是跨平台的,可以部署到许多平台,包括 PlayStation 和 Xbox。有免费版和提供更多功能的专业版。更多信息可在 Unity网站上找到。
有一个内置的sprite 编辑器,您可以在其中直观地切片图像和一个 动画窗口,允许您布置和组织动画以及将关键帧动画添加到 sprite。也可以 在 Unity 编辑器中直观地设计粒子系统。
Unity 使用自己的专有物理引擎。Unity 有一个内置摄像头,这使得在游戏世界中导航变得简单。您可以直观地布置场景,Unity 有一个包含按钮、滑块和菜单等组件的用户界面系统。Unity 编辑器中还支持精灵打包。
在游戏引擎方面,Unity 是一个强大的引擎。如果您需要一个能够适用于各种设备的跨平台解决方案,并且您更喜欢使用 C# 或 UnityScript 进行编程,那么 Unity 是一个不错的选择。Unity 的另一个优点是资产商店,您可以在其中找到或购买可在游戏中使用的资产。
4.SpriteKit _
SpriteKit是 Apple 专有的 2D 游戏开发框架。它仅在 iOS 和 OS X 上可用。SpriteKit 支持 Swift 和 Objective-C,两者的结合。
场景管理由班级完成,SKView班级有各种各样的过渡SKTransition。SpriteKit 的核心是动作,SKAction类的实例,用于移动、旋转和缩放游戏对象。动作也可用于播放声音和执行自定义代码。
SpriteKit 有一个场景编辑器,您可以在其中直观地设计游戏的关卡。还可以使用粒子编辑器,您可以在其中直观地设计粒子系统。许多预先设计的粒子系统可用,例如火和雨。
SpriteKit 使用 Box2D 作为其物理引擎。SpriteKit 为 Box2D 提供了一个友好的包装器,这使得它非常易于使用。SpriteKit 还通过类内置了摄像头 ,这使得在游戏世界中导航变得容易。SKCameranode
如果你与 Apple 生态系统绑定,那么 SpriteKit 是一个非常不错的选择。
5.钛
Titanium是一个使用 JavaScript 作为其编程语言的框架。虽然更传统地用于构建应用程序而不是游戏,但它可以成为一个可行的游戏开发平台。在开发过程中可以免费使用。如果你想发布你的游戏,那么你需要一个许可证。
Titanium 支持来自 iOS 和 Android 的许多本机控件。这使得动画视图和图像变得容易。我已经构建了一个二十一点游戏,使用 Titanium 完成了动画和漂亮的翻牌效果。
Titanium 的优点之一是下载自定义模块的市场。例如,您可以将一个Box2D模块插入您的应用程序。如果您不需要 Box2D 的复杂性,那么使用简单的边界框碰撞系统也可以正常工作。
虽然 Titanium 不适用于具有大量移动部件和粒子爆炸的游戏,但将其用于简单的纸牌游戏、琐事游戏和移动物体数量有限的游戏不仅仅是一个可行的选择。
6.PhoneGap _
PhoneGap允许您利用现有的html、css和 javaScript 技能并将它们打包为移动应用程序。它的工作方式是在应用程序中嵌入一个 Web 视图并将您的资产加载到该 Web 视图中。这意味着您可以使用canvas api 来创建游戏。
PhoneGap 允许访问本机api,例如设备的摄像头、麦克风,以及对于游戏开发而言最重要的加速计。
PhoneGap 的核心非常简单。它采用 HTML 驱动的应用程序并使用 Web 视图将其打包为移动应用程序。
我们将看看另外两个可用于创建画布/WebGL 游戏的 JavaScript 库,Phaser 和 CreateJS。
7.移相器
Phaser是一个用于编写 2D 游戏的开源 JavaScript 框架。如果可用,它使用Canvas或WebGL 。
Phaser 支持动画、粒子和补间以移动、缩放和旋转精灵。它具有对瓦片地图的内置支持,并根据您的需要使用三种不同的物理引擎。它还具有内置摄像头,可让您轻松浏览游戏世界。
Phaser 有一些插件可用,包括粒子系统设计器和 Box2D 插件。如果 JavaScript 是您选择的语言,那么将 Phaser 与 PhoneGap 结合使用可能是一个不错的选择。
8.创建JS
CreateJS是一套四个不同的开源库:
画架
吐温JS
SoundJS
预加载JS
EaselJS 是一个基于Canvas API的库,如果可用,它可以使用WebGL 。TweenJS 专注于补间元素,而 SoundJS 专注于音频播放。最后但同样重要的是,PreloadJS 有助于预加载资产。
EaselJS 支持可以放置在元素上的精灵表和过滤器。Shape如果您需要进行矢量绘图,还有一个类。移动、缩放和旋转是通过将 TweenJS 库合并到您的游戏中来完成的。
虽然 CreateJS 没有很多为游戏开发量身定制的 API,但它是用 JavaScript 编写的,因此您可以合并任何您想要的额外 JavaScript 库,例如 Box2D 的JavaScript 端口。我过去成功使用的一个库是 EaselJS 的碰撞检测库。
我在 Envato Tuts+ 上写了几篇关于 CreateJS 的文章。如果您正在寻找这些库的详细介绍,那么您可能会发现这些很有趣:
使用 CreateJS - EaselJS
使用 CreateJs:PreloadJS、SoundJS 和 TweenJS
9.虚幻引擎
虚幻引擎是一个使用 C++ 作为其编程语言的游戏引擎。它可以免费使用,但有限制。有关详细信息,请访问虚幻引擎网站。您可以将游戏部署到 iOS 和 Android。
虚幻引擎还包括一个蓝图编辑器,它允许您在无需编程的情况下直观地编写应用程序脚本。该编辑器允许您以视觉方式设计游戏关卡、添加物理模拟、用户界面、动画、视觉效果等。
10. 电晕SDK
Corona SDK 是一个使用 Lua 作为其脚本语言的 软件开发工具包。它可在 Windows 和 OS X 上使用。您可以使用 Corona SDK 免费开发您的游戏和应用程序,但是, 收购 Corona Labs的公司Perk提供了一种企业模型,可以访问本机库/API 和其他一些特征。访问他们的 网站 以获取有关定价的更多信息。
Corona SDK 导出到 iOS、Android、Kindle 和 Windows Phone 8。Windows 和 OS X 导出处于私有测试阶段,即将推出。
Corona Labs 提供了一些其他吸引人的功能,例如 Corona Editor,一个 包含调试器、代码完成和其他一些不错选项 的Sublime Text插件。在 OS X 上可用的Composer GUI为您提供了一个图形环境,您可以在其中设计游戏关卡并使用 Corona 的物理引擎查看对象如何相互交互。
Corona SDK 使用 OpenGL 作为其渲染引擎,使用 Box2D 作为物理引擎。它的物理引擎为 Box2D 提供了一个包装器,使其更易于使用。Corona SDK 包含一千多个 可用于构建游戏的API 。
它还通过其 作曲家库内置了场景管理, 并提供了一个出色的 过渡库 ,可帮助移动、缩放和旋转游戏的图形资源。
不幸的是,Corona SDK 没有构建精灵图集的选项,并且使用复杂的形状进行物理碰撞检测可能很困难。但是,有一些很棒的第三方应用程序可以缓解这种痛苦,例如 Texture Packer 和 Physics Editor。
总的来说,如果您正在寻找一个跨平台的解决方案并且想要 Lua 脚本语言的易用性,Corona SDK 是一个很好的 SDK。
11. 吉德罗斯
Gideros与 Corona 一样,使用 Lua 作为其脚本语言。Gideros 是免费和开源的,它可以编译到 iOS、Android、Windows Phone、OS X、Windows 和 Windows RT。
虽然 Lua 不是具有基于类系统的面向对象的编程语言,但 Gideros 提供了基于类的 API,允许开发人员编写干净且可重用的代码。
Gideros 有一个 带有各种过渡 的场景管理器MovieClip、一个 动画类,并通过其 GTween 库提供补间,它允许您移动、缩放、旋转实体等。
Gideros 和 Corona 一样,将 Box2D 用于物理,尽管 Gideros 的 Box2D API 更接近原始的 Box2D API,因此使用起来稍微困难一些。
它提供了一些额外的工具,如纹理打包工具和字体创建器,可以在安装目录中找到。Gideros 允许您通过 Wi-Fi 连接在移动设备上对您的项目进行即时测试。
与 Corona 一样,如果您正在寻找易于使用 Lua 编程语言的跨平台开发,这是一个很棒的平台。
12.AndEngine _
AndEngine 是 Android 的移动开发框架。它是免费和开源的。但是,顾名思义,它仅适用于 Android。AndEngine 与许多其他移动平台一样,使用 OpenGL 作为其渲染引擎,并 通过扩展使用Box2D 作为其物理引擎 。
AndEngine 支持 动画精灵、 粒子系统,并允许通过 实体修改器对实体进行补间。AndEngine 还提供了一个 Camera 类,让您可以轻松地在游戏世界中移动。
AndEngine 中没有专门的场景管理器,但是您可以找到很多关于如何构建简单场景管理器的示例。如果您只想发布一个 Android 应用程序并且 Java 是您选择的语言,那么这个框架是一个不错的选择。
13.libGDX _
libGDX 是另一个 Java 游戏开发框架。它是跨平台的,可以编译到 Windows、OS X、Linux、Android、iOS、Blackberry 和html5。libGDX 还使用 OpenGL 作为其渲染引擎,并利用 Box2D 来模拟物理。
libGDX 有一个 Camera 类,一个 Action 用于移动、缩放和旋转对象的ParticleEmitter 类,以及一个用于显示粒子的类。它通过TiledMap 类支持平铺地图,可以与 平铺 编辑器一起使用。
libGDX 附带了一些额外的工具,例如 纹理打包器、 粒子编辑器和 位图字体生成器。
如果 Java 是您的首选语言并且您正在寻找创建跨平台游戏,那么 libGDX 是一个很好的框架。
结论
在本文中,我们介绍了几个游戏开发框架和引擎。您现在应该更好地了解哪些解决方案最适合您的需求以及您的下一款游戏的需求。感谢您的阅读,我希望您发现这篇文章很有用。