Diferencia entre revisiones de «Programación de videoxogos 2D / 3D con LIBGDX»
(No se muestran 17 ediciones intermedias del mismo usuario) | |||
Línea 39: | Línea 39: | ||
*http://opengameart.org/content/alienspritesheet | *http://opengameart.org/content/alienspritesheet | ||
*http://opengameart.org/content/basic-2d-car-collection | *http://opengameart.org/content/basic-2d-car-collection | ||
+ | *http://opengameart.org/content/spaceship-2 | ||
+ | ::Gráficos: PlatForge project, art by Stafford McIntyre | ||
*http://opengameart.org/content/consolidated-hard-vacuum-terrain-tilesets | *http://opengameart.org/content/consolidated-hard-vacuum-terrain-tilesets | ||
::Gráficos: "Hard Vacuum" art by Daniel Cook (Lostgarden.com) | ::Gráficos: "Hard Vacuum" art by Daniel Cook (Lostgarden.com) | ||
Línea 59: | Línea 61: | ||
=='''UNIDADE 1: Instalación JDK, Android SDK e framework LibGDX.'''== | =='''UNIDADE 1: Instalación JDK, Android SDK e framework LibGDX.'''== | ||
+ | |||
+ | *[[LIBGDX_Tarefas_a_entregar_Unidade_1 | Tarefas UNIDADE 1]] | ||
+ | |||
*[[LibGDX: Obxectivos e escenarios da UNIDADE 1]] | *[[LibGDX: Obxectivos e escenarios da UNIDADE 1]] | ||
Línea 69: | Línea 74: | ||
− | |||
− | |||
Línea 76: | Línea 79: | ||
=='''UNIDADE 2: Desenvolvemento de xogos 2D.'''== | =='''UNIDADE 2: Desenvolvemento de xogos 2D.'''== | ||
− | + | ||
+ | *[[LIBGDX_Tarefas_entregar_Unidade_2 | Tarefas UNIDADE 2]] | ||
+ | |||
+ | |||
*[[LIBGDX_Obxectivos e escenarios da UNIDADE 2 | Obxectivos e escenarios da UNIDADE 2]] | *[[LIBGDX_Obxectivos e escenarios da UNIDADE 2 | Obxectivos e escenarios da UNIDADE 2]] | ||
*[[LIBGDX_Fases no desenvolvemento dun xogo | Fases no desenvolvemento dun xogo]] | *[[LIBGDX_Fases no desenvolvemento dun xogo | Fases no desenvolvemento dun xogo]] | ||
Línea 97: | Línea 103: | ||
− | |||
− | |||
− | |||
*[[LIBGDX_Anexo tipos de datos | Anexo: Tipos de datos.]] | *[[LIBGDX_Anexo tipos de datos | Anexo: Tipos de datos.]] | ||
*[[LIBGDX_Anexo Consellos de programacion | Anexo Consellos de programación.]] | *[[LIBGDX_Anexo Consellos de programacion | Anexo Consellos de programación.]] | ||
− | |||
Línea 131: | Línea 133: | ||
=='''UNIDADE 4: Desenvolvemento de xogos 3D.'''== | =='''UNIDADE 4: Desenvolvemento de xogos 3D.'''== | ||
+ | |||
+ | *[[LIBGDX_Tarefas_entregar_UD4 | Tarefas UNIDADE 4]] | ||
+ | |||
+ | |||
*[[LIBGDX_Obxectivos e escenarios da UNIDADE 4 | Obxectivos e escenarios da UNIDADE 4]] | *[[LIBGDX_Obxectivos e escenarios da UNIDADE 4 | Obxectivos e escenarios da UNIDADE 4]] | ||
Línea 141: | Línea 147: | ||
*[[LIBGDX_Colisions3D | Colisións en 3D]] | *[[LIBGDX_Colisions3D | Colisións en 3D]] | ||
*[[LIBGDX_Empaquetado_distribución. | Empaquetado e distribución.]] | *[[LIBGDX_Empaquetado_distribución. | Empaquetado e distribución.]] | ||
+ | |||
Línea 157: | Línea 164: | ||
+ | |||
+ | |||
+ | <br> | ||
+ | |||
+ | =='''UNIDADE 6: Exemplos de xogos desenvolvidos.'''== | ||
+ | |||
+ | *[[LIBGDX_EXEMPLOS DE XOGOS 2D | EXEMPLOS DE XOGOS 2D.]] | ||
*[[LIBGDX_EXEMPLOS DE XOGOS 3D | EXEMPLOS DE XOGOS 3D.]] | *[[LIBGDX_EXEMPLOS DE XOGOS 3D | EXEMPLOS DE XOGOS 3D.]] | ||
+ | |||
+ | |||
+ | |||
<br> | <br> | ||
+ | |||
+ | |||
=='''ANEXO I: Clases útiles.'''== | =='''ANEXO I: Clases útiles.'''== | ||
Línea 166: | Línea 185: | ||
*[https://github.com/xoppa/world/blob/master/src/com/xoppa/android/misc/RadialSprite.java Clase RadialSprite]: Permite debuxar unha parte dunha TextureRegion indicando un ángulo (por exemplo no caso de utilizar un progressbar circular). | *[https://github.com/xoppa/world/blob/master/src/com/xoppa/android/misc/RadialSprite.java Clase RadialSprite]: Permite debuxar unha parte dunha TextureRegion indicando un ángulo (por exemplo no caso de utilizar un progressbar circular). | ||
+ | |||
+ | |||
+ | |||
+ | <br> | ||
=='''ANEXO II: Temas non explicados.'''== | =='''ANEXO II: Temas non explicados.'''== | ||
Línea 175: | Línea 198: | ||
*[https://github.com/libgdx/libgdx/wiki/Box2d Box2D. Motor de físicas 2D.] | *[https://github.com/libgdx/libgdx/wiki/Box2d Box2D. Motor de físicas 2D.] | ||
*[https://github.com/libgdx/box2dlights Box2D Light.] | *[https://github.com/libgdx/box2dlights Box2D Light.] | ||
+ | ::* [http://box2d.org/manual.pdf Manual Box2D] | ||
*[https://github.com/libgdx/libgdx/wiki/Bullet-physics Bullet. Motor de físicas 3D.] | *[https://github.com/libgdx/libgdx/wiki/Bullet-physics Bullet. Motor de físicas 3D.] | ||
*[https://github.com/EsotericSoftware/kryonet Librerías para facer xogos con comunicación cliente/servidor tcp/udp] | *[https://github.com/EsotericSoftware/kryonet Librerías para facer xogos con comunicación cliente/servidor tcp/udp] | ||
Línea 180: | Línea 204: | ||
:*[https://github.com/Trixt0r/spriter Librerías Java para facer uso do programa anterior.] | :*[https://github.com/Trixt0r/spriter Librerías Java para facer uso do programa anterior.] | ||
*[http://overlap2d.com/ Overlap2D]: Editor que permite integrar nunha escena animacións, gráficos, efectos de partícula, luces e físicas e exportalo para utilizalo no noso xogo. | *[http://overlap2d.com/ Overlap2D]: Editor que permite integrar nunha escena animacións, gráficos, efectos de partícula, luces e físicas e exportalo para utilizalo no noso xogo. | ||
− | *[https://github.com/libgdx/libgdx/wiki/Memory-management Manexo de memoria:] Indica como utilizar un pool para xestionar correctamente a memoria, coma nos casos de utilizar dinamicamente un número indeterminado de personaxes ou obxectos (como inimigos e balas, por exemplo). | + | *[https://github.com/libgdx/libgdx/wiki/Memory-management Manexo de memoria:]: Indica como utilizar un pool para xestionar correctamente a memoria, coma nos casos de utilizar dinamicamente un número indeterminado de personaxes ou obxectos (como inimigos e balas, por exemplo). |
+ | *[https://github.com/junkdog/artemis-odb/wiki/About Framework Artemis-odb]: Framework baseado en Sistemas de Entidades para desenvolver xogos. | ||
+ | *[https://github.com/Trixt0r/spriter Librería Java para animación de sprites]: Usada para facer animacións de gráficos. | ||
+ | *[https://github.com/ndee85/coa_tools Addon para Blender]: Addon que se integra xunto có [https://www.blender.org/ programa Blender] e permite facer animacións de gráficos 2D. | ||
− | =='''ANEXO III: | + | <br> |
+ | |||
+ | =='''ANEXO III: Recursos'''== | ||
* MUSICA-AUDIOS: | * MUSICA-AUDIOS: | ||
Línea 207: | Línea 236: | ||
* Editor para Stage UI | * Editor para Stage UI | ||
::* https://github.com/cobolfoo/gdx-skineditor | ::* https://github.com/cobolfoo/gdx-skineditor | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <br> | ||
=='''ANEXO IV: Artigos interesantes'''== | =='''ANEXO IV: Artigos interesantes'''== | ||
+ | *[https://github.com/GoranM/bdx/wiki Motor de xogos 3D lixeiro para ser utilizado xunto có Blender] | ||
*[https://code.google.com/p/libgdx-users/wiki/IntegratingAndroidNativeUiElements3TierProjectSetup Como enviar mensaxes Toast, Alert´s, amosar unha ListView de Android e invocar un Intent dende o proxecto Core]. | *[https://code.google.com/p/libgdx-users/wiki/IntegratingAndroidNativeUiElements3TierProjectSetup Como enviar mensaxes Toast, Alert´s, amosar unha ListView de Android e invocar un Intent dende o proxecto Core]. | ||
*[http://www.slideshare.net/mariozechner5/libgdx-jam-survival-guide?ref=http://itch.io/jam/libgdxjam Guia coas diferentes fases polas que se debe pasar para crear un xogo en equipo] | *[http://www.slideshare.net/mariozechner5/libgdx-jam-survival-guide?ref=http://itch.io/jam/libgdxjam Guia coas diferentes fases polas que se debe pasar para crear un xogo en equipo] | ||
Línea 217: | Línea 252: | ||
− | + | <br> | |
− | |||
=='''ANEXO V: Bibliografía e titoriais'''== | =='''ANEXO V: Bibliografía e titoriais'''== | ||
Línea 234: | Línea 268: | ||
− | '''Nota:''' Nos libros fixádevos no ano de publicación por se hai | + | '''Nota:''' Nos libros fixádevos no ano de publicación por se hai edicións máis actualizadas. |
Línea 245: | Línea 279: | ||
− | <br> -- [[Usuario:angelfg|Ángel D. Fernández González]] -- ( | + | <br> -- [[Usuario:angelfg|Ángel D. Fernández González]] -- (2017). |
Revisión actual del 15:25 8 feb 2017
Sumario
- 1 Licenza do curso
- 2 UNIDADE 0: Coñecementos de partida, observacións sobre o material e explicación inicial
- 3 UNIDADE 1: Instalación JDK, Android SDK e framework LibGDX.
- 4 UNIDADE 2: Desenvolvemento de xogos 2D.
- 5 UNIDADE 3: Desenvolvemento de xogos 2D. AVANZADO.
- 6 UNIDADE 4: Desenvolvemento de xogos 3D.
- 7 UNIDADE 5: Desenvolvemento de xogos 3D Avanzado.
- 8 UNIDADE 6: Exemplos de xogos desenvolvidos.
- 9 ANEXO I: Clases útiles.
- 10 ANEXO II: Temas non explicados.
- 11 ANEXO III: Recursos
- 12 ANEXO IV: Artigos interesantes
- 13 ANEXO V: Bibliografía e titoriais
Licenza do curso
Este manual de Curso Platega: Desenvolvemento de xogos 2D/3D Multiplataforma (Windows, Linux, Max OS X, Android (+2.2),...) é creado e editado por Ángel D. Fernández González baixo a licenza Creative Commons 3.0:
- Copiar, distribuír e comunicar publicamente a obra, sempre mencionando ós autores.
- Uso non comercial.
- Compartir as modificacións baixo a mesma licenza.
Para calquera outro tipo de uso non contemplado na licenza anterior consulte ó autor: Ángel D. Fernández González.
Neste curso non só imos aprender a manexar o framework LIBGDX, tamén imos aprender un modo de desenrolar xogos.
Dado que o tema é moi extenso, trátase de abrir un abano das posibilidades que nos ofrece o uso do framework Libgdx.
O seu seguimento será realizado a través da plataforma PLATEGA da Consellería de Cultura, Educación e Ordenación Universitaria da Xunta de Galicia.
Cada unha das partes do curso comeza indicando os obxectivos que persegue, así como, o escenario necesario para levalo a cabo.
Os gráficos utilizados e a música foron obtidos de:
Gráficos:
- http://opengameart.org/content/alienspritesheet
- http://opengameart.org/content/basic-2d-car-collection
- http://opengameart.org/content/spaceship-2
- Gráficos: PlatForge project, art by Stafford McIntyre
- Gráficos: "Hard Vacuum" art by Daniel Cook (Lostgarden.com)
Música:
- http://dig.ccmixter.org/files/grapes/16626
- http://www.sonidosmp3gratis.com/download.php?sonido=claxon%20de%20coche
UNIDADE 0: Coñecementos de partida, observacións sobre o material e explicación inicial
- Coñecementos previos necesarios
- LIBGDX: qué é isto ?
- Exemplos de xogos
- Novas do framework LIBGDX
- Material vivo
UNIDADE 1: Instalación JDK, Android SDK e framework LibGDX.
- LibGDX: Obxectivos e escenarios da UNIDADE 1
- Punto de só lectura: Introdución a Android: Versións, APIS e SDK
- Instalación Android Studio (incluído o JDK)
- Instalación do framework LIBGDX
- Execución dos proxectos importados.'Ola mundo'
- Importación dos proxectos a outros computadores
- Versións do Framework Libgdx.Actualización dos proxectos
UNIDADE 2: Desenvolvemento de xogos 2D.
- Obxectivos e escenarios da UNIDADE 2
- Fases no desenvolvemento dun xogo
- Coñecendo a estrutura dos proxectos
- Analizando o proxecto común
- Preparando o 'esqueleto' do noso xogo
- A cámara 2D. Cámara ortográfica.
- Os gráficos.
- Movendo os gráficos. A lóxica do noso xogo.
- Modelo - Vista - Controlador
- Creando o mundo
- As interfaces para capturar eventos.
- As colisións.
- Cambiando de pantalla.
- Fontes.
- Música e efectos de son.
- Gardando datos.
- Empaquetado e distribución.
- Enlaces con seccións avanzadas non relacionadas.
UNIDADE 3: Desenvolvemento de xogos 2D. AVANZADO.
Esta sección non é obrigatoria facela. Está asociada ás diferentes seccións da parte 2D.
- Compás / Acelerómetro.
- Cargar os gráficos de forma conxunta: TextureAtlas.
- Carga dos recursos optimizada. Clase AssetManager.
- Animacións.
- Fontes.
- Vector dirección.
- Xestion de eventos: GestureListener.
- Touchpad (joystick).
- Mapas. Uso de tiled.
- Scene2D UI.
- Scene2D.
UNIDADE 4: Desenvolvemento de xogos 3D.
- Obxectivos e escenarios da UNIDADE 4
- Introdución
- Figuras 3D. Mesh
- A cámara en 3D
- Shader Program
- Animacións en 3D
- Modelos en 3D: Carga e deseño
- Colisións en 3D
- Empaquetado e distribución.
UNIDADE 5: Desenvolvemento de xogos 3D Avanzado.
Esta sección non é obrigatoria facela.
Explicado o uso da nova API 3D. É necesario ter lido a Unidade 4.
UNIDADE 6: Exemplos de xogos desenvolvidos.
ANEXO I: Clases útiles.
- Clase Sprite: Clase que incorpora todo o necesario para gardar información dun personaxe do xogo: Textura, posición, tamaño, cor. Incorpora métodos para escalar, mover e rotar a textura así como para debuxala.
- Clase RadialSprite: Permite debuxar unha parte dunha TextureRegion indicando un ángulo (por exemplo no caso de utilizar un progressbar circular).
ANEXO II: Temas non explicados.
- Bullet. Motor de físicas 3D.
- Librerías para facer xogos con comunicación cliente/servidor tcp/udp
- Brashmonkey: Interesante programa para facer animacións con uso de esqueletos.
- Overlap2D: Editor que permite integrar nunha escena animacións, gráficos, efectos de partícula, luces e físicas e exportalo para utilizalo no noso xogo.
- Manexo de memoria:: Indica como utilizar un pool para xestionar correctamente a memoria, coma nos casos de utilizar dinamicamente un número indeterminado de personaxes ou obxectos (como inimigos e balas, por exemplo).
- Framework Artemis-odb: Framework baseado en Sistemas de Entidades para desenvolver xogos.
- Librería Java para animación de sprites: Usada para facer animacións de gráficos.
- Addon para Blender: Addon que se integra xunto có programa Blender e permite facer animacións de gráficos 2D.
ANEXO III: Recursos
- MUSICA-AUDIOS:
- GRAFICOS:
- Libgdx Tools (inclúe Editor de Partículas, Hiero, Fbx-Conv,...)
- Editor para Stage UI
ANEXO IV: Artigos interesantes
- Motor de xogos 3D lixeiro para ser utilizado xunto có Blender
- Como enviar mensaxes Toast, Alert´s, amosar unha ListView de Android e invocar un Intent dende o proxecto Core.
- Guia coas diferentes fases polas que se debe pasar para crear un xogo en equipo
- Xerador de texturas de planetas en 3D e xerador dun ceo de estrelas: Posibilidade de aplicalo a Libgdx ?
ANEXO V: Bibliografía e titoriais
- LibGDX Tutorial Series
- Libro Libgdx cross platform game development cookbook
- Libro Libgdx game development essentials
- Libro 3ª Edicción Beginning Android Games (2017)
- Libro Edicción 2011 Beginning Android 4 Games Development (Beginning Apress)
Nota: Nos libros fixádevos no ano de publicación por se hai edicións máis actualizadas.
-- Ángel D. Fernández González -- (2017).