org libreria library games for descargar java lwjgl slick2d

java - libreria - lwjgl descargar



Slick2D vs LWJGL recta (2)

Muy buena respuesta de normalocity, solo quiero decir que si realmente desea optimizar su escena de dibujo en Slick2D, necesita saber que el método de dibujo estándar de Slick usa glBegin / glEnd.

Con un montón de sprite (~ 10 000), este método es muy lento. Para evitar este problema, puede usar el método drawEmbedded en una hoja de sprite muy grande o hacer su propio método con LWJGL. Lo mejor es hacer una representación VBO => http://lwjgl.org/wiki/index.php?title=Using_Vertex_Buffer_Objects_(VBO ).

He estado adentrándome en la programación de juegos con Slick2D, y comencé a preguntarme si a largo plazo sabría que LWJGL sería más útil. Por un lado, Slick2D es rápido y simple, pero parece que LWJGL es más adaptable en el sentido de que tiene capacidades 2D y 3D. Para alguien que sea intermedio en java y quiera hacer juegos, ¿valdría la pena el esfuerzo adicional de aprender LWJGL desde el principio?


No creo que los dos estén realmente relacionados. Quiero decir, sé que Slick está construido sobre LWGJL, pero no es a eso a lo que me refiero aquí.

Slick existe para aprovechar los gráficos de hardware y la aceleración de sonido, y para dar ese poder a los juegos 2D con un conjunto de objetos y clases que tienen sentido para juegos 2D (sprites y tilemaps, a diferencia de los modelos geométricos y el espacio de coordenadas 3D). Eso es todo, esa es su misión, y está diseñada para ser asombrosa al resolver ese problema. El hecho de que Slick se base en LWJGL es simplemente una cuestión de que LWJGL es una biblioteca sobre la cual se puede construir algo como Slick. En la historia de las personas que intentan hacer juegos en Java, el rendimiento de los gráficos siempre ha sido un problema importante para sacar algo de calidad al mercado. Slick esencialmente elimina ese obstáculo para los juegos 2D en el escritorio (y con suerte en Android, algún día).

Al considerar Slick vs. LWJGL, es una especie de "herramienta adecuada para el trabajo correcto". Si estás construyendo un juego 2D en Java, Slick es una manera increíble de hacerlo. Si realmente está creando un juego en 3D (o un juego con una vista 2D de arriba hacia abajo, pero tiene el requisito de renderizar sus escenas en 3D), entonces LWJGL puede ser su mejor punto de partida.

Sin embargo, si estás creando un juego en 2D y crees que vale la pena dedicar tiempo a hacerlo en LWJGL, el 99% de lo que vas a construir para que funcione será Sprites, animación, clave Entrada, pathfinding, y sonido. Slick ya ha creado estas cosas para ti: tienes casi la seguridad de que estarás reinventando la rueda y, como estás bien intencionado, no lo harás tan bien como los desarrolladores que han pasado años trabajando en Slick. El renderizado de juegos en 2D es un problema resuelto, no pierdas el tiempo. A menos que esté realmente interesado en los motores de renderizado (ni siquiera estoy hablando de los motores de juego en los que pasa su tiempo trabajando en el juego y la mecánica, sino en la tecnología de renderización real) lo encontrará más que un poco frustrante. La frustración no vendrá porque es un problema demasiado difícil de resolver (ciertamente puedes resolverlo), es solo que pasaste meses construyéndolo, y cuando hayas terminado ya tendrás un subconjunto de las características. Incluido en Slick, pero no hay juego que mostrar. Las personas inteligentes que crearon a Slick ya resolvieron los elementos de un motor de juego 2D en Java para ti: aprovecha su trabajo y no pases meses intentando construir algo que está justo enfrente.

Para hacer una analogía final, la gran explosión de juegos en la PC a principios de los 90 realmente sucedió cuando DirectX llegó al mercado. Claro que hubo videojuegos en todo el camino de regreso a Atari, Apple] [, Commodore, etc., pero hubo una explosión, un salto absolutamente enorme en juegos y tecnología cuando DirectX llegó a bordo y evitó que los desarrolladores escribieran sus propios Drivers para sonido y video. Eso es, literalmente, lo que los desarrolladores tenían que hacer en ese momento si escribían juegos: escribir o licenciar controladores individuales para cada tarjeta de sonido y video en la que querían que se ejecutara su juego. DirectX les dio a los desarrolladores la oportunidad de dejar de preocuparse por eso, solo por preocuparse de que el hardware fuera "compatible con DirectX" a una determinada versión, y fuera mínimamente poderoso para brindar el rendimiento que necesitaban, y eso fue todo.

Es difícil explicar qué tan grande fue esto, pero si estás desarrollando juegos en 2D en Java, Slick (o una de las otras herramientas de juego que existen) es tu DirectX.