简介
libGDX是一个开源,跨平台的2d/3d游戏开发框架。它使用Java作为开发语言,此外,libGDX也使用了大量的C语言用于处理基于C语言库的性能相关的任务和跨平台支持。该框架将其支持的所有目标平台抽象成了一个统一的应用程序接口(API),libGDX的亮点之一是你可以将你所开发的Native App(原生应用)直接在桌面端运行并进行调试,这使得你能够方便的使用JVM特性,例如Code Hot Swapping(代码热替换),它可以让你的代码在运行时期做到所见即所得的效果,因此,它能够大大减少你去实现不同idea的时间,甚至更快的找到并修复bug,其源代码托管在Github,目前最新版本为1.9.4.
官网:https://libgdx.badlogicgames.com/
特点
强兼容性
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由audio、files、graphics、math、physics、scenes、utils这些主要模块所组成,它们分别对应了Libgdx中的音频操作,文件读取,2D/3D渲染,Libgdx绘图相关运算,Box2D封装,2D/3D游戏组件,以及libGDX内置工具类。
它提供了便于设计游戏的清晰架构
封装
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的核心贡献者。
Overlap2D
第三方UI编辑器,该编辑器由热心的使用者编写,已开源。
TexturePacker
第三方文理资源打包工具
PhysicsEditor
第三方物理属性编辑器
文档和社区
libGDX的文档数量已经相当完善了,官方的wiki已经有较为完整的基础介绍和一些示例。不过由于官方的示例都是英文的,可能对于部分开发者来说学习难度较大。另外libGDX拥有非常活跃的官方讨论社区
libGDX现在也有一定数量的中文教程和书籍,如奋斗小土豆丶,夜明的孤行灯,爆发的妞,#Testin杯#Mkey等一系列基础教程,也有罗杰儿翻译的官方书籍《Learning LibGDX Game Development- Second Edition》。
作品展示
到目前为止,已有相当数量的游戏基于libGDX开发,并且部分游戏都是非常著名的。
Ingress(Google play,AppStore)
Delver(Google play,AppStore,Steam)
Alchemist's Awakening(Steam)
Gunslugs 2(Google play,AppStore,Steam)
Halfway(Steam)
Nubs' Adventure(Google play,AppStore,Steam)
萌娘餐厅1,2(Google play,AppStore)
小小指挥官1,2(Google play,AppStore)
史诗塔防 - 元素(Google play,AppStore)
S 士兵荣耀:现代战争(Google play,AppStore)
还有很多这里就不一一列举了,另外,libGDX 官方有一个游戏画廊,上面展示的游戏都是用 libGDX 开发的。
嗯,libGDX 用起来相当舒服。
这是我接触的渲染框架中最容易用的一个了,尤其是多平台的支持,使得调试起来很方便。
最早接触的就是libGDX~
我已经无欲无求了,。。。一直不肯出ui编辑器
@纯洁的坏蛋:坏蛋,哈哈
用起来很舒服。真心舒服。 如果java基础不错,那么绝对是种享受。 libgdx游戏引擎群里面,已经有一帮人,发布了游戏,赚到了钱。。
Java退休爱好者的福音!