miércoles, 15 de agosto de 2012

Reporte Inicial

 Proyecto: Puddi Fighters
Gerente del Proyecto: Víctor Briones

Descripción: 
Juego de Peleas en 2D diseñado en python ya sea el género Beat ‘em up, o un clásico juego de 2 peleadores 1 Vs 1 a la vez.



Scott Pilligrim Vs. The World, ejemplo de videojuego Beat 'em Up.





Marvel Vs Capcom, clásico juego de peleas


Metodología

Scrum es un marco de trabajo para la gestión y desarrollo de software basada en un proceso iterativo e incremental utilizado comúnmente en entornos basados en el desarrollo ágil de software:

  • Requerimiento
  • Análisis
  • Diseño
  • Evolución
  • Entrega

Éste método nos sería útil debido a que se realizan entregas parciales y regulares del producto final, priorizadas por el beneficio que aportan al  proyecto. Scrum está especialmente indicado para proyectos en entornos complejos, como el desarrollo de videojuegos,, donde se necesita obtener resultados pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad, la flexibilidad y la productividad son fundamentales.


La desventaja que encontramos es el hecho de tener que separar al equipo de desarrollo para las reuniones necesarias, pero debido a que no es un proyecto de tiempo completo, esto podría no ser necesario, habiendo otras formas de contactarnos, agregando que hay una persona que sería asignada directamente para realizar las pruebas.

El product backlog es un documento de alto nivel para todo el proyecto. Contiene descripciones genéricas de todos los requerimientos, funcionalidades deseables, etc. priorizadas según su retorno sobre la inversión. En el caso de desarrollo de videojuegos, esta parte es muy importante es que un documento de diseño del juego, no es necesario debido a que el backlog lo reemplaza.

Éste documento es un documento de diseño vivo, debido a que se va editando frecuentemente en el diseño de un video juego. Lo que incluiriamos sería texto, imágenes, diagramas y otros conceptos u otros medios útiles para ilustrar mejor las decisiones de diseño, como los mapas, interfaz y personajes.

Roles del Equipo:


Definimos las áreas en las que cada persona participará para aportar el proyecto. Concordamos en que cada persona debe participar por lo menos en un par de ellas, pero estar informado del progreso de las demás, sobre todo si está relacionadas a lo suyo, para poder más fácilmente incorporar todo junto cuando sea necesario.
  • Victor (Product Owner): Física del Juego, Interfaz-Menú, Cálculos Matemáticos(Golpes, barras de vida, etc),  Pruebas
  • Emmanuel (Scrum Master): Movimiento-Incorporación de Personajes, Inteligencia Artificial, Física del Juego
  • Raúl: Cálculos Matemáticos(Golpes, barras de vida, etc),Creación de Personajes, Documentación
    • Roberto: Creación de Mapas, Creación de Personajes
    Descripción de las áreas:

    • Movimiento-Incorporación de Personajes 

    En ésta área el objetivo será agregar personajes ya creados o definidos (sprites) a un ventana, y poder darle los movimientos básicos(caminar, golpear, brincar) en una ventana en la computadora, esto incluye tanto personajes jugables como posibles NPCs o enemigos.
    • Inteligencia Artificial 
    El área se refiere a la creación de enemigos “inteligentes” que puedan jugar por sí solos para combatir contra el jugador. En sí, lo que se espera es que los movimientos ya programados para los enemigos sean realizados en respuesta a los movimientos el jugador, agregando dificultad variable al juego.
    • Física del Juego
    Ésta área se encargará de todo lo relacionado con física involucrado en el juego. Esto sería los brincos, golpes(y contacto necesario para ellos), caídas, y demás.
    Interfaz-Menú: Creación de los menús, y retroalimentación visual del juego. Esto incluye desde los menús introductorios, la selección de personajes y opciones hasta el HUD (head-up-display) con la vida, puntos, tiempo y otras cosas.  

    • Creación de Personajes 
    Involucra la creación de personajes como sprites, ya sean enemigos o amigos. Estos sprites seran imágenes de los personajes en todas las posiciones posibles que puedan tomar, golpeando, pateando, brincando, etc.
    • Creación de mapas 
    Creación de los mapas en los que se moverán los personajes. Está relacionada con la física del juego, ya que pueden tener diferentes formas y texturas que afectan al personaje.
    • Cálculos matemáticos  
    Todos los cálculos necesarios para la interacción del personaje con objetos. Aumento de puntos, disminución-incremento de la barra de vida, llenado de una barra de combos o algo similar, etc.

    Milestones


    Los objetivos a cumplir, son los siguientes:
    MilestoneFechaPuntaje
    Definición del Proyecto
    Definición de herramientas
    Reparto de roles
    16 Agosto10
    Selección de género del juego
    Instalación de herramientas
    23 Agosto5
    Selección de la temática del juego
    Creación de un personaje(Investigación)
    Creación de un mapa (Investigación)
    30 Agosto10
    Creación de Prototipo de Personaje
    Creación de Prototipo de Mapa
    Investigación sobre pyGame y Sprites
    13 Septiembre10
    Animación de Personaje(Básica)
    Creación de Objetos Estáticos (Prototipos)
    Incorporación de Objetos a Pygame
    27 Septiembre10
    Movimientos del Personaje
    Interacción del Personaje con Objetos
    4 Octubre10
    Creación-Animación de Personaje Enemigo
    Adición de Vida a Personajes
    Contacto con Enemigo
    Puntaje del Personaje
    18 Octubre10
    Adición de Inteligencia Artificial Al enemigo(básica)
    Adición de diferentes enemigos
    7 Noviembre10
    Interfaz del juego y Sonido(Básico)14 Noviembre5
    Prototipo 21 Noviembre20
    Total -100


    Como Prototipo Final, llamaremos a lo siguiente. El juego de peleas terminado, con por lo menos un mapa jugable en su totalidad, interacción con el personaje jugable y los enemigos con una inteligencia artificial aceptable. Con interacción referimos a la capacidad de realizar golpes al enemigo, reducir la vida de el mismo(y la del jugador si es golpeado) incrementar puntos, manejar un número de vidas limitado en caso de perder toda barra de vida, y otros factores más.
    En pocas palabras, deseamos tener un demo-beta de un videojuego.

    Bitácora semanal

    Semanalmente reportaremos los avances del proyecto, y cuales milestones se cumplieron, o que cambios se hicieron a éstos mismos, debido a que al ser un juego, pensamos que debemos de tener la libertad de realizar cambios en algunos puntos para mejorar el mismo.

    La semana actual, el equipo definió los roles en los cuales cada uno aportaría al proyecto, para lo cual acordamos que cada uno seleccionaría por lo menos dos áreas de trabajo en las cuales ayudar a construir el proyecto.

    Planeamos hablar semanalmente todo el equipo para poder discutir los avances personales, y dar opiniones sobre posibles cambios o adiciones que se pueden hacer o sugieren que se haga en otras áreas en las que no se participa.

    También se definieron los objetivos o milestones que deseamos cumplir paso a paso, hasta llegar al prototipo que se entregara al finalizar este semestre. También definimos como es que deseamos que funcione este prototipo, para saber cual sería entonces el "producto completo" (por lo menos hasta el final de Proyecto Integrador 1).

    1 comentario:

    1. Pongan por favor las fechas en lugar de lo de "Semana X". Si quieren, me pueden agregar al grupo de face del equipo para resolver dudas/peleas ahí. O si prefieren pelear entre ustedes, me ponen un inbox grupal cuando ocupan un árbitro :P

      ResponderEliminar