在选择跨平台手机游戏开发框架时,我需要一些帮助。 我已将范围缩小到 libgdx和 playn
我计划制作主要针对 Android 的游戏,但我也可以在 ios 和 html 上发布它们。我知道 libgdx 目前不支持 ios,但我也知道它正在开发中,我对开发人员有信心。
如果有人有 libgdx 和/或 playn(最好两者兼有)的经验,如果您能分享您的经验以及您选择哪一种以及为什么选择,我将不胜感激。
最佳答案
我认为在这一点上两者都是不错的选择。这就是为什么...
我没有使用过 Libdx,但我仔细阅读了他们的网站。我认为这两个项目看起来都不错。如果我选择游戏引擎,我的决定将归结为功能、稳定性和支持。
从支持开始,这两个项目似乎都有非常敬业的贡献者。 PlayN 的 Michael Bayne 是编码器的机器。 BadLogicGames (libgdx) 的马里奥似乎非常敬业。这两个项目似乎都有一群健康的贡献者和倡导者。
在功能方面,它们似乎相当均衡。两者都将使创建 2D 游戏成为一种很棒的体验。 Libgdx 似乎在 3d 方面具有优势,但如果您希望能够轻松创建 KILLER 3d 游戏体验,那么这两个框架都不会为您完成繁重的工作。 Libgdx 似乎不像 JMonkey 那样长的 3D 工具包,它也无法与商业工具包竞争。
老实说,如果您想制作一款商业 3D 游戏来与其他商业产品竞争,您将必须获得商业 3D 引擎的许可(并且拥有一支非常称职的团队)。与 Unity 的引擎相比,这两个项目都不会提供让您快速启动和运行漂亮图像所需的工具。
http://www.youtube.com/watch?v=Fc9m0Z1GDg8
PlayN 的人似乎对尝试提供良好的 3D API 而不影响 2D API 和使用它们的体验更加谨慎。在这里,您可以阅读他们关于公开 OpenGL ES 2.0 层的最佳方式的谨慎讨论。
相比之下,Libgdx 的方法似乎更具侵略性。两者都有优点和缺点。我在我的游戏中使用位于 PlayN 之上的 Vecmath 进行了一些 3D 计算。它是代码,你可以在可行的情况下混合搭配。
鉴于它们在目的和执行方面非常相似,因此很可能存在相当多的异花授粉。您可以在此处看到,大部分 Maven 对 Libgdx 的支持是从 PlayN 的配置中复制而来的。
http://www.badlogicgames.com/wordpress/?p=2707
此外,由于 Michael (PlayN) 创建 IVKM 所做的工作,libgdx 仅支持 iOS。然后,Mario 还必须为他的 C++ 特性添加 JNI 支持。
http://www.badlogicgames.com/wordpress/?p=2791
两个项目都了解对方,并从各自前进的道路上相互学习。
就稳定性而言,最好通过各自拥有的成功项目来衡量。 PlayN 上的 Tupsu 和 AngrybirdsChrome,Libgdx 上的 Ingress 和其他。
PlayN 是纯 java,因为它位于 Android/html api 等之上。Libgdx 在某些平台上似乎有一些 C++。这在很大程度上取决于您在做什么,即对于 Web,GWT 实际上不能编译任何 C++ 模块。此外,Java 与 C++ 的速度相当(通常稍慢,有时更快),前提是您可以控制 GC,并且不会教条地使用语言。
话虽如此,C++ 在某些用例中可能仍然有用。
其他人回答说 Libgdx 可以在单核手机上支持巨大的 Sprite 吞吐量,这暗示这是因为 C++。这不是 libgdx 使用 C++ 的领域。查看功能。
http://libgdx.badlogicgames.com/features.html
两个框架在 sprite 吞吐量方面的表现可能相似。您可以在此处享受 PlayN 的网络性能测试的乐趣。点击统计计数器增加数字。
http://samskivert.com/playn/perf-test/
两者都有诸如菜单 UI 之类的东西,它们位于框架之上。
我最终还是坚持使用 PlayN,因为我认为还没有真正的理由来切换,这就是我开始的原因。您的里程可能会有所不同。
关于android - libgdx 还是 playn?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11962138/
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
我在思考流量控制的最佳实践。我应该走哪条路?1)不要检查任何东西并让程序失败(更清晰的代码,自然的错误消息):defself.fetch(feed_id)feed=Feed.find(feed_id)feed.fetchend2)通过返回nil静默失败(但是,“CleanCode”说,你永远不应该返回null):defself.fetch(feed_id)returnunlessfeed_idfeed=Feed.find(feed_id)returnunlessfeedfeed.fetchend3)抛出异常(因为不按id查找feed是异常的):defself.fetch(feed_id
eruby和erb有什么区别?哪些考虑因素会促使我选择其中之一?我的应用程序正在为网络设备(路由器、负载平衡器、防火墙等)生成配置文件。我的计划是对配置文件进行模板化,在源文件中使用嵌入式ruby(通过eruby或erb)来执行诸如迭代生成路由器的所有接口(interface)配置block之类的操作(这些block都非常相似,仅在标签上有所不同和IP地址)。例如,我可能有这样一个配置模板文件:hostnamesample-routerlogging10.5.16.26当通过嵌入式ruby解释器(erb或eruby)运行时,会产生以下输出:hostnamesample-rout
所以,我正在尝试RubyonRails指南的入门部分here.我不明白line在本教程中。引用它:Theparamsmethodistheobjectwhichrepresentstheparameters(orfields)cominginfromtheform.我以前确实有一些Rails方面的经验,而且我一直假设params是一个散列。但这里他们称之为方法,它是一个对象。params是方法还是哈希?还有,在ruby中,方法也是对象吗? 最佳答案 params是一个返回ActionController::Parameters对象的
Asitcurrentlystands,thisquestionisnotagoodfitforourQ&Aformat.Weexpectanswerstobesupportedbyfacts,references,orexpertise,butthisquestionwilllikelysolicitdebate,arguments,polling,orextendeddiscussion.Ifyoufeelthatthisquestioncanbeimprovedandpossiblyreopened,visitthehelpcenter提供指导。11年前关闭。我是一位精通HTML
考虑Ruby类Foo::Bar。惯例是将“Foo”命名空间作为一个模块,但它也可以很容易地作为一个类:moduleFoo;classBar;end;end对比:classFoo;classBar;end;end在第二种情况下,Bar不是Foo的内部类,它只是在Foo的单例上定义的另一个常量。在这两种情况下,父类(superclass)都是Object并且它们只包含Kernel模块。它们的祖先链是相同的。因此,除了您可以根据其类使用Foo进行的操作(如果是类则实例化,如果是模块则扩展/包含),命名空间的性质是否对有任何影响酒吧?是否有令人信服的理由选择其中一个名称间距而不是另一个?我看到
我正在创建一个Rails应用程序,它将使用相当多的外部API,例如SalesForce、FolderGrid(如Dropbox)等,它们都会同步到我的数据库。我从来没有使用过外部api调用,所以我创建了一些基本的Ruby脚本和分散的方法来测试对这些资源的调用。现在我想用我的完整Rails应用程序来实现它们。到目前为止,我首先在我的/lib文件夹中创建一个目录来保存api调用模块/类。/lib/apis/foldergrid.rb现在我不确定组织代码的最佳方法是什么。在我的独立Ruby脚本中,我有用于身份验证、创建文件夹、审核文件、下载文件等的方法。模块中应该包含什么?我什至需要一个模块
我对网络编程还很陌生(或者实际上,对网络编程很陌生,因为我上次弄乱网络是HTML1.1),但现在需要快速部署网络应用程序。似乎每次我转身,都有新的首字母缩略词和技术需要学习(JSON、XMLRPC、GWT、Javascript、Rails等)。这是我的应用必须执行的操作:给定用户名和密码,进行身份验证(很简单,显然一切都这样做)。允许用户上传大量数据进行处理。处理该数据。允许用户下载他们处理过的数据。我已经有了用于处理数据的Java脚本和数据库。在一台机器上,我可以运行一系列命令行程序来处理传入的数据block并将结果放回mysql数据库。这已经存在并且有效。我想为这个任务构建一个网络
我有一个rubyonrails站点(rails2.0.2,ruby1.8.6)同时安装了rubyzip和zipruby,但是它们在File.exists上有冲突吗?方法所以我想删除一个。关于future最好的压缩API的普遍共识是什么?两者之间有明显的优势吗? 最佳答案 据我所知,rubyzip有时会奇怪地处理zip文件,因为它自己处理zip文件索引和记录。例如,如果您使用rubyzip解压一个docx文件并重新打包,MicrosoftWord将无法打开它。但是zipruby使用非常标准的libzipC库(带有轻微的定制
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我使用PHP的时间太长了,对它感到厌倦了。我也想学习一门新语言。我一直在使用Ruby并且喜欢它。我必须在Rails和Sinatra之间做出选择,那么您会推荐哪一个?Sinatra真的不能用来构建复杂的应用程序,它只能用于简单的应用程序吗?