jairogarcíarincón

El desarrollo de videojuegos


228

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:

01 Sprite
Fuente: http://phaser.io


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.

02 Escena
Fuente: Fuente: Elaboración propia


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.

03 Colisión
Fuente: Elaboración propia


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.

04 Script
Fuente: Elaboración propia


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.

05 Visual Script
Fuente: Elaboración propia


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 03 de Febrero de 2023

gdeveloprpg2ddigitalizaciónharry potter