Fat Boy
Un juego donde un niño gordo ha pateado una pelota al jardín de sus vecinos, debe ir a recuperarla, pero tendrá que escapar primero de unos perros guardianes que amenazan con lamerlo.
El juego se encuentra implementado en 2 1/2 dimensiones, incluyendo saltos a plataformas y lanzamientos de proyectiles, igualmente incluye movimientos grupales con formaciones variables. Adicionalmente, el jugador tiene la capacidad de "cabalgar" a los perros, otorgándole así una mayor velocidad.
El juego se encuentra implementado en Python con la ayuda de Pygame.
- Lista de Requerimientos:
- Python 2.6
- pygame 1.9.1
Primera Entrega (semana 4)
Informe: FatBoy - Entrega 1.pdf
Código Fuente: FatBoy - Entrega 1.tar.gz
- Instrucciones:
- Situarse en la carpeta raíz del proyecto.
Para apreciar únicamente movimientos individuales ejecutar: python FatBoyDemo.py <N>, donde N es el número de perros.
Para apreciar movimientos grupales ejecutar: python FatBoyDemo.py <N> <g1> ... <gN>, donde N es el número de grupo y gi es el número de perros en el grupo i.
- Botones:
- Acelerar: Flecha arriba
- Frenar: Flecha abajo
- Girar en el sentido de las agujas del reloj: Flecha derecha
- Girar en sentido contrario a las agujas del reloj: Flecha izquierda
- Saltar: Espacio
- Disparar: Click izquierdo del mouse.
- Cambiar movimiento individual: A/S
- Cambiar movimiento grupal: Z/X
Segunda Entrega (semana 8)
Video: http://www.youtube.com/watch?v=-c3b0gzoVek (tarde pero seguro jajaja)
Informe: FatBoy - Entrega 2.pdf
Código Fuente: FatBoy - Entrega 2.tar.gz
- Instrucciones:
- Botones:
- Acelerar: Flecha arriba
- Frenar: Flecha abajo
- Girar en el sentido de las agujas del reloj: Flecha derecha
- Girar en sentido contrario a las agujas del reloj: Flecha izquierda
- Saltar: Espacio
- Disparar: Click izquierdo del mouse.
- Reiniciar nivel: R
- Pasar al siguiente nivel: M
- Cambiar la visibilidad del grafo: V
- Salir: Esc
Tercera Entrega (semana ¿12?)
Informe: FatBoy - Entrega 3.pdf
Código Fuente: FatBoy - Entrega 3.tar.gz
- Instrucciones:
- Botones:
- Acelerar: Flecha arriba
- Frenar: Flecha abajo
- Girar en el sentido de las agujas del reloj: Flecha derecha
- Girar en sentido contrario a las agujas del reloj: Flecha izquierda
- Saltar: Espacio
- Disparar: Click izquierdo del mouse.
- Reiniciar nivel: R
- Pasar al siguiente nivel: M
- Cambiar la visibilidad del grafo: V
- Salir: Esc
Mis Secretos
- Acá les dejo un video de cómo generar waypoints automáticamente utilizando clustering:
- Adicionalmente dejo unos detalles que me parecen interesantes:
- Si desean que distintos agentes tomen caminos distintos en un Pathfinding para generar la sensación de emboscada, incrementen los costos de los arcos ya considerados por otros agentes. De esta forma se favorece a la diversificación de caminos pero se pierde optimalidad.
- En pygame es muy costoso verificar colisiones utilizando máscaras exactas, esto se puede mejorar verificando colisiones con máscaras rectangulares y sobre los objetos que colisionen efectuar la comparación con máscara de bits.
- Máquina de viento: si tenemos un sentido como el olfato, con un sistema de partículas de olor, utilizar una máquina de viento que altere su propagación genera resultados interesantes en la jugabilidad.
- A la hora de desarrollar distintos niveles para colocar los polígonos del mapa es más sencillo tener un editor que hacerlos a mano.
- Lee, implementa, lee más, implementa. No dejes para última hora, ve implementando. Durante el curso intenté leer qué problema se buscaba resolver, implementar una solución propia, leer la solución propuesta por el libro y si me parecía mejor, volver a implementarla. Hay casos en los que puedes conseguir mejores soluciones que las que brinda el libro o al menos soluciones distintas que favorecen a la diversidad del curso.
- Python + Pygame ... import ci.6450.*
- Diviértete con lo que haces, es un juego. Si no te diviertes tú, ¿cómo alguien más lo va a hacer?
