Taller Virtual de Videojuegos:¿Que es un Juego?

Para desarrollar un videojuego necesitamos un entendimiento previo de cosas que, en un primer momento puedan resultar inocuas, pero que nos son necesarias para poder llevarlo a cabo.

¿Qué es un juego?

Podríamos decir que un juego, es un programa, que tiene un bucle interno de operaciones que se repiten y no necesitan esperar a la actuación del usuario para ejecutarlas, al contrario que un programa por ejemplo “un procesador de textos” que necesita de la interaccion del usuario, por ejemplo, para pintar en pantalla,abrir una ventana.etc.. En los juegos existe un bucle constante de comprobación de rutinas llamado “Game Loop”

Fases de desarrollo de un juego

  • Algoritmos: Un algoritmo es una serie de pasos para poder resolver un problema. Pongamos un ejemplo, tú en el día a día necesitas resolver una serie de situaciones en la vida cotidiana como es cruzar la calle, limpiar una casa o arreglar algo, para ello utilizamos unas funciones cognitivas y pensamos en cómo resolverlo. Para la computadora el algoritmo es tratar de pensar, dotar de esa función cognitiva para que pueda resolver algo o que a través de datos introducidos pueda procesarlos generando así una salida y poder dar solución en pequeños pasos de una tarea que, en un inicio ha sido compleja(Pensemos en una receta de cocina).
  • Funciones: Muchos de esos pasos que se dan en un algoritmo para alcanzar una solución se repiten una y otra vez. Se pueden agrupar esos pasos que se repiten en funciones que son entonces llamadas en distintas partes del programa. Por ejemplo, para cepillarnos los dientes necesitamos destapar el tubo dentrífico, apretarlo poniendo la boca encima del cepillo, cepillarnos los dientes, enjuagarnos la boca, enjuagar el cepillo y cerrar la tapa del tubo. Si esto lo hacemos después de desayunar, comer y cenar podemos agrupar todos estos pasos en una función (CepillarnosLosDientes) y llamar a esa función 3 veces al día.
  • Codificación: El juego necesita estar codificado en algún lenguaje para poder ejecutarse.Un lenguaje de programación es un tipo de lenguaje que se ha creado de forma específica para interactuar con la computadora y puede ser de diversos tipos, puestos que algunos necesitan ser “compilados” para ejecutarse o sea, que convirtamos las instrucciones del lenguaje que hemos usado, en código máquina, a través de un software especial llamando compilador. Otros no requieren de compilador, dado que lo que hacen es “interpretar” línea a línea cada instrucción, esto es lo se llama lenguajes interpretados.
  • Ejecución: La ejecución del juego estará definida por las herramientas que se han usado para programarlo, por ejemplo un juego realizado realizado con un engine(motor) nos permitirá integrar una solución completa exportable a varias plataformas, que nos permita una ejecución completa del mismo con la simple distribución de archivos binarios. En el caso que el juego se halla realizado con librerías, para ejecutar el juego necesitamos instalar las mismas en nuestro cliente, antes de ejecutar el juego, por ejemplo sdl,pygame,allegro,lua,love2d,etc..
  • Verificación o validación: Es una fase de comprobación en el que el programa que realicemos tenga una coherencia y cumpla unos requisitos mínimos. Ojo un programa tiene distintas versiones y fases para que tenga cierta usabilidad y estabilidad y todo es mejorable.
  • Depuración: Consiste en revisar el código y descubrir donde están los errores y resolverlos.
  • Mantenimiento: Mejorar es una constante y sacar mejores versiones,mejorar el rendimiento u otros errores es crucial.
  • Documentación: Es lo más importante tanto a nivel externo (instrucciones de uso) como cara al futuro desarrollo del juego, necesitamos que adicionalmente sea lo más entendible posible el desarrollo del programa, también una buena documentación nos facilita incluso a quienes lo creamos, el poder crear anotaciones o un sistema de trabajo para integrar aprendizajes y para quien se integre en el equipo.

Nuestro primer juego de texto Para empezar a abordar el desarrollo de juegos, es importante no empezar por el tejado, por lo que lo más recomendable es empezar por desarrollar algo sencillo, que nos ayude a comprender las lógicas básicas del desarrollo de juegos y familiarizarse con el lenguaje y las librerías o motores usados, intentar realizar un juego tipo MMORPG sin conocimientos es una auténtica locura, que sólo puede llevarte a la más absoluta frustración. Para ello hemos pensado que lo mejor para empezar es un sencillo juego de texto.

  • Concepto: El jugador deberá averiguar un número, generado aleatoriamente por el ordenador, disponiendo para ello de 5 intentos. El ordenador irá ofreciendo aproximaciones al jugador indicándole si el número que ha tecleado es mayor o inferior al generado.
  • Herramientas necesarias: Lenguaje de programación python y un editor de texto con soporte para python(atom,gedit,geany,vim,emacs,etc..)
  • Diseño: Realizar un diseño para nuestro juego es fundamental, este puede ser un simple boceto,un diagrama de flujo,etc.. en esta caso vamos a realizar un simple diagrama de flujo

Queremos ir despacito para ir explicando las cosas, por lo que por ahora no añadiremos nada más, en los siguientes artículos empezaremos a ver código y a implementar juegos sencillos.

Como comentamos desde ahora los canales de comunicación para el taller de videojuegos estaran abiertos y disponibles durante lo que dure el taller son:

  • Grupo Gnusocial:https://gnusocial.net/group/tallerdejuegos
  • Lista de correo: tallerdejuegos@listas.elbinario.net
  • Sala jabber:proyectos@salas.xmpp.elbinario.net

Nota:La lista estara disponible desde mañana

binariasjuguetonas Written by:

4 Comments

  1. abril 5
    Reply

    En python3, no captura la excepción si el usuario mete un “chorizo” en vez de un número:

    import random

    numero_final = input("Nivel de dificultad: ¿Número máximo al azar? ")

    numero_adivinar = random.randint(1, numero_final)

    for intentos in range(1, 5):
    numero_usuario = int(input("Adivina el número: "))

    if numero_usuario < numero_adivinar:
    print("¡Uy! El número secreto es mayor.")
    if numero_usuario > numero_adivinar:
    print("¡Uy! El número secreto es menor.")
    if numero_usuario == numero_adivinar:
    print("¡Ganaste! Con {} intentos.".format(intentos))
    break

    if (numero_usuario != numero_adivinar):
    print("¡Perdiste! Despues de 5 intentos, el número secreto era numero {}.".format(numero_adivinar))

  2. abril 5
    Reply

    Uy bug en la caja de comentarios, formatea como python el código y después se rompe.

    • revu
      revu
      abril 5
      Reply

      Md te podías dejar liar y venirte por lo menos a la sala XMPP para aportar lo que sabes. Ya sabemos que tus tiempos son limitados. Pero juntas es más divertido jugar. Venga, vente……

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax