Skip to content

juancadev-io/design-patterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Design Patterns in Godot

Una serie de videos educativos sobre patrones de diseño aplicados en Godot Engine. Este proyecto demuestra cómo implementar patrones clásicos de software para crear código limpio, mantenible y escalable.

📚 Patrones Cubiertos

Este repositorio documenta la implementación de 7 patrones de diseño fundamentales:

1. Singleton - Autoload 🔒

Patron que garantiza una única instancia de una clase y proporciona acceso global. Guía detallada: singleton/README.md


2. Observer - Signals

Patrón que establece una relación de uno a muchos entre objetos, permitiendo notificaciones automáticas.

Próximamente en la serie...


3. Factory

Patrón que proporciona una interfaz para crear objetos sin especificar sus clases exactas.

Próximamente en la serie...


4. Abstract Factory

Patrón que proporciona una interfaz para crear familias de objetos relacionados o dependientes.

Próximamente en la serie...


5. Decorator

Patrón que permite agregar responsabilidades a objetos de forma dinámica, sin modificar su estructura.

Próximamente en la serie...


6. Composite

Patrón que compone objetos en estructuras de árbol para representar jerarquías parte-todo.

Próximamente en la serie...


7. Bridge

Patrón que desacopla una abstracción de su implementación, permitiendo que varíen independientemente.

Próximamente en la serie...


📁 Estructura del Proyecto

design-patterns/
├── singleton/                          # Patrón Singleton - Autoload
│   ├── scenes/
│   │   ├── main.tscn                  # Escena principal
│   │   └── boss_fight.tscn            # Escena de pelea con jefe
│   └── scripts/
│       ├── main.gd                    # Lógica de interfaz principal
│       ├── boss_fight.gd              # Lógica de pelea
│       ├── patterns/
│       │   ├── game_config.gd         # Configuración global
│       │   └── boss_fight_director.gd # Patrón Director
│       └── services/
│           ├── audio_service.gd       # Servicio de audio
│           └── save_service.gd        # Servicio de guardado
├── project.godot                       # Configuración de Godot
└── README.md                           # Este archivo

🚀 Cómo Usar

Requisitos

  • Godot Engine 4.5 o superior
  • Editor de código (Editor Interno, VS Code, Sublime Text, etc.)

Ejecución

  1. Abre el proyecto en Godot Engine
  2. Carga la escena res://singleton/scenes/main.tscn

📖 Conceptos Clave

¿Qué es un Patrón de Diseño?

Un patrón de diseño es una solución reutilizable a un problema común en el desarrollo de software. Proporciona:

  • Soluciones probadas para problemas recurrentes
  • Nomenclatura común para comunicar ideas
  • Código mantenible y escalable
  • Mejor arquitectura del software

Ventajas de Usar Patrones

✅ Acelera el desarrollo
✅ Mejora la comunicación en equipos
✅ Reduce la complejidad
✅ Facilita mantenimiento
✅ Código más reutilizable

📺 Serie de Videos

# Patrón Estado
1️⃣ Singleton - Autoload ✅ Completado
2️⃣ Observer - Signals ⏳ Próximamente
3️⃣ Factory ⏳ Próximamente
4️⃣ Abstract Factory ⏳ Próximamente
5️⃣ Decorator ⏳ Próximamente
6️⃣ Composite ⏳ Próximamente
7️⃣ Bridge ⏳ Próximamente

🔗 Referencias Útiles

🤝 Contribuciones

Este proyecto es educativo. Si tienes mejoras o sugerencias:

  1. Fork el repositorio
  2. Crea una rama para tu feature (git checkout -b feature/nueva-feature)
  3. Commit tus cambios (git commit -am 'Agrega nueva feature')
  4. Push a la rama (git push origin feature/nueva-feature)
  5. Abre un Pull Request

📄 Licencia

Este proyecto está bajo licencia MIT. Siéntete libre de usarlo y modificarlo.

📧 Contacto

Para preguntas o sugerencias sobre la serie, contacta a través de los canales de YouTube o redes sociales.


¡Aprender patrones de diseño nunca fue tan divertido! 🎮

Hecho con ❤️ para la comunidad de Godot

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors