Showing posts with label Tutorial Unity. Show all posts
Showing posts with label Tutorial Unity. Show all posts

Guía Definitiva para Dominar Unity: De Cero a Desarrollador de Juegos Independiente

La pantalla brilla, vacía, esperando la chispa creativa. En este negocio, no solo construyes juegos, sino mundos. Y Unity es el martillo, el cincel y el plano. Este motor, un coloso silencioso en la industria, permite a los soñadores construir imperios digitales, desde la complejidad granular de un juego 2D hasta la inmersión total de la realidad virtual para PC, consolas y el bolsillo de cada usuario. Hoy, no solo te daré un tutorial, te abriré la puerta de entrada a tu propio estudio indie. Abróchate el cinturón.

Vamos a desmantelar Unity, pieza por pieza, hasta que comprendas su arquitectura interna. Porque entender cómo funcionan las cosas es el primer paso para romperlas... o construirlas magistralmente.

Tabla de Contenidos

Instalación y Configuración: El Primer Paso Crítico

Antes de que cualquier código vea la luz, necesitas la herramienta correcta. Descargar Unity es un rito de paso. Dirígete a unity.com. No te conformes con la versión por defecto si buscas eficiencia a largo plazo; considera Unity Hub para gestionar múltiples versiones y proyectos, una práctica indispensable si realmente te tomas en serio el desarrollo de juegos. La instalación requiere una cuenta; si no la tienes, créala. Piensa en ella como tu credencial de acceso al universo Unity.

Desglosando la Interfaz de Unity: Tu Centro de Comando

Al abrir Unity, te enfrentarás a un panel de control complejo, pero lógico. La Vista de Escena es tu lienzo principal, donde colocas y das forma a cada elemento. A la izquierda, la ventana Project es tu archivo, donde reside todo: modelos, texturas, scripts, audio. Es crucial mantener esta ventana organizada; una estructura de carpetas clara (Assets/Scripts, Assets/Models, etc.) es la diferencia entre el caos y el control. A la derecha, el Inspector es tu panel de control para cada objeto seleccionado. Aquí se ajustan propiedades, se añaden componentes y se vinculan scripts. La ventana Hierarchy te muestra la estructura jerárquica de tu escena: objetos padres e hijos, una organización vital para escenas complejas. Finalmente, la Console es tu diario de guerra, donde los errores, advertencias y mensajes de depuración aparecerán. Ignorarlos es un error de principiante.

Importación de Recursos: El Arte de Traer el Mundo a tu Juego

Tu juego necesita vida. Los modelos 3D (FBX, OBJ son estándar), texturas (PNG, JPG, TGA), audio (WAV, MP3) y otras herramientas se importan arrastrándolos directamente a la ventana Project. Unity es flexible, soporta una amplia gama de formatos. Pero no te limites a arrastrar y soltar a ciegas. Considera la optimización: comprime texturas, optimiza modelos 3D. Cada kilobyte cuenta, especialmente en plataformas móviles. Unity te permite ajustar la configuración de importación para cada tipo de recurso, afinando su uso en el juego.

Creación de Escenas: Donde la Magia Sucede

Una escena es, esencialmente, un nivel o un menú. Comienzas con una escena básica (Archivo > Nueva Escena). Puedes crear una escena vacía o utilizar plantillas. Para poblar tu escena, arrastra los recursos importados desde la ventana Project a la Vista de Escena. Alternativamente, puedes crear objetos vacíos (Hierarchy > Click Derecho > Crear Vacío) y luego asignarles componentes y recursos. La organización es clave: nombra tus objetos de forma descriptiva (ej: "PlayerCharacter", "MainCamera", "Level1_Background").

Manipulación de Objetos: Esculpiendo tu Realidad Digital

Una vez que los objetos están en la escena, puedes moldearlos. Las herramientas de transformación (mover, rotar, escalar) se encuentran en la barra superior de la Vista de Escena. Selecciona un objeto, usa las herramientas y observa cómo cambian sus propiedades en el Inspector. Puedes configurar su posición, rotación y escala. Además, puedes adjuntar componentes para darles comportamientos específicos (más sobre esto en la siguiente sección).

Scripts y Componentes: El Alma de tu Juego

Aquí es donde el juego cobra vida. Unity utiliza C# como su lenguaje de scripting principal. Cualquier desarrollador serio de Unity debe dominar C#. Para añadir interactividad, creas scripts (Project > Click Derecho > Crear > Script C#). Asigna este script a un objeto (arrastrándolo a la Vista de Escena o al Inspector del objeto). Dentro del script, escribes código C# para controlar el comportamiento, la lógica, las animaciones, las colisiones... ¡todo! Unity tiene un sistema de componentes robusto. Cada objeto en la escena es un "GameObject" que puede tener múltiples "Componentes" adjuntos. El componente "Transform" es el único obligatorio, pero puedes añadir "Mesh Renderer" para hacerlo visible, "Rigidbody" para la física, y tus propios scripts C# para la lógica personalizada.

"El código es mi arma, los componentes mi armadura."

La integración entre scripts y componentes es fluida. Puedes obtener referencias a otros componentes en el mismo GameObject o en otros, permitiendo interacciones complejas. La documentación de Unity para C# y su API es extensiva; úsala. No intentes reinventar la rueda.

Configuración de Física: Simulación y Realismo Digital

Para que tu juego se sienta real, necesitas física. Unity usa PhysX para simular interacciones. Añade un componente Rigidbody a un objeto para que esté sujeto a la gravedad y a las fuerzas. Ajusta sus propiedades como masa, arrastre y restricciones en el Inspector. Para detectar colisiones, necesitas Colliders (Box Collider, Sphere Collider, Capsule Collider, Mesh Collider). Estos definen la forma del objeto para las interacciones físicas. Puedes configurar materiales físicos (Physics Material) para controlar la fricción y el rebote.

Compilación y Ejecución: Liberando tu Creación al Mundo

Has trabajado duro. Ahora es el momento de empaquetar tu obra maestra. Ve a File > Build Settings. Aquí seleccionas tu Plataforma de Destino: Windows, macOS, Linux, Android, iOS, WebGL, consolas... La eficiencia de la compilación multicanal es una de las fortalezas de Unity. Elige tu plataforma, configura los ajustes (resolución, calidad) y haz clic en "Build". Unity generará un ejecutable o una aplicación lista para ser distribuida y probada. No te saltes la fase de pruebas rigurosas en la plataforma de destino; lo que funciona en tu máquina puede fallar en otra.

Arsenal del Operador/Analista: Herramientas Esenciales para el Desarrollador Indie

  • Editor de Código: Visual Studio (con el paquete para Unity) o Rider. No te conformes con el editor básico de Unity para scripts complejos.
  • Control de Versiones: Git (con GitHub, GitLab o BitBucket). Indispensable para cualquier proyecto colaborativo o para tener copias de seguridad robustas.
  • Software de Modelado 3D: Blender (gratuito y potente) o Maya/3ds Max (si tu presupuesto lo permite).
  • Software de Edición Gráfica: Photoshop o GIMP (gratuito).
  • Gestión de Proyectos: Trello, Asana, o Jira para organizar tareas y flujos de trabajo.
  • Documentación y Aprendizaje: La documentación oficial de Unity y el canal de YouTube de Unity Learn son tus mejores aliados.
  • Cursos Avanzados: Para profundizar, los cursos de Udemy, Coursera, o plataformas especializadas como cursos de Unity avanzado pueden acelerar tu curva de aprendizaje. Considera la certificación de Unity si buscas un reconocimiento formal.

Preguntas Frecuentes

¿Unity es gratuito?

Unity ofrece niveles gratuitos (Personal) y de pago (Plus, Pro, Enterprise) con diferentes características y límites de ingresos. Para empezar y para la mayoría de desarrolladores indie, la versión Personal es suficiente.

¿Necesito saber C++ para usar Unity?

No, Unity utiliza C# para el scripting. C++ se usa en motores como Unreal Engine.

¿Qué tipo de juegos puedo crear con Unity?

Prácticamente cualquier cosa: juegos 2D, 3D, móviles, de realidad virtual, de realidad aumentada, experiencias interactivas, visualizaciones y más.

¿Hay limitaciones en la importación de recursos?

Unity soporta una gran variedad de formatos, pero siempre es recomendable optimizar tus recursos (texturas comprimidas, modelos con recuento de polígonos adecuado) para un mejor rendimiento.

¿Es difícil aprender Unity?

Unity tiene una curva de aprendizaje, pero su interfaz intuitiva y la gran cantidad de recursos disponibles lo hacen accesible para principiantes. La clave es la práctica constante.

El Contrato: Tu Primer Salto al Desarrollo de Juegos

Has transitado desde la instalación hasta la compilación. Ahora tienes el conocimiento, pero el conocimiento sin aplicación es solo información muerta. Tu contrato es este: crea un pequeño proyecto. No tiene que ser un MMORPG. Un juego de plataformas sencillo con un personaje que se mueve y salta, o un shooter simple. Enfócate en implementar un ciclo de juego completo: entrada del jugador, movimiento, colisión básica y un objetivo simple. Usa lo aprendido sobre la interfaz, la importación de recursos y, crucialmente, la creación de scripts simples en C# para añadir la lógica.

No busques la perfección. Busca la funcionalidad. El primer juego rara vez es una obra maestra, pero es el catalizador de todas las obras maestras futuras. No te detengas en la teoría. El código espera tu comando.

Ahora, la pregunta es: ¿estás listo para firmar este contrato y empezar a construir tu primer mundo? ¿Qué tipo de juego te intriga más para tu primer proyecto y qué desafío crees que enfrentarás al implementarlo?

Guía Definitiva: Crea tu Juego de Plataformas 3D con Unity y C#

La luz fría del monitor proyecta un código que promete mundos enteros. En el salvaje oeste digital del desarrollo de videojuegos, Unity se alza como un poderoso motor, un martillo capaz de forjar desde simples prototipos hasta universos interactivos. Pero crear un juego de plataformas 3D no es un paseo por el parque; es una travesía llena de desafíos técnicos, donde cada línea de C#, cada ajuste de física, cada animación, cuenta. Hoy no vamos a descifrar logs de seguridad, vamos a desarmar la arquitectura de un juego de plataformas, a diseccionar sus componentes para entender cómo darle vida a ese avatar que saltará, correrá y conquistará mundos virtuales.

1. Introducción y Configuración de Assets

El primer paso es sentar las bases. Antes de escribir una sola línea de código, debemos comprender la estructura del curso y preparar el terreno. Los assets son los bloques de construcción visuales y sonoros que darán forma a nuestra creación. Descargarlos e importarlos correctamente es tan crucial como diseñar la lógica del juego.

  • Introducción al Curso: Comprendiendo el alcance y los objetivos de esta odisea de desarrollo. (00:00)
  • Descarga de Assets Gratuitos: Asegura tener a mano los recursos visuales y de audio para tu proyecto. (01:00)

    Nota: Los assets son la materia prima; la habilidad para combinarlos es lo que diferencia al artesano del novato.

  • Importación de Assets: Integrando estos recursos en el entorno de Unity para que estén listos para ser utilizados. (03:44)

2. Personaje y Movimiento

El corazón de un juego de plataformas reside en su personaje. Su movimiento debe ser intuitivo, responsivo, y sobre todo, divertido. Aquí es donde la física de Unity y la programación en C# chocan y se fusionan para crear la ilusión de vida.

  • Movimiento Básico del Personaje: Estableciendo los fundamentos de cómo nuestro avatar interactúa con el mundo. (9:00)
  • Salto y Character Controller 3D: Implementando la mecánica esencial del salto, controlando su altura y comportamiento. El Character Controller es tu mejor aliado aquí, manejando colisiones y movimiento de forma eficiente. (17:20)
  • Movimiento de Cámara con Personaje 3D: La cámara debe seguir al jugador de forma fluida, proporcionando una perspectiva inmersiva sin marear. (26:19)
  • Rotando al Jugador: Asegurando que la orientación del personaje sea coherente con el entorno y las acciones. (31:25)
  • Movimiento Basado en Rotación de Cámara: Sincronizando el desplazamiento del jugador con la dirección a la que apunta la cámara. (38:30)
  • Normalizando Movimiento: Optimizando las entradas de control para evitar comportamientos erráticos. (49:46)
  • Animar Personaje 3D con Unity: Dando vida visual al personaje a través de animaciones de caminar, correr y posar.
    • Animación de Salto: Capturando la esencia del movimiento vertical. (1:01:42)
  • Conectando Controles a Animaciones: Vinculando las acciones del jugador con las animaciones correspondientes para una respuesta visual inmediata. (1:08:42)

3. Sistemas Básicos de Juego

Un juego no vive solo de su personaje principal. Necesita sistemas que añadan desafío, recompensa y estructura. Desde la temida "zona de muerte" hasta la reconfortante presencia de un checkpoint, cada sistema contribuye a la experiencia global.

  • Ocultando el Cursor: Mejorando la inmersión al eliminar el cursor del sistema operativo en el juego. (01:19:40)
  • Prefabs y Objetos Reutilizables: La eficiencia en el desarrollo requiere prefabs. Aprender a crearlos y usarlos es clave para el mantenimiento y la escalabilidad. (01:23:00)
  • Arreglando Gravedad y Bordes: Refinando la física del juego para que se sienta natural y predecible.
  • Mejorando Animaciones con Fixed Duration: Ajustando la temporalidad de las animaciones para que encajen perfectamente con las mecánicas de juego. (01:31:44)
  • Zona de Muerte: Definiendo los límites del fracaso y lo que sucede cuando el jugador los cruza. (01:33:25)
  • Preparando Respawn: Diseñando el mecanismo para que el jugador pueda volver a la acción tras un fallo. (01:36:40)
  • Moviendo Cámara con Respawn: Asegurando que la transición tras el respawn sea fluida. (01:46:11)
  • Arreglando Salto al Morir: Evitando comportamientos inesperados del personaje al reaparecer. (01:49:40)
  • Fade to Black al Morir: Creando una transición visual suave para indicar la muerte del jugador. (01:50:15)

4. Interfaz, Audio y Menús

La interfaz de usuario (UI), el audio y los menús son los guardianes de la experiencia del jugador. Una buena UI comunica información vital, un audio envolvente sumerge al jugador, y menús bien diseñados facilitan la navegación.

  • Health Pickup y Corazón de Pickup: Implementando mecánicas de recolección que restauran la salud del jugador. (02:48:41, 03:06:25)
  • Interfaz de Vida UI: Visualizando la salud del jugador de forma clara y atractiva. (03:15:49)
  • Monedas y Animaciones: Añadiendo elementos coleccionables y haciéndolos visualmente satisfactorios. (03:24:24)
  • Audio: Integrando efectos de sonido y música para crear una atmósfera inmersiva. (03:37:08)
    • Ajustando el Audio: Optimizando volúmenes y `mixes` para una experiencia auditiva equilibrada. (03:44:05)
    • Efectos de Sonido: Añadiendo pistas auditivas para acciones clave. (03:45:18)
  • Menú de Pausa: Permitiendo al jugador detener la acción, acceder a opciones y reanudar el juego. (03:48:00)
    • Pausando y Resumiendo el Juego: Implementando la lógica de pausa y reanudación. (03:54:56, 03:59:00)
    • Menú de Opciones: Añadiendo controles para ajustar parámetros del juego, como el audio. (04:04:24)
    • Controlando Audio con Sliders: Integrando sliders para ajustar el volumen. (04:13:14)

5. Enemigos y Diseño de Niveles

Ningún juego de plataformas está completo sin adversarios que pongan a prueba las habilidades del jugador y niveles que desafíen su ingenio. Aquí es donde la inteligencia artificial y el diseño de escenarios se encuentran.

  • Visuales:
    • Skybox: Creando un fondo atmosférico para tu mundo. (04:22:12)
    • Agua: Implementando efectos de agua realistas. (04:24:21)
  • Enemigos (Inteligencia Artificial):
    • Agregando Enemigos: Introduciendo adversarios en el juego. (04:28:10)
    • Movimiento en NavMesh: Utilizando sistemas de navegación para que los enemigos se muevan de forma inteligente por el entorno. (04:32:20)
    • Animando Enemigos: Dando vida a los enemigos con animaciones de ataque, patrullaje y persecución. (04:44:26 - 05:09:36)
    • Patrullando, Persiguiendo y Atacando: Definiendo el comportamiento de IA de los enemigos. (04:49:25 - 05:09:36)
    • Regresando a Patrullar: Implementando lógica para que los enemigos vuelvan a sus rutas. (05:09:36)
    • Daño a Enemigos y Efectos: Definiendo cómo el jugador daña a los enemigos y las consecuencias. (05:19:39 - 05:28:29)
    • Enemigo Drop Items: Haciendo que los enemigos dejen caer objetos al ser derrotados. (05:33:28)
  • Niveles:
    • Agregando Salida de Nivel: Definiendo el objetivo para completar un nivel. (05:35:11)
    • Cargando Niveles: Implementando la transición entre diferentes escenarios. (05:43:22)
    • Creando un Nivel: Diseñando la disposición del escenario. (05:54:06)

6. Menús Principales y Selección de Nivel

La navegación principal de un juego, como el menú principal y la selección de niveles, es la puerta de entrada para el jugador. Una estructura clara y funcional mejora significativamente la experiencia.

  • Creando Menú Principal: Diseñando la interfaz de inicio del juego. (06:10:08)
  • Funcionalidad al Menú Principal: Implementando las acciones asociadas a los botones del menú principal. (06:17:40)
  • Player Prefabs: Asegurando que el jugador se cargue correctamente en diferentes contextos. (06:24:12)
  • Creando Selección de Niveles: Diseñando la interfaz para que los jugadores elijan qué nivel jugar. (06:28:17)
  • Entrando a Niveles: Implementando la lógica para iniciar un nivel seleccionado. (06:34:28)
  • Arreglando Tiempos y Desbloqueando Niveles: Optimizando la transición y la progresión del jugador. (06:39:10 - 06:50:10)
  • Fade to Black al Cargar Nivel: Creando una transición visual para la carga de niveles. (06:50:10)
  • Desbloquear Puente de Selección de Nivel: Implementando elementos de progresión visual en la interfaz de selección. (06:53:48)
  • Empezando en el Nivel Correcto: Asegurando que el jugador comience en la posición designada. (06:57:48)
  • Conteo de Monedas: Mostrando el progreso del jugador en términos de recolección de monedas. (07:13:36)

7. Combate con Jefe y Despliegue

Culminar un juego con una batalla épica contra un jefe es una tradición. Tras superar este desafío, el último paso es empaquetar tu creación para que el mundo pueda disfrutarla.

  • Preparando Nivel del Jefe: Diseñando el escenario para la confrontación final. (07:22:33)
  • Trayendo al Jefe: Introduciendo al antagonista principal. (07:23:47)
  • Colliders del Jefe: Asegurando que las interacciones físicas del jefe sean correctas. (07:26:17)
  • Animando al Jefe: Dando vida al jefe con animaciones específicas para daño y ataque. (07:31:18 - 07:56:37)
  • Controlador de Animaciones del Jefe: Gestionando la lógica y el estado de las animaciones del jefe. (08:01:46)
  • Activando al Jefe: Implementando la lógica para iniciar la batalla. (08:05:03)
  • Libreto que Controla al Jefe: Creando secuencias de comportamiento y ataques para el jefe. (08:09:03)
  • Reseteando Jefe al Morir: Implementando la lógica para el comportamiento posterior a la derrota del jefe. (08:17:11)
  • Dañando al Jefe: Definiendo cómo el jugador inflige daño al jefe. (08:21:31)
  • Build del Juego Final: El proceso de compilar tu proyecto en un ejecutable listo para distribuir. (08:23:01)

8. Recursos Adicionales

El camino del desarrollador es uno de aprendizaje continuo. Aquí te dejo enlaces clave para profundizar tus conocimientos y expandir tus habilidades en el universo de Unity y C#.

  • Curso de Programación C#: Domina el lenguaje que da vida a tus juegos. Ver curso completo.
  • Introducción a Unity 3D: Si eres nuevo en el motor, este es tu punto de partida. Empieza aquí.

9. Veredicto del Ingeniero: ¿Vale la pena adoptar Unity para juegos de plataformas?

Unity no es solo un motor; es un ecosistema. Para la creación de juegos de plataformas 3D, ofrece una curva de aprendizaje manejable, una comunidad robusta y un flujo de trabajo eficiente. La capacidad de iterar rápidamente en el diseño de niveles y la implementación de mecánicas es invaluable.

Pros:

  • Versatilidad: Ideal para 2D y 3D, abarcando géneros.
  • Comunidad y Recursos: Abundancia de tutoriales, assets y foros de ayuda.
  • Multiplataforma: Facilidad para compilar para diversas plataformas.
  • Sistema de Física Integrado: Potente y configurable para experiencias realistas.

Contras:

  • Rendimiento en Proyectos Grandes: Requiere optimización cuidadosa para evitar cuellos de botella.
  • Curva de Aprendizaje para Características Avanzadas: Conceptos como shaders o sistemas de redes pueden ser complejos inicialmente.
  • Licenciamiento: Las versiones gratuitas tienen limitaciones; las de pago pueden ser costosas para desarrolladores independientes.

En resumen: Para la creación de juegos de plataformas, Unity es una opción sólida y accesible. Permite pasar de la idea a un prototipo jugable en tiempo récord. Si buscas una herramienta que te permita experimentar, iterar y lanzar tu juego, Unity es un fuerte contendiente.

10. Arsenal del Operador/Analista

En el arsenal de un desarrollador serio, ciertas herramientas y conocimientos son indispensables. No se trata solo de saber programar, sino de tener el equipo adecuado y la mentalidad correcta para afrontar los desafíos.

  • Motor de Juego: Unity 3D (La elección obvia para este tutorial).
  • Lenguaje de Programación: C# (El lenguaje nativo de Unity).
  • IDE: Visual Studio o Rider (Para una experiencia de codificación fluida y depuración eficiente).
  • Gestión de Versiones: Git (Indispensable para cualquier proyecto de software serio, ¡no trabajes sin él!).
  • Herramientas de Diseño: Blender o Maya (Para modelado 3D si necesitas crear assets personalizados).
  • Software de Edición de Audio: Audacity o Reaper (Para crear y manipular efectos de sonido y música).
  • Plataformas de Aprendizaje:
    • Unity Learn (Recursos oficiales).
    • YouTube (Canales como este para tutoriales prácticos).
    • Udemy/Coursera (Cursos estructurados para profundizar).
  • Libros Clave:
    • "Unity Game Development Cookbook" por Packt Publishing (Recetas prácticas).
    • "C# in Depth" por Jon Skeet (Para dominar el lenguaje).
  • Conceptos Clave:
    • Principios de Diseño de Juegos.
    • Mecánicas de Plataformas (Salto, gravedad, control).
    • Inteligencia Artificial básica para IA de enemigos.
    • Diseño de Niveles y Curva de Dificultad.
    • Optimización y Build para Despliegue.

11. Preguntas Frecuentes

¿Necesito ser un programador experto para usar Unity?
No necesariamente. Unity es accesible para principiantes, pero un conocimiento sólido de C# acelerará tu progreso y te permitirá crear mecánicas más complejas.
¿Cuánto tiempo se tarda en crear un juego de plataformas completo?
El tiempo varía enormemente según la complejidad, tu experiencia y la dedicación. Este curso cubre muchas facetas, pero un juego comercialmente viable puede llevar meses o años.
¿Puedo usar estas técnicas para juegos 2D?
Sí, muchos de los principios (movimiento, física, UI, IA básica) son transferibles, aunque Unity tiene herramientas específicas para el desarrollo 2D.
¿Este curso cubre la monetización de juegos?
Este curso se enfoca en el desarrollo técnico. La monetización (ventas, anuncios, etc.) es un aspecto aparte que deberás investigar.
¿Qué hago si encuentro un bug en mi código?
La depuración es parte del proceso. Utiliza las herramientas de depuración de tu IDE (Visual Studio, Rider), revisa la consola de Unity y busca soluciones en foros y documentación.

12. El Contrato: Tu Primer Despliegue

Has recorrido el camino, desde la configuración inicial hasta el build final. Has armado el esqueleto de tu juego de plataformas 3D, dándole vida con mecánicas, enemigos y menús.

El Contrato: Tu misión ahora es tomar este conocimiento y aplicarlo. No te limites a seguir los pasos; experimenta. Modifica la física del salto, introduce un nuevo tipo de enemigo con un patrón de ataque único, o rediseña un nivel para que presente un desafío diferente. La verdadera maestría no se adquiere repitiendo, sino innovando.

El Desafío: Empaqueta tu propio juego de plataformas simple usando las técnicas aprendidas. Enfócate en un bucle de juego corto pero pulido. ¿Puedes crear un nivel donde el jugador deba usar el doble salto y esquivar proyectiles para alcanzar el final? Documenta tu proceso, tus decisiones de diseño y cualquier obstáculo que encuentres. Comparte tus hallazgos y tu código (si te sientes cómodo) en los comentarios.

Ahora, ve y construye. El universo digital espera tu creación.

html