android游戏开发框架libgdx的使用(完)—杂谈Libgdx

长平狐 发布于 2013/11/25 11:37
阅读 1K+
收藏 1

写在最前面

仔细看看,上一篇博文是10月5号了,有很长的时间没有写博客了。

升入大三以后时间愈发的少了,要忙着各种事情,也在纠结该继续读书还是找工作,读书是读国内的还是读国外的…

libgdx这个系列的文章开篇一年有余了,期间得到了很多朋友的鼓励和意见,总的来说感觉还是蛮不错的。

想了很久,我决定给这个系列的文章画上一个句号。

就原因来说是多方面的:

第一是libgdx的版本从0.92到了今天的0.97版本,虽然总体架构变化不大,但是细节上的接口还是有很多差异了,早期的一些文章的实例代码可能无法直接运行了,我又没有精力细细检查和修改,可能新入手的朋友们会遇到一些问题。

第二就是这个系列本身的问题,我开始写的时候也没有想什么具体的东西,就是有一篇写一篇的,整个系列来看没有一种整体的驾驭性,继续写下去我感觉意义不大。

第三就是个人原因了,我其实并没有做过太多的游戏开发,当初接触libgdx也是相当偶然的原因。一些对于游戏开发更深入的东西我没有研究,不敢随意写出来。

文章接下来的内容是一些极为零碎的东西,希望能够有所用处。

Libgdx是什么

我最感到庆幸的就是这个系列的文章的标题【android游戏开发框架libgdx的使用】,虽然最开始了解不深入,但是这个标题却是正确的。

Libgdx是一个游戏开发框架,它不是一个游戏引擎。

它的主要代码是java,其中对于效率要求较高的部分是由C和C++写成的。

它是跨平台的,支持Windows、Mac OS、Linux、Android(1.5+)、GWT,它对IOS的支持是基于MonoTouchIKVM

它是免费的,基于Apache License 2.0协议。

Libgdx的优势是什么?我为什么选择它?

说实话,现在的游戏框架和引擎有很多,选择的面也很广。比如庞大的cocos2d家族。

如果你的主要语言是Java,那么推荐你使用Libgdx。

如果你主要涉足Android游戏领域,那么推荐你使用Libgdx。它可以方便的在桌面环境调试你的游戏逻辑,你可以轻松地和那个缓慢的模拟器说拜拜了。

如果你希望更自由的开发,你希望控制和掌握你的代码,那么推荐你使用Libgdx。它的封装比较低级,你可以基于它开发自己的游戏引擎,而不是接受其他引擎的那套模式和理论。当然你不想太底层但又希望一定的自由,2D的UI库和Stage给出了一套简单的解决方法。

如果你追求高效,那么推荐你使用Libgdx。也许你带着有色的眼光…这货是Java的吧!好吧,我也没有做个相关的测试,不过推荐你看看这篇文章,它比较了主流的游戏框架的方方面面。

Libgdx好用吗?比起XX怎么样?

我经常在QQ和Email里面看到这样的询问,说实话,我觉着这种问题意义不大。首先我没有深入的研究过其他的游戏框架和引擎,不敢断言。其次个人的喜欢和需求是不同的,也许你喜欢Libgdx的这套API设计,也许你就是看不惯某种设计模式,这种问题很难有标准的答案,甚至常常引起争端。

如果你想知道哪款开发框架或引擎适合你,你可以都试试再做出选择。如果你觉得没有时间或者这个功夫,那就双眼一闭,随便选一个吧。

Libgdx的使用广吗?有哪些游戏使用了它?

我清楚问这个问题的人的意思和顾虑。但是我觉得一款游戏的好坏和它使用什么技术手段开发没有大的关系。游戏的美工,构思设计还有宣传等等都会有很大的影响。

当然使用广泛与否一定程度上关系着反馈的快捷和获取帮助的难易程度。我只能告诉你社区很活跃,任何问题都不会拖过半天(起码我遇到的情况是这样的)。我原来看过一个国外的网站,它统计了市场中的游戏使用了第三方库的情况,Libgdx的排名在20位以内,具体的数据和网址我记不清楚了。

如果你想知道什么游戏使用了Libgdx,你可以去社区看看,有一个列表专门收集基于Libgdx的游戏。如果你硬要我举个例子,不知道Google最近吸引不少眼球的Ingress能不能满足你的心理期待。

Libgdx支持中文吗?

很遗憾的告诉你不完全支持。不完全支持的意思是原生不支持,但是你可以通过一些办法实现。你可以使用Herio或者TTF字库。

Libgdx的缺点那么那么多…

如果你真心实意的问这个问题,那么我只能说你可以选择别的,或者发挥你的实力改造它。

但是有些时候请先仔细琢磨琢磨再开口。我不止一次的看到了类似的问题:

  • Libgdx使用的图片宽与高皆为2的整数次幂,好麻烦
  • Libgdx的文档好少
  • Libgdx没有场景过渡效果
  • Libgdx没有XX功能

我应该如何开始

群上比较常见的问题就是 我是新手,我应该怎么学习Libgdx。

我个人来看最好的例子就是官方的Wiki,从理念到搭建环境再到每个细节都有说明和介绍,可以先从那里入手有个基本的了解。

然后就是官方的Demo,可以看看怎么编写一个个完整的项目。不过这里注意一个问题,Demo的风格不敢说迥异,但也算各有不同。参考的时候一定多注意。

哪里可以获取帮助

遇到问题的时候我推荐自己多想想,如果要获取帮助的话可以去论坛问,如果不习惯英文可以去群上问:

Libgdx游戏引擎(1群)(148848483)

Libgdx游戏引擎(3群)(187378034)

从字面看应该有2群的,不过我没有加…还有其他群的话欢迎大家在下面留言。

总的来说QQ群还是比较活跃的。

除了我之前的文章可以参考意外,我推荐Mkey libgdx系列教程,虽然没有很完整的体系,但是给出很多细节的解决方法。同时推荐这个项目https://code.google.com/p/c2d-engine/,它是基于Libgdx的,感觉看着不错,起码它给出了一部分人特别想要的场景切换的解决方案。

一些其他想法

最近接触了Markdown,感觉就网络分享方面比Latex方便,同时又看了很多关于游戏设计和其他引擎的理念的文献,想把之前的东西整理一下做成一个稍微成体系的Libgdx中文文档出来。

不过具体的题目和结构还在构想就是了…

组织方式和一部分内容已经完成,阅读地址是http://libgdx.sinaapp.com/index.html,项目地址是https://github.com/htynkn/way-of-libgdx

最后这个以前文章的一个离线版本(不是我打包的哈),大家不想看在线看的话可以下载,不过我觉得效果不怎么好就是了。

下载地址:http://pan.baidu.com/share/link?shareid=168280&uk=4127624209


原文链接:http://www.cnblogs.com/htynkn/archive/2013/01/04/libgdx.html
加载中
返回顶部
顶部