User Tools

Site Tools


apuntes:libgdx

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
apuntes:libgdx [28/07/2020 07:54] – [Práctica 2.1] Santiago Faciapuntes:libgdx [07/03/2024 22:39] (current) – [Juegos de ejemplo] Santiago Faci
Line 1: Line 1:
 ====== Desarrollo de videojuegos con libGDX ====== ====== Desarrollo de videojuegos con libGDX ======
 +
 +{{ libgdx-logo.png?200 }}
  
 ===== ¿Qué es libGDX ===== ===== ¿Qué es libGDX =====
Line 19: Line 21:
 {{ youtube>hA2e3xIuNlk }} {{ youtube>hA2e3xIuNlk }}
 \\ \\
 +Actualmente incluso cuenta con una [[https://libgdx.com/wiki/|Wiki muy completa con muchísima documentación]]
 ==== Algunos conceptos de videojuegos ==== ==== Algunos conceptos de videojuegos ====
  
Line 842: Line 844:
 ===== Hello World! ===== ===== Hello World! =====
  
-En [[https://github.com/libgdx/libgdx/wiki/|la Wiki oficial de libGDX]] existe una guía muy interesante sobre cómo realizar un primer videojuego con este framework, se llama [[https://github.com/libgdx/libgdx/wiki/A-simple-game|A simple game]] y es una sencilla aplicación que muestra muy bien cómo empezar a trabajar con este motor. Conviene echarle un vistazo puesto que sienta las bases de cómo trabajar con los aspectos más básicos de libGDX.+Antes de comenzar, necesitaremos lanzar el //starter// que hay disponible en la web de libGDX donde además se explica cómo configurarlo en su guía [[https://libgdx.com/wiki/start/setup|Set up a project]]. Con eso conseguiremos crear la semilla de lo que será nuestro proyecto y a partir de lo cual comenzaremos a trabajar. 
 + 
 +En [[https://libgdx.com/wiki/|la Wiki oficial de libGDX]] existe una guía muy interesante sobre cómo realizar un primer videojuego con este framework, se llama [[https://libgdx.com/wiki/start/a-simple-game|A simple game]] y es una sencilla aplicación que muestra muy bien cómo empezar a trabajar con este motor. Conviene echarle un vistazo puesto que sienta las bases de cómo trabajar con los aspectos más básicos de libGDX.
  
 Para este curso, sobre el ejemplo básico he preparado 3 versiones más de ese primer juego utilizando estructuras más complejas para mostrar algunos conceptos más avanzados que se pueden utilizar en videojuegos más complejos: Para este curso, sobre el ejemplo básico he preparado 3 versiones más de ese primer juego utilizando estructuras más complejas para mostrar algunos conceptos más avanzados que se pueden utilizar en videojuegos más complejos:
Line 1852: Line 1856:
 </code> </code>
  
-Se puede encontrar un driver para SQLite y Java en la web del proyecto [[https://github.com/xerial/sqlite-jdbc|Xerial-SQLite]] y un enlace directo de descarga del fichero //jar// en [[https://bitbucket.org/xerial/sqlite-jdbc/downloads/|Descargas]]+Se puede encontrar un driver para SQLite y Java en la web del proyecto [[https://github.com/xerial/sqlite-jdbc|Xerial-SQLite]].
  
 ===== Empaquetar el videojuego ===== ===== Empaquetar el videojuego =====
  
 Actualmente, puesto que los proyectos de libGDX se construyen de forma más o menos automática, Actualmente, puesto que los proyectos de libGDX se construyen de forma más o menos automática,
- lo más cómodo es [[https://github.com/libgdx/libgdx/wiki/Gradle-on-the-Commandline#packaging-for-the-desktop|empaquetar el videojuego utilizando Gradle]]+ lo más cómodo es [[https://libgdx.com/wiki/deployment/deploying-your-application|empaquetar el videojuego utilizando Gradle]]
  
 ---- ----
  
-===== Ejercicios ===== 
  
-{{ ejercicio.png?75}} 
- 
-  -  
- 
----- 
 ===== Proyectos de ejemplo ===== ===== Proyectos de ejemplo =====
  
Line 1880: Line 1878:
  
 ==== Juegos de ejemplo ==== ==== Juegos de ejemplo ====
 +
 +  * [[https://github.com/codeandcoke/jumper2dx|Jumper2dx (juego plataformas)]]
  
 <figure> <figure>
-{{jumper2dx.png?400 }}+{{jumper2dx.png?700 }}
 <caption>Jumper2dx, juego de plataformas</caption></figure> <caption>Jumper2dx, juego de plataformas</caption></figure>
  
-  * [[https://github.com/codeandcoke/jumper2dx|Jumper2dx (juego plataformas)]]+  * [[https://github.com/codeandcoke/jfighter2dx|Jfighter2dx (juego de naves)]]
  
 <figure> <figure>
-{{jfighter2dx.png?400 }}+{{jfighter2dx.png?700 }}
 <caption>JFighter2dx, juego de naves</caption></figure> <caption>JFighter2dx, juego de naves</caption></figure>
  
-  * [[https://github.com/codeandcoke/jfighter2dx|Jfighter2dx (juego de naves)]]+  * [[https://github.com/codeandcoke/jbombermanx|JBombermanx (juego de mapas)]]
  
 <figure> <figure>
-{{jbombermanx.png?400 }}+{{jbombermanx.png?700 }}
 <caption>JBombermanx, juego de mapas</caption></figure> <caption>JBombermanx, juego de mapas</caption></figure>
  
-  * [[https://github.com/codeandcoke/jbombermanx|JBombermanx (juego de mapas)]]+  * [[https://github.com/codeandcoke/arkanoidx|Arkanoidx (juego tipo puzzle)]]
  
 <figure> <figure>
-{{arkanoidx.png?400 }}+{{arkanoidx.png?700 }}
 <caption>Arkanoidx, juego de puzzles</caption></figure> <caption>Arkanoidx, juego de puzzles</caption></figure>
  
-  * [[https://github.com/codeandcoke/arkanoidx|Arkanoidx (juego tipo puzzle)]]+  * [[https://github.com/codeandcoke/minijumper2dx|MiniJumper2dx (juego plataformas)]]
  
 <figure> <figure>
-{{minijumper2dx.png?400 }}+{{minijumper2dx.png?700 }}
 <caption>Minijumper2dx, juego de plataformas</caption></figure> <caption>Minijumper2dx, juego de plataformas</caption></figure>
- 
-  * [[https://github.com/codeandcoke/minijumper2dx|MiniJumper2dx (juego plataformas)]] 
- 
-===== Práctica 2.1 ===== 
- 
-=== Objetivos === 
- 
-Desarrollo de un videojuego 2D 
- 
-=== Enunciado === 
- 
-Se debe desarrollar un videojuego 2D que cumpla con los requisitos descritos a continuación. La temática del juego será elección del alumno. Se podrán usar tanto elementos gráficos como de audio que no hayan sido creados por uno mismo. 
- 
-Será requisito indispensable que el juego se programe siguiendo el paradigma de Programación Orientada a Objetos. 
- 
-=== Requisitos (1 pto cada uno) === 
- 
-  * El videojuego debe contar con un personaje principal que el jugador podrá manejar y debe tener un inicio, un final y un objetivo claro. Hay que preparar al menos dos niveles de juego claramente diferenciados. 
-  * El videojuego mostrará información en pantalla al usuario (puntuación, energía, pantalla actual) y ésta se actualizará cuando corresponda. 
-  * Utilizar menús para iniciar/configurar/terminar la partida y mostrar las instrucciones del juego. Hay que tener en cuenta que se tendrá que poder jugar otra partida sin necesidad de salir del juego. Añadir, al menos, dos opciones de juego configurables que afecten al desarrollo del mismo. 
-  * El juego dispondrá de características de sonido y animaciones en todos los caracteres con movimiento. 
-  * El juego dispondrá de NPCs (Non-Playable Characters) (al menos 3 diferentes) que deberán interactuar con el personaje del jugador. 
- 
-=== Otras funcionalidades (1 pto cada una) === 
- 
-  * Subir el videojuego, como repositorio, a GitHub y gestionar el proyecto con dicha herramienta (gestionar algunas //issues//, crear alguna //release//, editar la wiki con información sobre el proyecto y las instrucciones del juego). 
-  * Al finalizar la partida se almacenará la puntuación del jugador (con su nombre) y se mostrará el top 10 puntuaciones. 
-  * Añadir algún tipo de Inteligencia Artificial a algún NPC del juego. 
-  * Es posible mostrar/ocultar un menú durante el juego con opciones (activar/desactivar sonido, volver al menú principal, salir del juego y continuar con la partida). 
-  * Añadir dos niveles más al juego 
-  * Añadir opciones de multijugador (al menos dos jugadores) local o en red. 
-  * Añadir dos nuevos tipos de NPCs (al menos otros 3). 
-  * Crear un generador de niveles (utilizando TiledMaps o cualquier otro tipo de fichero de entrada) de forma que sea posible incorporar niveles nuevos para el juego de forma sencilla sin necesidad de tocar el código. 
-  * Guardar y cargar partidas para continuar donde se dejó. 
-  * Modificar el comportamiento o características del jugador durante el juego (más energía, más vidas, mejor armamento, más velocidad, . . .) de forma permanente o temporal (//powerups//). Añadir al menos 3 //powerups// diferentes. 
-  * El usuario podrá escoger entre diferentes personajes del juego (al menos 3) con características diferentes. 
-  * Trasladar el juego a más de una plataforma (PC, móvil, web, . . .). 
  
 ---- ----
  
-(c) 2016-2020 Santiago Faci+(c) 2016-2023 Santiago Faci
  
  
apuntes/libgdx.1595922848.txt.gz · Last modified: 28/07/2020 07:54 by Santiago Faci