Battle Cars
Un juego parecido al de guerra de Mario Kart o Diddy Kong Racer donde los carritos tenían globos, a medida que les pegaban les iban quitando globos y si los perdían todos: Game Over (La finalidad y forma del juego podría cambiar en el transcurso del trimestre)
Se realizó utilizando como lenguaje de programación Python y motor gráfico OpenGL.
Primera Entrega (semana 4)
Informe: BattleCars-Entrega1.pdf
Código Fuente: Battle Cars - Entrega 1.tar.gz
- Instrucciones:
- Situarse dentro de la carpeta donde se encuentran los archivos fuentes.
Ejecutar: python main.py [ Seek | Flee | Pursue | Wander ]
- Lista de Requerimientos:
- Python 2.5
- OpenGL (pyopengl)
Segunda Entrega (semana 8)
Informe: BattleCubes-Entrega2.pdf
Código Fuente: Battle Cubes - Entrega 2.tar.gz
- Instrucciones:
- Situarse dentro de la carpeta donde se encuentran los archivos fuentes.
Ejecutar: python battlecars.py [n]
- [n] : representa el número de NPCs contra los que se desea jugar.
- Controles:
- Saltar = tecla 'space'
- Vida bono = tecla 'n'
- Disparar = tecla 'b'
- Lista de Requerimientos:
- Python 2.5
- OpenGL (pyopengl)
Tercera Entrega (semana 12)
Informe: BattleCubes-Entrega3.pdf
Código Fuente: Battle Cubes - Entrega 3.tar.gz
- Instrucciones:
- Situarse dentro de la carpeta donde se encuentran los archivos fuentes.
Ejecutar: python battlecars.py [n]
- [n] : representa el número de NPCs contra los que se desea jugar.
- Controles:
- Saltar = tecla 'space'
- Vida bono = tecla 'n'
- Disparar = tecla 'b'
- Mover cámara = teclas 'asdw'
- Mover jugador = con las flechas
- Lista de Requerimientos:
- Python 2.5
- OpenGL (pyopengl)
Truquitos, hints y cheats
Si el que está leyendo esto es un estudiante que está empezando a ver la materia, no te preocupes si no entiendes todo lo que voy a escribir, prometo que tendrá sentido a medida que vayas entrando en los temas del curso.
Nuestra recomendación principal es la siguiente:
1. Programen BIEN sus steering behaviors. Es el momento de que demuestren lo que aprendieron en Ing. Software, patrones de disenho, escalabilidad, mantenibilidad, etc. Les digo desde ya que esos códigos de los steering behaviors pueden cambiar en el transcurso de su proyecto y deberían entenderlos como la palma de su mano para poder hacerles modificaciones sin perder tanto tiempo. Los steering behaviors son LA BASE de todo el proyecto así que procuren hacerlos bien
2. Una vez que tengan los steering behaviors listos, nuestra recomendación principal es que solucionen todo lo que tenga que ver con las colisiones. Hay mucha madera que cortar de ese tema. Puede parecer sencillo pero siempre hay casos bordes que considerar y es donde siempre caen los agentes. Traten de tener bien implementadas las colisiones lo antes posible porque sino es una piedra en el zapato que los va a fastidiar durante el resto del proyecto (si quieren vean nuestros videos y lo entenderán). En resumen: pónganle altísima prioridad a resolver ese detalle de las colisiones de su proyecto.
3. De aquí en adelante si van en góndola. Steering Behaviors + Colisiones listos ya les queda es carpintería
Ayuda
Algo que no dice el libro de texto por ninguna parte y que es vital para que el juego funcione desde la primera sentada a echar código son los tiempos que utiliza la máquina para dibujar cada frame.
Para calcular las velocidades y aceleraciones de sus agentes, en la fórmula física, necesitan colocar un TIEMPO (t), perooo: de dónde sale ese bendito tiempo que en libro no explican??? xD
Es el tiempo que ha transcurrido desde que la máquina dibujó el último frame del juego. Es decir, apenas dibujen un frame asignan la variable tiempo1. Justo antes de hacer los cálculos para saber donde están los agentes del próximo frame, asignan la variable tiempo2 y el TIEMPO que van a utilizar en la fórmula física es tiempo2-tiempo1 (escalado a milisengundos o algo así creo que era en nuestro caso de pyopengl).
Cualquier cosa pueden preguntarme al correo josej30@gmail.com
Exitos y disfruten la materia!
