Codigo fuente disponible
Ahora el código fuente se encuentra disponible para quien desee consultar, aprender o incluso expandir este proyecto con nuevas funcionalidades.
El proyecto se realizó el C++ y SMFL con el motor de físicas Box2D. El objetivo era implementar las siguientes funcionalidades:
- Al menos 3 tipos de obstáculos diferentes usando Joints en uno de ellos. Por ejemplo podrían ser un obstáculo estático, uno dinámico que reaccione a las colisiones del ragdoll y uno con Joints como podría ser un péndulo, una hélice, etc.
- Condición de victoria: el juego debe dar por ganado el nivel cuando un ragdoll toca el objetivo de la escena. Este objetivo puede ser estático o dinámico.
- Menú o mensaje alusivo a la victoria del nivel y del juego.
- Al menos 2 niveles.
- Menú del juego.
Me encontré con grandes dificultades para poder completar el proyecto. Si bien no documenté el tiempo que llevó codearlo, puedo decir sin lugar a dudas que fueron varias semanas y muchas horas de investigar, con prueba y error.
La escasa documentación y tutoriales disponibles sobre como funciona el motor de físicas Box2D, y lo poco amigable que es para el usuario utilizar C++ al ser un lenguaje de programación fuertemente tipado impidieron que pudiera completar el proyecto en menos tiempo.
Del lado positivo, aprendí a trabajar con objetos y clases, colisiones, física de cuerpos estáticos y dinámicos, y principalmente aprendí sobre los pilares de la programación orientada a objetos: herencia, polimorfismo, encapsulamiento y abstracción.
Este conocimiento adquirido me permitó suavizar la curva de aprendizaje de motores de videojuegos como Unity que utilizan C# como lenguaje de programación y me facilitó el aprendizaje de GDScript, lenguaje similar a Python que utiliza Godot (mi engine favorito al momento de escribir estas líneas)
Comments
Log in with itch.io to leave a comment.
Disculpa la molestia pero no se puede descargar
Una vez que realices la compra, vas a poder descargar los 2 archivos disponibles: sourceCode.zip y RagdollCannon.rar.