《libGDX移动游戏开发从入门到精通》一1.1 libGDX介绍

1.1 libGDX介绍

在本节中,主要简单介绍一下libGDX这个游戏引擎,包括其特点、配套的开发工具等,让读者对libGDX这个游戏引擎有一个的感性的认识。

1.1.1 libGDX的特点

libGDX是一个跨平台的2D/3D游戏开发框架,它由Java/C/C++语言编写而成。它基于Apache LicenseVersion 2.0协议,对商业使用和非商业使用均免费,代码托管于Github中,最新版本为1.5.4。开源的游戏框架并不少见,但是libGDX的优势是相当明显的,主要是体现在以下几个方面:

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

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

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

3.架构清晰
libGDX的主要构成,如图1.1所示。

libGDX由audio、files、graphics、math、physics、scenes、utils这些主要模块所组成,它们对应了libGDX中的常用函数、接口、音频操作、输入/输出、文件操作,2D/3D渲染及libGDX绘图相关运算、网络模块。

它提供了便于设计游戏的清晰架构,如图1.2所示。

4.封装
libGDX对于物理引擎的封装也是让人惊讶的。它使用jni封装了box2d的C++版本,使得其运行效率比其他同级的物理引擎如jbox2d更快。现在流行的几个包含物理引擎的Android游戏引擎(如Andengine、Rokon等),几乎都在用libGDX所封装的物理引擎。如果你的游戏(特别是针对Android平台的)准备使用物理引擎,请优先考虑libGDX。

1.1.2 libGDX中的工具

libGDX具有较为完善的配套的开发工具,如粒子编辑器(Particle editor)、文字生成工具(Hiero bitmap font generator)、图片合并工具(Texture packer)等。这些所涉及的工具都会在以后的章节中陆续介绍。现在主要是贴出其软件界面,让大家先对其有一个直观的印象。

1.粒子编辑器(Particle editor)
粒子编辑器一个很明显的作用就是可以给游戏的画面添加更炫丽的效果。无论是大型游戏还是中小型游戏,基本都会有“每日登录”这一模块,而这一模块中,就经常使用到粒子效果,如图1.3所示。

2.文字生成工具(Hiero bitmap font generator)
借助Hiero bitmap font generator,可以生成游戏中需要用到的字体文件。在显示游戏中的文字信息时,通常需要用到该字体文件。文字生成工具如图1.4所示。

3.图片合并工具(Texture packer)
Texture packer的主要作用是将若干张小图合并为一张大图。这样在方便资源管理的同时,也尽可能地降低了GPU内存的浪费,如图1.5所示。

1.1.3 libGDX的历史

2009年中期,项目开始,初始名称为AFX。

2010年3月6日,项目开源,代码托管在Google Code上。

2012年5月,市场占有率超过1.24%,超过了当时的Unity、AndEngine、Cocos2D、Corona和Marmelade。

2012年,Google Ingress使用了libGDX项目。

2013年,添加3D API支持。

2014年4月20日,1.0正式版发布。

此后libGDX版本的更新比较频繁,截止到2015年3月24日。libGDX已经更新到了1.5.4版本。libGDX的作者之一Mario Zechner,也是《Beginning Android Games》一书的作者之一。

1.1.4 我的libGDX版本
这本书主要围绕libGDX 0.9.8来编写。与0.9.8版本相比,libGDX1.x具有以下特点。

1.更新了基于Gradle项目的安装,不需要更多的jars,支持所有平台的简单打包。

2.移除了对OpenGL ES 1.x的支持,支持OpenGL ES 3.0。

3.移除了大量Android后端的集群,要求最低Android版本是Android 2.2。

4.Box2D转移到了扩展中。

5.大幅度的改进了Scene2D,比如viewport enhancement。

6.更新了libGDX repo、网站和wiki,移除了旧的setup UI。

7.移除了音频和图像扩展和demo都放在了仓库中。

可以看出与0.9.8版本相比,使用libGDX 1.x开发起来将会更加简便。但是其最致命的缺点是移除了对OpenGL低版本的支持而不是选择兼容OpenGL低版本,这就导致市面上相当一部分使用OpenGL1.x手机的用户将无法运行使用libGDX1.x开发出来的游戏。而这一部分用户的丢失所带来的收益上的巨大损失是很多游戏开发商所无法接受的。所以,大部分的游戏开发商还是选择libGDX 0.9.8来进行游戏开发。这也是本书选择libGDX 0.9.8来进行讲解的主要原因。与libGDX 0.9.8相比,libGDX 1.x的主要API的改动较小,它们之间的大部分内容都是类似的。

时间: 2024-08-07 15:28:23

《libGDX移动游戏开发从入门到精通》一1.1 libGDX介绍的相关文章

《libGDX移动游戏开发从入门到精通》一第1章 libGDX简介

第1章 libGDX简介 libGDX移动游戏开发从入门到精通 目前,手游在整个游戏的市场份额上所占的比例越来越大.腾讯系的手游更是一度占领了苹果App Store前十名超半数的席位.现在就让我们走进libGDX这个游戏引擎的世界,开发出一款属于自己的游戏.

《libGDX移动游戏开发从入门到精通》一导读

前 言 libGDX移动游戏开发从入门到精通 写作初衷 从创新工场-涂鸦移动离职以后,我一直想把自己所学到的东西总结一下,以帮助更多想走上或者准备走上游戏开发这条道路上的人.很庆幸地接到了出版社的约稿,便愉快地决定要把自己一路走来所学到的知识做一个系统的总结,并尝试用一种更容易理解的方式把它们讲出来,以让更多的读者少走一些弯路,可以在尽可能短的时间内学到尽可能多的知识. 当我刚开始学libGDX游戏引擎的时候,对于很多自学的人来说,我应该是很幸运的了.因为当时身边有很多经验很丰富的同事可以请教.

《libGDX移动游戏开发从入门到精通》一第2章 libGDX的架构分析

第2章 libGDX的架构分析 libGDX移动游戏开发从入门到精通通过对第1章的学习,我们掌握了libGDX的基本使用方法.但是作为游戏引擎,我们有必要对其模块组成.生命周期及其提供的一些方便的工具有一定的了解.这些就是这一章所需要学习的内容.

《libGDX移动游戏开发从入门到精通》一1.5 其他的一些准备工作

1.5 其他的一些准备工作 通过学习前面的知识,我们已经学会写一个libGDX的HelloWorld程序,并且学会了在Android平台和桌面上调试自己的libGDX程序.但是在很多情况下,我们还需要看Android的源码.libGDX的源码.直接打开可运行的jar包.这一节就来讲解这些知识. 1.5.1 关联Android源码 Android系统也是由许许多多的代码组成的,这些代码也很有可能会有错误.在遇到一个问题的时候,除了我们自身的原因,还有可能是别人给我们提供的代码本身就是错误的.所以,

《libGDX移动游戏开发从入门到精通》一1.2 搭建libGDX开发环境

1.2 搭建libGDX开发环境 在本节中,我们将介绍搭建libGDX的开发环境.本节是大家使用libGDX进行游戏开发的基本准备工作.需要注意的是,在此之前应该把JDK下载.安装并配置好.同样的,eclipse下的开发环境也需要配置好. 1.2.1 libGDX下载 (1)登录官网:http://libgdx.badlogicgames.com/,单击红色框选中的"Download",如图1.6所示. (2)单击"Download"选项后你会看到以下界面,单击其中

《libGDX移动游戏开发从入门到精通》一1.3 开始第一个libGDX游戏

1.3 开始第一个libGDX游戏 经过1.3节以前的内容,我们已经搭建好了使用libGDX进行游戏开发的基本环境.那么这一节,就带大家用libGDX来写自己的第一个HelloWorld程序. 1.3.1 第一个HelloWorld程序的编写 在这个HelloWorld程序中,将带大家使用libGDX把一张图片显示出来.通过这个HelloWorld的程序,让读者们对使用libGDX来进行游戏开发的程序结构有大致的了解. 具体步骤如下(考虑到有的读者可能之前没有开发经验,所以在这里把新建类的方法详

《libGDX移动游戏开发从入门到精通》一1.4 运行libGDX的官方Demo

1.4 运行libGDX的官方Demo 在1.3节中,我们已经能够编写自己的第一个libGDX的HelloWorld程序了.在学习libGDX这个游戏引擎的时候,libGDX官方还提供了一些例子,通过这些例子,我们能学习到别人是怎么架构和设计一个游戏的,以及别人对于细节的处理,这对于初学者来说,是很好的资源.这一节就来学习怎么利用好这些资源. 1.4.1 libGDX的官网 进入官网,常见的方式有两种. 1.直接在地址栏中输入:http://libgdx.badlogicgames.com/.

《libGDX移动游戏开发从入门到精通》一2.2 模块

2.2 模块 libGDX这个游戏引擎的有一个特点就是架构清晰.组成模块化.那么现在我们就来学习一下libGDX这个游戏都由哪些模块组成,这些模块分别对外提供什么功能. 2.2.1 libGDX模块组成的图示 libGDX由数个模块组成,它们分别为一个游戏的各个步骤提供了服务与支持.这些主要模块在一个游戏中的典型架构如图2.7所示. 由图2.7可以看出,libGDX主要由Input.Files.Graphics.Audio这几个模块组成,以及图2.7中没有显示出来的Net模块.它们分别对应了li

《libGDX移动游戏开发从入门到精通》一2.3 运行环境的相关查询

2.3 运行环境的相关查询 我们在2.2节中分析学习了libGDX的模块组成及各个模块的功能.它们分别是Input.Graphics.Files.Audio.在这一节,我们学习一下Application这个接口提供了哪些方便的功能. 2.3.1 获取目前的运行环境 在实际开发的时候,常常需要根据不同的平台来进行一些不同的操作.如保存数据时,保存数据到Android的SD卡与保存数据到Desktop中有较大的差异.libGDX完全考虑到了这种需求,我们可以通过Applciation.getType