jairogarcíarincón
29/12/2022
Contenidos
- Casos de éxito
- El desarrollo de videojuegos
- Recursos
- Configuración del proyecto
- Fondo
- Jugador
- Movimiento
- Resto de animaciones
- Eventos
- Colisiones
- Interfaz de usuario
- Diálogos
- Pasillo
- Coleccionables
- Lógica del juego I: Variables e Inicio
- Lógica del juego II: Interfaz, Movimiento y Teclas
- Lógica del juego III: Diálogos
- Lógica del juego IV: Reinicio y Fin de Juego
- Exportar el juego
- Conclusiones
Introducción
Cuando hablamos de creación y desarrollo de videojuegos en general, hay una serie de términos que se repiten y que es importante tener definidos y comprendidos.
Proyecto
Independientemente del programa o motor utilizado, un videojuego se suele englobar dentro de un proyecto, consistente en un conjunto de archivos y carpetas con uno o más archivos principales. Para poder ejecutar el proyecto, serán necesarios todos ellos.
Motor
Se entiende por motor o engine la aplicación con la que se ha desarrollado el videojuego. Este motor se compone de una interfaz gráfica y de un conjunto de librerías que permiten dar funcionalidades diferentes: simulaciones físicas, iluminación, texturas, etc.
Compilación
Una vez finalizado el proyecto del videojuego, ser realiza el proceso de compilación (build), consistente en empaquetar todo el trabajo en un formato adecuado a la plataforma de destino: PC, Mac, Videoconsola, Web, etc.
Esta build suele consistir en un conjunto de archivos y/o carpetas, y permitirán ejecutar el videojuego de forma autónoma o stand-alone, esto es, sin necesidad de tener instalado el motor en el que fue desarrollado.
Asset
Un asset (activo o recurso en el mundo financiero) hace referencia a cada uno de los elementos que componen nuestro juego (imágenes, escenas, sonidos, animaciones, texturas, scripts de programación, etc.)
Sprite
Se entiende por sprite cualquier imagen en 2D, normalmente en forma de fichero con extensión JPG, PNG, etc. que se puede importar al proyecto y utilizarla de diferentes maneras.
Spritesheet
Una “hoja de sprites” no es más que un archivo de imagen que, a su vez, tiene dentro varias imágenes que la aplicación que estamos desarrollando es capaz de interpretar como independientes y realizar animaciones con ellas. Un ejemplo de spritesheet sería la siguiente animación del movimiento de un personaje:
Escena
Normalmente un videojuego se compone de diferentes entornos gráficos o escenas con distintas funcionalidades e interactividad, y que pueden corresponder a los diferentes niveles del juego, a la escena de opciones, la de ganar o perder, etc.
Objeto
Un objeto de la escena puede representar cualquier cosa, desde una caja de texto a un personaje, un coleccionable, un adorno o un fondo de juego. La denominación genérica object está relacionada con el concepto de clase u objeto, una de las piezas esenciales del paradigma de la programación orientada a objetos, el más utilizado actualmente en todas las disciplinas.
Colisión
Los colliders o colisiones permiten añadir a nuestros sprites una caja o forma de colisión para que otros objetos interactúen con ella, bien sea para poder apoyarse en el suelo, recoger un coleccionable, iniciar un diálogo, trasladarse a otro lugar (teleport) o perder una vida al tocar una trampa.
Física
El motor de física o physics engine de nuestro juego es un conjunto de librerías o scripts de programación que permiten simular las propiedades físicas de la naturaleza y aplicárselas a nuestros objetos del juego. Ejemplos de estas propiedades serían la velocidad, aceleración, gravedad, rozamiento, etc.
Script
Un script de programación (guion en inglés) nos permite añadir funcionalidad o interactividad a un objeto, y consisten en un conjunto de instrucciones en las que se definen y asignan variables o atributos que se transforman y aplican a los diferentes objetos por medio de funciones o métodos.
Adicionalmente, nos permite establecer escuchadores de eventos y actuar en consecuencia, por ejemplo, cuando se pulsan ciertas teclas, se mueve el ratón o se toca la pantalla.
Visual scripting
Todos los motores de videojuegos utilizan scripts para programar cualquier acción del juego, si bien en algunos casos, el usuario del motor del videojuego puede configurar dichos scripts sin necesidad de escribir directamente las instrucciones en ellos, sino mediante instrucciones visuales dentro del entorno de desarrollo.
Un ejemplo muy conocido de este tipo de estrategias de scripting visual sería la plataforma Scratch (https://scratch.mit.edu/) del MIT, que permite realizar experiencias y juegos sin escribir ni una sola línea de código, lo cual no implica que no haya que programarlo.
Variables
En programación, entendemos por variable cualquier dato que debe ser almacenado, bien sea de forma temporal o permanente. Ejemplos de variables sería datos numéricos, datos de texto o strings, valores booleanos (true o false) o conjuntos de datos (listas o arrays).
Además, para su almacenamiento en memoria, el uso de variables es necesario para identificar y trabajar en nuestro juego con los diferentes valores que necesite, tales como número de vidas, tiempo transcurrido, coleccionables recogidos, etc.
Operadores
Los operadores se utilizan para poder modificar y/o comparar variables entre ellas.
Así, se utilizan los operadores matemáticos básicos, tales como suma, resta, multiplicación y división, así como algunas modificaciones de ellos, como son los operadores incremento o decremento o el operador módulo, que devuelve el resto de una división y es útil para calcular, por ejemplo, si un número es par, o para transformar un valor en segundos a un formato de minutos y segundos.
Por otra parte, también son muy utilizados los operadores de comparación, esto es, mayor, menor, igual, mayor o igual, menor o igual, idéntico y no idéntico.
Por último, los operadores lógicos nos permiten encadenar comparaciones, siendo los más conocidos:
- operador AND o &&: permite encadenar comparaciones que solo devuelven verdadero si se cumplen todas ellas.
- operador OR o ||: encadena comparaciones que devuelven verdadero cuando se cumple al menos una de ellas.
Estructuras de control
Combinando las variables y los operadores, llegamos a las estructuras de control, que nos van a permitir que el código, en vez de ejecutarse de forma secuencial, línea a línea, se ejecute en función de una serie de una toma de decisiones y actuaciones.
Las estructuras de control más utilizadas son los condicionales (if-else) los bucles (for, while) y las funciones o métodos, que nos permiten encapsular código para ejecutarlo o reutilizarlo cuando sea necesario.
Publicado el 05 de Febrero de 2025
gdeveloprpg2ddigitalizaciónharry potter