¿Tienes curiosidad por el desarrollo de juegos en 3D? ¡Ahora es el momento de aprender! Esta serie de tutoriales de cinco partes demostrará cómo construir un juego simple con ShiVa3D Suite, un motor de juegos 3D multiplataforma y una herramienta de desarrollo. Esta serie fue diseñada originalmente solo para miembros de Tuts + Premium, pero se entregará a la comunidad de forma gratuita con cada parte publicada de forma consecutiva durante los próximos 5 días. Sigue leyendo para comenzar tu viaje hacia la programación 3D.!
En esta serie de tutoriales, presentaremos el desarrollo de juegos en 3D para la plataforma Android utilizando ShiVa3D Suite. Desarrollar una aplicación de Android con gráficos 3D puede ser difícil por varias razones. Los desarrolladores deben estar familiarizados con la API de OpenGL y la API de Android específica que lo admite. Además, el desarrollo de gráficos en 3D puede incluir código C / C ++ nativo por motivos de rendimiento además del código Java / Objective-C. Esto aumenta el nivel de conocimiento y esfuerzo requerido para desarrollar una aplicación 3D de Android. Además, la creación de gráficos 3D implica una experiencia única independiente de la competencia de programación Java o C / C ++. En resumen, el desarrollo de aplicaciones 3D requiere habilidades avanzadas de diferentes disciplinas.
ShiVa3D Suite es un conjunto de herramientas diseñadas para desarrollar aplicaciones 3D multiplataforma. Estas herramientas facilitan el diseño y la composición de su aplicación en función de tareas y conceptos específicos. Por ejemplo, puede separar un modelo visual 3D de su comportamiento y trabajar en esos aspectos de manera independiente. Además, el desarrollo del juego en la Suite ShiVa3D permite la abstracción del juego desde la plataforma objetivo en particular. Los juegos desarrollados con esta suite se pueden implementar en múltiples plataformas de destino, incluidos los sistemas operativos Windows, iOS y Android, entre otros..
Este tutorial ofrece un ejemplo de cómo desarrollar un juego 3D para la plataforma Android utilizando dos elementos principales de ShiVa3D Suite, ShiVa Editor y ShiVa Authoring Tool. El sistema operativo de destino de esta aplicación tutorial es Android 3.2 (Honeycomb). Sin embargo, también proporcionaremos una discusión sobre cómo migrar el juego a dispositivos iOS, como el iPhone / iPod Touch y el iPad / iPad2..
Este tutorial ha sido organizado como una serie de 5 partes. En la parte 1, presentaremos la aplicación tutorial, discutiremos varios conceptos de ShiVa3D y las herramientas principales en la Suite ShiVa3D. En la parte 1, también explicaremos los archivos en el archivo de descarga que acompaña a este tutorial. En la parte 2, comenzaremos a describir cómo desarrollar el juego utilizando el Editor ShiVa. Presentaremos los módulos del Editor ShiVa utilizados en el desarrollo de la aplicación tutorial. Luego, hablaremos sobre los archivos de modelos de Collada que representan a los personajes principales de la aplicación. Finalmente, discutiremos algunos pasos iniciales para crear la aplicación, como crear el juego y la escena, así como importar los modelos de Collada..
En la parte 3, mostraremos cómo editar la escena de nuestra aplicación. También comenzaremos a ingresar el código para los AIModels del juego. En la parte 4, terminaremos de codificar los restantes AIModels y realizaremos pruebas de unidad animando el juego. Luego exportaremos el juego desde ShiVa Editor para importarlo a Shiva Authoring Tool. Finalmente, discutiremos dos opciones de creación diferentes en la Herramienta de creación de Shiva, una para generar un ejecutable de Android y otra para generar un proyecto de Eclipse.
En la parte 5, comenzaremos personalizando el juego en Eclipse. Esto incluirá la configuración del proyecto Eclipse, los cambios de código y la construcción del código Java y las bibliotecas nativas. En ese momento habremos completado el tutorial en términos de desarrollo e implementación. En el resto de la parte 5, revisaremos el código, analizaremos cómo migrar el juego a dispositivos iOS y daremos algunas observaciones finales..
El modelo de Collada y los archivos de imagen relacionados para el pato amarillo de la bañera, así como el modelo de Collada para el huevo son cortesía de Sony Computer Entertainment Inc. Estos modelos se han descargado de la sección de Muestras básicas del Banco de modelos de collada.org, y se licencian bajo los términos de la Licencia de Fuente Compartida SCEA.
La textura de "mármol" utilizada en el fondo se ha descargado de http://www.texturewarehouse.com y está licenciada bajo la licencia Creative Commons, Attribution-NonCommercial-ShareAlike 2.0.
El autor se ha beneficiado enormemente de un libro sobre ShiVa3D, titulado Introducción a la programación 3D con ShiVaÆ. Además, el código de manejo de eventos multitáctiles explicado en 'Revisión de código' tomó prestada una técnica presentada en un tutorial en el sitio del desarrollador de ShiVa3D, denominado Gestión multitáctil.
El juego comienza con una pantalla de inicio que muestra a los personajes principales del juego: un pato amarillo en la bañera en primer plano y un huevo detrás, como se muestra a continuación..
Luego, la pantalla principal del juego aparece con dos objetos, el pato y el huevo. El pato realiza un movimiento angular en un espacio 3D en un plano fijo definido por y = 3. El huevo solo puede moverse a lo largo de una línea recta definida por x = 0, y = 3. El movimiento de pato y huevo en los ejes globales x, y, z se muestra a continuación.
Al mismo tiempo, el pato gira alrededor de sus ejes x, y, z locales, independientemente de su rotación global, como se muestra a continuación.
De manera similar, el Huevo gira alrededor de su eje x local independientemente de su movimiento global (ver más abajo).
El movimiento (global) del huevo a lo largo de la ruta lineal puede controlarse mediante la acción táctil del usuario en la pantalla. Si el dedo del usuario se mueve de izquierda a derecha, entonces el huevo se mueve en la dirección z negativa. Por el contrario, si el dedo del usuario se mueve de derecha a izquierda, entonces el huevo se mueve en la dirección z positiva. (Vea abajo.)
Desde la geometría en la Figura 2, observe que la trayectoria lineal que describe el movimiento global del huevo está en el plano fijo en el que el pato hace su movimiento global. Por lo tanto, el pato y el huevo pueden chocar en los dos puntos de intersección definidos por la trayectoria lineal del huevo y la trayectoria angular del pato. Los puntos de colisión se muestran en el siguiente diagrama..
Si el pato y el huevo chocan, la rotación del pato cambiará de dirección, en el sentido de las agujas del reloj a la izquierda, o viceversa..
El objetivo del juego es chocar el huevo y el pato tantas veces como sea posible. Cada vez que se produce una colisión, la puntuación del usuario, que se muestra en la esquina inferior derecha de la pantalla, se incrementará. Además, el dispositivo Android vibrará por una duración de 100 milisegundos.
El usuario puede reiniciar el juego aplicando una acción de doble toque (por ejemplo, moviendo dos dedos en la pantalla) como se muestra a continuación.
Antes de que la aplicación se reinicie, se muestra un mensaje informativo durante aproximadamente un segundo como se muestra a continuación.
Cuando la aplicación se reinicia, las posiciones del pato y el huevo y la puntuación inicial se restablecen..
En esta sección, discutiremos conceptos básicos del desarrollo de juegos en 3D con ShiVa3D. La mayor parte de la discusión aquí está tomada de la documentación original de ShiVa3D. Para obtener más información, visite http://www.stonetrip.com/developer/doc/ y el manual del usuario que viene con el editor ShiVa.
Juego Representa un juego, la entidad principal de la aplicación. Encapsula todo lo demás en la aplicación, como cámaras, escenas, modelos, etc. El juego es una unidad de implementación independiente.
Escena representa un lugar o vista asociado con el juego. Hay un conjunto de objetos o modelos asociados con una escena. Un juego puede tener más de una escena. Por simplicidad, el juego en la aplicación tutorial tiene una sola escena..
Cámara Representa un punto de vista en el juego. El usuario verá el juego a través de la cámara. Una cámara puede moverse de una posición a otra, o su dirección puede cambiarse. En nuestro tutorial, la cámara se mantendrá fija..
Modelo es un objeto o un conjunto de objetos con diversos atributos como forma, luz y sensor. En nuestro juego hay dos modelos: un pato y un huevo. Esos son objetos tridimensionales con un 'rol' particular en nuestro juego. Cada rol del pato y el huevo tiene su propio AIModel (ver más abajo) para describir ese rol a través del código.
Aimodel Implica 'inteligencia artificial' y representa comportamiento. Un AIModel podría estar asociado con un usuario que juega el juego o un objeto en el juego. En este tutorial, usaremos solo los objetos AIModels. Un AIModel puede tener funciones, manejadores, estados y variables para describir los comportamientos específicos..
Guión contiene el código en un AIModel, por ejemplo, el código para una función o un controlador. El lenguaje de scripting en ShiVa3D es Lua. (http://www.lua.org)
Sensor Puede detectar ciertos eventos físicos. En nuestro juego, el pato y el huevo tienen sensores de colisión para detectar una colisión. Cuando un sensor detecta un evento, puede ser manejado por el controlador de eventos apropiado en el AIModel asociado con el objeto que contiene el sensor.
HUD significa "pantalla de visualización superior" y es un término utilizado para representar varios widgets de la interfaz de usuario, como botones, etiquetas, listas y controles deslizantes, que permiten al usuario interactuar con el juego. Los únicos componentes de HUD que vamos a utilizar en nuestro juego son las etiquetas de texto..
Para desarrollar nuestra aplicación tutorial, utilizaremos la versión gratuita de ShiVa3D Suite (http://www.stonetrip.com/download.html), que incluye el Editor de ShiVa PLE (edición de aprendizaje personal) y la Herramienta de creación de ShiVa. El diagrama a continuación ofrece una descripción general del proceso de desarrollo que usamos con esas herramientas.
Discutamos los pasos individuales de ese proceso..
El Editor ShiVa tiene varios componentes para desarrollar y probar un juego 3D desde cero. Una característica importante del Editor ShiVa es que un juego desarrollado con esa herramienta se puede implementar (después de haber sido creado en la Herramienta de creación ShiVa) en diferentes dispositivos con diferentes sistemas operativos (por ejemplo, una PC con sistema operativo Windows o una tableta con sistema operativo Android o iPhone).
Algunas de las acciones básicas que puede realizar con el Editor ShiVa son las siguientes.
El propósito principal de Shiva Authoring Tool es convertir un juego, creado a través del Editor ShiVa, en una aplicación que se pueda implementar en un dispositivo en particular (por ejemplo, un iPhone, iPad o tableta Android). Se aplican ciertas restricciones con respecto al sistema operativo de la máquina que ejecuta Shiva Authoring Tool y el dispositivo de destino para la conversión. Por ejemplo, la Shiva Authoring Tool que se ejecuta en una máquina con Windows no puede generar una aplicación de iPad o iPhone. En este tutorial, usamos una PC con Windows como máquina de desarrollo y nuestra plataforma objetivo es Android. La siguiente información se aplica a este entorno particular.
Algunas de las acciones básicas que uno puede realizar con Shiva Authoring Tool son las siguientes.
Nota: Para cada tipo de creación, hay dos opciones de compilación: Distribución y Desarrollo. En este tutorial, solo discutiremos el tipo de compilación de Desarrollo.
Uno puede personalizar el juego en Eclipse de la siguiente manera.
Para utilizar la herramienta de creación ShiVa en el entorno de Windows para el desarrollo de Android, utilizamos el siguiente software de requisitos previos. Tenga en cuenta que Eclipse y ADT para Eclipse solo son necesarios si desea generar un proyecto de Eclipse para la personalización del código. Para obtener más información, consulte http://www.stonetrip.com/developer/doc/authoringtool/installation.
Software | Versión utilizada en la aplicación tutorial |
SDK de Android | revisión 13 (Android 3.2) |
Android NDK | revisión 7 |
Cygwin, GNU hace el paquete | versión 3.82.90 |
Hormiga apache | versión 1.8.0 |
SDK de Java | versión 1.6 |
Eclipse | versión 3.7 |
ADT para Eclipse | versión 16.0.1 |
Tenga en cuenta que nuestro objetivo principal en este tutorial es Android 3.2 (Honeycomb), para el cual se ha probado la aplicación..
En esta sección, daremos una descripción de los archivos en el archivo de archivo que acompaña a este tutorial..
El archivo comprimido tiene tres subcarpetas: set1, set2 y set3.
En la parte 1 de este tutorial, presentamos la aplicación tutorial, discutimos varios conceptos de ShiVa3D así como las herramientas principales de la suite ShiVa3D. También explicamos los archivos en el archivo de descarga que acompaña a este tutorial. En la parte 2, comenzaremos a describir cómo desarrollar el juego utilizando el Editor ShiVa. Presentaremos los módulos del Editor ShiVa utilizados en el desarrollo de la aplicación tutorial. Luego, hablaremos sobre los archivos de modelos de Collada que representan a los personajes principales de la aplicación. Luego, analizaremos algunos pasos iniciales para crear la aplicación, como crear el juego y la escena, así como importar los modelos de Collada..