首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Slick2D vs直线型LWJGL

Slick2D vs直线型LWJGL
EN

Stack Overflow用户
提问于 2011-12-03 06:41:08
回答 2查看 17.4K关注 0票数 32

我一直在钻研Slick2D的游戏编程,我开始怀疑从长远来看,了解LWJGL是否会更有帮助。一方面,Slick2D是快速和简单的,但它似乎更具适应性,因为它同时具有2D和3D功能。对于那些java中级水平,想要开发游戏的人来说,立即学习LWJGL是否值得呢?

EN

回答 2

Stack Overflow用户

发布于 2011-12-03 13:37:36

我不认为这两者真的有什么关系。我的意思是,我知道Slick是建立在LWGJL之上的,但这不是我要说的。

Slick的存在是为了利用硬件图形和声音加速,并通过一组对2D游戏有意义的对象和类(精灵和地图,而不是几何模型和3D坐标空间)将这种能力提供给2D游戏。就是这样--这就是它的使命,它就是为解决这个问题而打造的。事实上,Slick是基于LWJGL的,LWJGL是一个库,您可以在其上构建类似Slick的东西。在人们尝试用Java开发游戏的历史中,图形性能一直是将任何质量的东西推向市场的主要问题。Slick从根本上消除了2D游戏在桌面上的障碍(希望有一天能在Android上)。

当考虑Slick与LWJGL时,它是一种“适合正确工作的正确工具”。如果你正在用Java构建一个2D游戏,Slick是一个很棒的选择。如果您实际上正在构建3D游戏(或具有自上而下2D视图的游戏,但您需要实际渲染3D场景),那么LWJGL可能是您最好的起点。

但是,如果你正在构建一个2D游戏,并且你认为值得花时间在LWJGL中构建它,那么你要构建的99%的东西将是精灵、动画、按键输入、寻路和声音。Slick已经为你构建了这些东西--你肯定会重新发明轮子,尽管你的意图很好,但你不会像那些花了多年时间在Slick上工作的开发人员做得那么好。2D游戏渲染是一个可以解决的问题--不要浪费时间。除非你是认真的到渲染引擎(我甚至不是在谈论游戏引擎,在这里你可以花时间研究游戏的玩法和机制,而是实际的渲染技术),否则你会发现它非常令人沮丧。挫折不会来自于它是一个太难解决的问题(你当然可以解决它),只是你需要花几个月的时间来构建它,当你完成后,你将拥有Slick中已经包含的一些功能子集,但没有游戏可供展示。制作Slick的聪明人已经为你解决了Java中2D游戏引擎的元素--充分利用他们的工作,而不是花几个月的时间来构建就在你面前的东西。

最后做一个类比,90年代初PC上游戏的爆炸式增长确实发生在DirectX上市的时候。当然,从雅达利、苹果、Commodore等等都有视频游戏,但当DirectX加入进来后,游戏和技术出现了巨大的飞跃,使开发人员不必再为声音和视频编写自己的驱动程序。这就是当时开发人员在编写游戏时必须做的事情-为他们希望在其上运行游戏的每个声卡和视频卡编写或授权单独的驱动程序。DirectX让开发人员有机会不再担心这一点--只担心硬件与某个版本"DirectX兼容“,并且功能最小,无法提供他们所需的性能,仅此而已。

很难解释这到底有多大--但如果你正在用Java开发2D游戏-- Slick (或其他游戏工具)就是你的DirectX!

票数 77
EN

Stack Overflow用户

发布于 2012-08-19 23:58:47

normalocity的回答非常好,我只是想说,如果你想在Slick2D中真正优化你的绘图场景,你需要知道比标准的绘制方法更平滑地使用glBegin/glEnd。

对于大量的精灵(大约10000),这种方法非常慢。为了避免这个问题,你可以在一个很大的sprite-sheet上使用drawEmbedded方法,或者用LWJGL语言制作你自己的方法。最好的方法是制作一个VBO渲染的=> http://lwjgl.org/wiki/index.php?title=Using_Vertex_Buffer_Objects_(VBO

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8363606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档