Consejo rápido Introducción a la programación orientada a objetos para el desarrollo de juegos

¡Bienvenido a una nueva serie de consejos rápidos sobre programación orientada a objetos! Revisaremos los principios de la POO y cómo se pueden usar para crear un código organizado. En esta primera parte, hablaremos sobre qué es la OOP y por qué es útil, con algunos ejemplos de cómo podría usarse en el desarrollo de juegos..


¿Qué es la programación orientada a objetos??

La programación orientada a objetos (OOP), en su sentido más básico, es un estilo de programación utilizado para organizar el código. Los videojuegos pueden correr desde unos pocos miles de líneas de código (Cut the Rope tiene 15,000) hasta millones de líneas de código (Crysis tiene más de un millón). Puede ver por qué es tan importante escribir código que se pueda modificar y mantener fácilmente.

Los estilos de programación, como la POO, ayudan a organizar el código de tal manera que sea más fácil de mantener y modificar. OOP ayuda a organizar el código al organizarlo en lo que se conoce como objetos.

Los objetos tienen información sobre estado y comportamiento:

Estados son las características del objeto, o las palabras que usaría para describirlo, y usualmente toman la forma de es o tiene descriptores Un ordenador es ya sea dentro o fuera, una silla tiene cuatro patas y tu tener un nombre.

Comportamientos son las cosas que el objeto puede hacer, o las acciones que el objeto puede realizar, y suelen ser verbos que terminan en En g. Usted está sentado, utilizando una computadora, y leyendo Este artículo.


¿Por qué es útil?

Como se indicó anteriormente, la OOP es útil porque ayuda a crear un código que se puede mantener: un código comprensible, adaptable y ampliable.

También ayuda a crear código reutilizable siguiendo el método DRY (Don't Repeat Yourself): escriba el código una vez y luego reutilícelo, en lugar de copiar y pegar.

La forma de pensar de OOP también se presta para traducir directamente objetos e interacciones del mundo real a código..


Cómo aplicarlo

Enumeraré tres ejemplos diferentes de cómo aplicar OOP a los videojuegos. En artículos posteriores, veremos cómo codificar estos ejemplos, pero por ahora nos limitaremos a aprender a identificar los objetos y sus estados y comportamientos..

Asteroides

Primero, imaginemos que queríamos hacer el clásico juego Asteroids. Para identificar cuáles son los objetos en los asteroides, intente describirlos.

Wikipedia describe los asteroides de la siguiente manera:

El objetivo de Asteroides es anotar tantos puntos como sea posible mediante la destrucción de asteroides y platillos voladores. El jugador controla un barco de forma triangular que puede girar a la izquierda y a la derecha, disparar hacia adelante y empujar hacia adelante. A medida que la nave se mueve, el impulso no se conserva: la nave finalmente se detiene de nuevo cuando no está empujando.

Piense en lo que en esta descripción podría estar solo, o en las cosas que se describen que podrían tener estado y comportamiento. Estos se convierten en nuestro objetos.

Los objetos para los asteroides son: un barco, un asteroide, un platillo volador y una bala (¡no se puede olvidar de ellos!). Lo bueno de los objetos es que normalmente describimos las cosas en términos de objetos en la conversación cotidiana, por lo que generalmente se revelan a través de una descripción..


El clásico juego de los asteroides.

Ahora que hemos identificado nuestros objetos, definamos el estado y el comportamiento de uno de ellos: la nave del jugador. Piensa en qué atributos describen la nave; estos son sus estados. Entonces piensa en lo que el barco puede hacer; estos son sus comportamientos.

Un barco tiene estados de:

  • rotación
  • impulso
  • empuje

y comportamientos de:

  • torneado
  • emocionante
  • disparo

Te dejaré determinar cuáles son los estados y comportamientos de los objetos restantes.

Tetris

A continuación, consideremos otro juego clásico, Tetris. Nuevamente, comenzamos describiendo Tetris para encontrar sus objetos..

Una secuencia aleatoria de Tetrominos cae por el campo de juego. El objetivo del juego es manipular estos Tetrominos, moviendo cada uno de lado y girándolo en unidades de 90 grados, con el objetivo de crear una línea horizontal de diez bloques sin espacios..


Tetris

En Tetris, realmente el único objeto es un Tetromino. Tiene estados de:

  • rotación (en unidades de 90 grados)
  • forma
  • color

y comportamientos de:

  • que cae
  • en movimiento (de lado)
  • giratorio

Pac-man

El último juego que usaremos como ejemplo es Pac-Man..

El jugador controla Pac-Man a través de un laberinto, comiendo pac-dots o pellets. Cuatro enemigos [fantasmas] vagan por el laberinto, tratando de atrapar a Pac-Man. Cerca de las esquinas del laberinto hay cuatro puntos más grandes y destellantes, conocidos como bolitas de poder, que le brindan al Pac-Man la capacidad temporal de comerse a los enemigos. Los enemigos se vuelven de color azul oscuro, invierten la dirección y usualmente se mueven más lentamente..


El juego de arcade original de Pac-Man.

Para Pac-Man, hay tres objetos: Pac-Man, un fantasma y un pac-dot. Una bolita de poder no es realmente su propio objeto porque es un punto de pacificación especial (hablaremos sobre qué hacer al respecto en un artículo posterior). Describiremos el objeto fantasma porque es más interesante..

El fantasma tiene estados de:

  • color
  • nombre (+1 si puedes nombrar a todos los fantasmas de la parte superior de tu cabeza)
  • Estado (comestible o no)
  • dirección
  • velocidad

y comportamientos de:

  • emocionante
  • estado cambiante

Conclusión

La programación orientada a objetos es una forma de organizar el código en un videojuego. La programación orientada a objetos se centra en los objetos que se definen por su estado y su comportamiento.

En el siguiente Consejo rápido, hablaremos sobre el principio de cohesión y comenzaremos a codificar la estructura básica de un objeto. Síganos en Twitter, Facebook o Google+ para mantenerse al día con las últimas publicaciones..