RocketLeague-Taller-de-Programacion-I / TP_RocketLeague

Proyect to Rocket League - FIUBA
0 stars 2 forks source link

Correcciones #24

Open leogm99 opened 1 year ago

leogm99 commented 1 year ago

Correcciones Grupo 3

Link Enunciado:

https://docs.google.com/document/d/13HWzr9iz3U8Akidfm6OIL6yx8d52rJGqbu7EiwSfHqA/edit

Corregimos sobre el commit 2012c362dd8acd0b215f99678507e2f42e57a2fb.

Código

Los comentarios respecto al código estan en la branch correcciones.

Documentación

Falta toda la documentación. Ver: https://taller-de-programacion.github.io/documentacion-requerida

UX / Jugabilidad

No se pudo probar el juego.

Robustez / Valgrind

Tiene muchos leaks de memoria (hay mucho uso de new y poco de delete). Corran CppCheck y fijense de utilizar smart pointers donde sea conveniente utilizar el heap (sobre todo en jerarquías de herencia). Hay hilos no joineados. No hay graceful shutdown de los hilos.

Performance

100% de uso de CPU ya que tienen un busy wait en el ClientManager (marcado en las correcciones) y cuando la partida comienza, tienen un loop infinito en Game que no hace sleep.

Compilación / Instalación

Recuerden agregar en la documentación un manual de instalación el cual incluye las dependencias que tiene su programa, y cómo instalarlas. Todo el proceso desde que se clona el repositorio hasta que se puede empezar a jugar.

El juego no compila. Falta la instalación. No les recomendamos que pongan foco en la instalación, pero les dejamos un comentario sobre como lo tendrían que encarar si lo quieren hacer en un futuro.

Para la instalación la idea sería que podamos ejecutar en cualquier path de la pc:

rocket-league-server <port>
rocket-league-client <host> <port>

Y se ejecuten los programas. Lo que se suele hacer es agregar los ejecutables rocket-league-client y rocket-league-server en el path /usr/bin. Su directorio imágenes y todos los assets en /var/rocket-league y para el archivo de configuración del servidor pueden tener un archivo por defecto en /etc/rocket-league. Si uno quiere levantar el server con otro archivo de configuración, pasa por parámetro de línea de comandos el path a este archivo. Y ahí se toma este archivo pasado y no el que está por defecto. La idea sería que dentro del build puedan hacer make install y se instale esto que les comentamos. Para esto usarán el comando install de cmake.

Cliente - Servidor

Está el esquema de hilos implementado según lo charlado en las reuniones. Lo que falta definir es el protocolo.

Features

Saltos

La implementación del salto tiene una dirección hardcodeada normal al centro de masa. Deberían hacer un jump en sentido del vector dirección del auto.

Turbo

El nitro se está aplicando en una dirección hardcodeada paralela al piso, debería aplicarse en dirección del sentido del auto. Además, no hay un control de la cantidad actual de nitro del jugador sino que por el momento se tiene nitro infinito.

Disparos

Faltan todos los disparos.

Partidas

Goles

Colisiones

Falta una lógica de colisiones contra la pelota para definir los disparos a realizar.

Interfaz gráfica

Falta una interfaz gráfica.

Animaciones

No están implementadas las animaciones.

Sonidos

No están implementados los sonidos.

Música ambiente

Falta música de ambiente.

Configuración

Falta el archivo configuración con todos los parámetros configurables: velocidad, altura de salto, fuerza gravitatoria, elasticidad de la pelota, tiempo del juego, etc.

Tests

Hay tests del protocolo y parcialmente de la creación, unión y listado de partidas.

Extras

.gitmodules!