Razón Artificial

La ciencia y el arte de crear videojuegos

Arkanoid I – Empezando y configurando

Escrito por adrigm el 28 de septiembre de 2010 en Desarrollo Videojuegos, Noticias, Programación | 6 Comentarios.

En esta ocasión vamos a crear el clásico juego Arkanoid desde 0. La idea del proyecto es servir de continuación al tutorial del Pong, este será un juego más elaborado con gestión de escenas, niveles, mejor sistema de colisiones, puntaciones, etc.

El juego, como viene siendo habitual en el blog será desarrollado sobre Python y Pygame ya que nos permite centrarnos en los conceptos del juego sin tener que pelearnos con el lenguaje de programación.

Requisitos previos

  • Nivel aceptable de Python y control de la programación orientada a objetos.
  • Manejarse con los conceptos básicos de Pygame. Si no tienes esta base, primero haz el tutorial del Pong.
  • Controlar los conceptos básicos de la programación de juegos 2D. Parte 1, Parte 2 y Parte 3.
  • Leer el tutorial de la gestión de escenas con pygame, pues lo usaremos.

Bueno esta vez no es un simple Pong, sino que queremos hacer algo más elaborado y completo. Crear un juego que conste de varios menús, puntaciones, niveles, dificultad, etc. Esto ya conlleva no hacer las cosas a la ligera y planificar mucho más que es lo que se va a hacer y como se va a abordar.

Es muy importante cumplir los requesitos previos, sino estarás algo perdido y te desmotivarás. No voy a volver a explicar conceptos de los ya mencionados arriba, porque están explicados de manera extensa en los artículos mencionados, nos vamos a centrar en utilizar lo ya aprendido y en algunas cosas nuevas para hacer un proyecto de más envergadura.

Preparándonos para trabajar

Lo primero como siempre es tener un directorio de trabajo donde irán los archivos de nuestro proyecto. Dentro de este yo lo tengo organizado de la siguiente manera:

  • Directorio principal/
    • archivos .py
    • Data/
      • graphics/
        • backgrounds/
        • menus/
        • sprites/
      • audio/
        • music/
        • sounds/
      • fonts/
    • levels/

A grandes rasgos la estructura es los scripts de python van en la carpeta principal, luego hay un directorio Data que contiene 3 directorios graphics, audio y fonts y a su vez estos tienen varios subdirectorios para según el contenido. Luego hay otra carpeta llamada levels que contendrá los niveles del juego. Esta es la estructura inicial que yo tengo puede que necesitemos algún directorio más en el proceso de creación, lo añadiríamos sin problemas.

Estructura del juego

Bien montado el chiringuito, antes de ponernos a escribir código vamos a ver de que partes consta nuestro juego. Es un juego clásico del Arkanoid, pero es nuestro Arkanoid y lo podemos hacer tan parecido o tan diferente como queramos. Lo primero es definir las escenas. Las escenas del juego son las diferentes pantallas que nos podemos encontrar. El menú principal, la pantalla de puntuaciones, un nivel del juego… Son diferentes escenas dentro del juego. Lee este tutorial para saber más sobre las escenas y saber como gestionarlas con Python y Pygame.

En principio nuestro juego va a constar de 3 escenas diferentes.

  • SceneHome: Será el menú de inicio de nuestro juego y desde este podremos empezar una nueva partida, continuar, mirar las puntuaciones o salir.
  • SceneGame: Será la escena de nuestro juego, donde se carguen los niveles y donde jugaremos. Será la escena más importante pues contiene el juego en sí.
  • ScenePoints. Será una escena que contendrá las mejores puntuaciones de nuestro juego.

Veamos un esquema de nuestas escenas:

La escena principal (SceneHome) será la primera que se cargará al ejecutar el juego y desde la que podremos acceder a las otras dos como indica el diagrama. Como véis las flechas indican de que escena se puede ir a cual, por ejemplo desde SceneHome se puede acceder a SceneGame y ScenePoints y desde estas a SceneHome, pero desde SceneGame no se puede acceder a ScenePoints. Es decir, es SceneHome la encargada de comunicar a las escenas.

El archivo confi.py

El primer archivo de nuestro proyecto no va a ser el main.py que sería lo típico, sino un archivo llamado config.py, Este archivo contendrá información global del juego y parámetros de configuración globales que podrán ser accedidos desde todo el proyecto. Variables tales como la resolución, el nombre del juego o rutas de directorio los iremos poniendo aquí, de momento vamos a definir unas variables bases.

# -*- encoding: utf-8 -*-

""" Configuración general del proyecto """

# Nombre
name = "Arkanoid"

# Resolución
width = 640
height = 480

# Directorios
sprites = "data/graphics/sprites/"
backs = "data/graphics/backgrounds/"
menus = "data/graphics/menus/"
fonts = "data/fonts/"
music = "data/audio/music/"
sounds = "data/audio/sounds/"
levels = "levels/"

Hemos definido una variables básicas para la resolución y los directorios. La ventaja de tenerlos aquí es que si en algún momento deseamos cambiar el nombre de un directorio, la resolución o cualquier otro parámetro global, no hay que estar buscando donde lo hemos usado, sino que directamente editamos nuestro config.py.

6 Comentarios en "Arkanoid I – Empezando y configurando"

  1. josepzin dice:

    ¿”Requesitos”? ;)

  2. Debianitram dice:

    Tener instalado python y pygame.
    Luego tendrías que hacer unas modificaciones en los path del archivo config si utilizas un sistema Window$.

  3. adrigm dice:

    Debianitram, josepzin se refería a que lo tenía mal escrito ya está corregido, gracias a él.

    Por cierto, no hace falta modificar en config para ejecutarlo en Windows. Pygame se encarga de buscar en la ruta adecuada siempre que sea relativa aunque se use el modo Unix de las barras / y no el de las barras invertidas de Windows \

  4. Anónimo dice:

    Es muy importante cumplir los “requesitos” previos, sino estarás algo perdido y te desmotivarás.

    Ahi quedo otro :P

Deja un comentario