libGDX/3d游戏开发框架介绍及应用程序的区别

libGDX/3d游戏开发框架介绍及应用程序的区别

简介

libGDX是一个开源,跨平台的2d/3d游戏开发框架。它使用Java作为开发语言,此外,libGDX也使用了大量的C语言用于处理基于C语言库的性能相关的任务和跨平台支持。该框架将其支持的所有目标平台抽象成了一个统一的应用程序接口(API),libGDX的亮点之一是你可以将你所开发的Native App(原生应用)直接在桌面端运行并进行调试游戏开发框架,这使得你能够方便的使用JVM特性音效,例如Code Hot Swapping(代码热替换),它可以让你的代码在运行时期做到所见即所得的效果,因此,它能够大大减少你去实现不同idea的时间,甚至更快的找到并修复bug,其源代码托管在Github,目前最新版本为1.9.4.

官网:

特点

强兼容性

libGDX兼容多种平台系统(Windows、Linux、Max OS X、Java Applet、Javascript/WebGL),包括移动系统Android(1.5版本+)和iOS。对于Android平台的支持在Android阵营和相关市场日益扩大的情况下libGDX的使用者越来越多。另外,基于RoboVM和Multi-OS Engine可以实现iOS兼容。

同时极强的兼容性为调试和开发提供了便利。你可以使用Android上面同样的代码在桌面PC上面编写,测试,调试你的应用(也就是说,你可以不需要打开Android模拟器,就可以调试用libGDX引擎写的游戏应用)。它剥离了常见的Windows之间/ Linux应用程序和一个Android应用程序的区别。一般的开发过程是尽可能的在停留桌面PC上,同时周期性的检查你的当前代码是否仍然能在Android运行。

高效性

libGDX主要是用Java写的,其中也掺杂了一些C/C++代码,这些代码是为了处理一些对性能要求很高的操作,比如物理引擎或者音频处理。作为用户,你只需要关注Java的封装就可以了,它已经把所有的本地代码封装好了。相比于其他android游戏引擎,libGDX的效率优势十分明显。

架构清晰

libGDX的主要构成如下所示

libgdx-jiagoutu

libGDX由audio、files、graphics、math、physics、scenes、utils这些主要模块所组成,它们分别对应了Libgdx中的音频操作,文件读取,2D/3D渲染游戏开发框架,Libgdx绘图相关运算,Box2D封装,2D/3D游戏组件,以及libGDX内置工具类。

它提供了便于设计游戏的清晰架构

Image03

封装

libGDX对于物理引擎的封装也是让人惊讶的。 它足够疯狂的使用jni封装了box2d的c++版本,使得其运行效率比其他同级的物理引擎如jbox2d快不少。现在流行的几个包含物理引擎Android游戏引擎(如Andengine、Rokon等),几乎都在用libGDX。

工具

libGDX还拥有相当数量的开发工具。如Particle editor(粒子编辑器),Hiero bitmap font generator(文字生成工具),Texture packer(图片合并工具),Gdx Setup UI等。

网络

libGDX最初大部分用于单机游戏或者弱联网游戏,不过经过不断优化,现在libGDX提供了专门的网络模块。在Google推出实时联网虚拟现实游戏Ingress后,亦有部分国内公司推出了基于libGDX的网游。

第三方拓展工具

Spine

目前最强大的2D游戏骨骼动画制作软件,没有之一。其作者也是libGDX的核心贡献者。

4288-1472043991

Overlap2D

第三方UI编辑器,该编辑器由热心的使用者编写,已开源。

Image01

TexturePacker

第三方文理资源打包工具

Image04

PhysicsEditor

第三方物理属性编辑器

Image02

文档和社区

libGDX的文档数量已经相当完善了,官方的wiki已经有较为完整的基础介绍和一些示例。不过由于官方的示例都是英文的,可能对于部分开发者来说学习难度较大。另外libGDX拥有非常活跃的官方讨论社区

libGDX现在也有一定数量的中文教程和书籍,如奋斗小土豆丶,夜明的孤行灯,爆发的妞,#Testin杯#Mkey等一系列基础教程,也有罗杰儿翻译的官方书籍《Learning LibGDX Game Development- Second Edition》。

作品展示

到目前为止,已有相当数量的游戏基于libGDX开发,并且部分游戏都是非常著名的。

Ingress(Google play,AppStore)

Image05

Delver(Google play,AppStore,Steam)

ss_8528932167de6bb8063963d4636bc425e2e967ce.1920x1080

Alchemist's Awakening(Steam)

ss_b010a32e1872c80e5a5859d86b8cfac763536fd8.600x338

Gunslugs 2(Google play,AppStore,Steam)

ss_e8e363729dbab33360a385c15923aab53e0e4705.1920x1080

Halfway(Steam)

ss_7841656a7e5e3097f934a9440943fa29c55d2f08.600x338

Nubs' Adventure(Google play,AppStore,Steam)

ss_c613a4f578332d30a311d7db56bc8d6168d67e18.1920x1080

萌娘餐厅1,2(Google play,AppStore)

Image06

小小指挥官1,2(Google play,AppStore)

screen520x924

史诗塔防 - 元素(Google play,AppStore)

screen520x9241

S 士兵荣耀:现代战争(Google play,AppStore)

screen520x9242

还有很多这里就不一一列举了,另外,libGDX 官方有一个游戏画廊游戏动态,上面展示的游戏都是用 libGDX 开发的。

文章来源:https://indienova.com/indie-game-development/libgdx/