Sky Defense es un juego 2D desarrollado en equipo como proyecto académico de Programación Orientada a Objetos.
El objetivo del proyecto fue aplicar conceptos de POO en un caso práctico, trabajando con lógica de juego, entidades, estados, interacción del usuario, renderizado con Swing y organización del código en clases con responsabilidades diferenciadas.
Proyecto académico finalizado.
Este repositorio forma parte de mi portfolio para mostrar práctica con Java, Programación Orientada a Objetos, desarrollo colaborativo y defensa técnica de decisiones de diseño.
- Java
- Swing
- Programación Orientada a Objetos
- Git / GitHub
El juego consiste en controlar un avión dentro de un escenario 2D, respondiendo a eventos del juego mediante entradas del usuario y evitando amenazas durante la partida.
El proyecto incluye lógica de entidades, actualización del escenario, manejo de estados del juego, renderizado visual e interacción con teclado.
- Clases y objetos.
- Encapsulamiento.
- Herencia y polimorfismo.
- Separación de responsabilidades.
- Manejo de estados del juego.
- Patrón MVC.
- Patrón State.
- Principios SOLID.
- Principios GRASP.
- Renderizado básico con Swing.
- Entrada por teclado.
- Trabajo colaborativo con Git/GitHub.
Participé en el desarrollo grupal del proyecto, colaborando en la implementación y análisis de funcionalidades del juego, la organización del código y el trabajo colaborativo con Git/GitHub.
Trabajé sobre el flujo general del juego, la separación de responsabilidades entre clases, el manejo de estados, entidades, vista, control e interacción del usuario.
Además, participé en la defensa técnica del proyecto, explicando decisiones relacionadas con Programación Orientada a Objetos, patrones de diseño, SOLID y GRASP.
- Implementación y análisis de lógica de juego en Java.
- Organización de clases y responsabilidades.
- Aplicación práctica de Programación Orientada a Objetos.
- Separación entre lógica, entidades, control y vista.
- Manejo de estados del juego.
- Uso de Swing para interfaz gráfica y renderizado.
- Trabajo colaborativo mediante Git/GitHub.
- Defensa técnica de decisiones de diseño.
Este proyecto me permitió practicar cómo organizar una aplicación Java con múltiples clases, aplicar conceptos de POO en un escenario interactivo y comprender cómo distintas partes del sistema se relacionan dentro del flujo de un juego.
También me permitió trabajar en equipo, coordinar cambios de código y explicar decisiones técnicas durante una instancia de evaluación académica.
Este proyecto fue realizado con fines académicos y en equipo. Puede requerir mejoras de documentación, estructura o refactorización para un uso más profesional.