Programación de videojuegos. ¿A que nos enfrentamos?

Programación

La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. La finalidad de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal.

La programación se rige por reglas y un conjunto más o menos reducido de órdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural acotada (en inglés). Cuanto menos ambiguo es un lenguaje de programación, se dice, es más potente. Bajo esta premisa, y en el extremo, el lenguaje más potente existente es el binario, con ambigüedad nula (lo cual lleva a pensar así del lenguaje ensamblador).

Aquí nos vamos a centrar especialmente en la programación de videojuegos.

La programación de videojuegos es un proceso que pertenece a la creación de un videojuego. Este proceso es efectuado por un programador de videojuegos, gracias a la programación informática. Casi siempre, la programación de un videojuego se resume en repetir a trechos las siguientes acciones:

  • Procesar las interacciones de un agente con su entorno según las entradas del usuario.
  • Procesar los fenómenos indirectamente controlados por el usuario.
  • Crear una imagen a partir de esas informaciones y mostrarlo en la pantalla (igual para el sonido).

El agente suele ser un personaje (generalmente llamado héroe) pero también puede ser un coche, una nave, o cualquier otra cosa. El entorno suele ser compuesto por una decoración estática y unos objetos interactivos (enemigos, objetos del inventario, puertas, etc.). El usuario manda entradas al programa por medio de un periférico como un joystick, un teclado o un ratón. La gestión de las interacciones consiste en prever las acciones posibles sobre el entorno, detectar si han estado provocadas, y procesar respuestas.

Los fenómenos indirectamente controlados por el usuario son varios y cambian mucho según el juego. Se puede tratar de procesar la inteligencia artificial de los agentes no controlados por el usuario, gestionar las colisiones entre agente y la física (para los juegos que emplean un modelo físico realista).

A medida que el nivel gráfico crece, la creación de una imagen y su display se hacen cada vez más complejos.

La creación de una imagen en dos dimensiones suele empezar por el dibujo de los objetos más lejos, y tal acercándose del jugador. Por ejemplo:

  • Creación del fondo (el background) ayudándose de unos mosaicos (los tiles) propicios a los sistemas de desplazamiento (el scrolling) o simplemente de un fondo de pantalla (como para los antiguos juegos de aventura).
  • Añadidura de imágenes (sprites) usando un sistema de recorte que permite dibujar formas complejas mientras que es imprescindible que las imágenes sean rectangulares en la memoria.

Hoy en día la programación de videojuegos es más y más vinculada con el hardware, utilizando en profundidad las funcionalidades de aceleración de las tarjetas gráficas para optimizar el tratamiento de los objetos 3D y mejorando el código fuente.

Share