🎮 Crea un Juego Match 3 con Gemini CLI
Aprende a orquestar un agente de IA para construir CloudCrush, un juego de arcade completo en Go, compilado a WebAssembly y desplegado en Cloud Run.
🎯 Lo que Aprenderás
Domina flujos de trabajo con agentes de IA: desde la creación del juego hasta su despliegue en la nube, pasando por pruebas automatizadas y auditorías de seguridad.
Módulo 1: Configuración del Entorno
Prepara tu entorno de desarrollo con las herramientas necesarias: Gemini CLI, Go y gcloud CLI.
Comandos Esenciales:
- gemini --version: Verifica la instalación de Gemini CLI
- gcloud auth list: Confirma tu autenticación en Google Cloud
- gcloud config set project: Configura tu proyecto de Cloud
$ gemini --version
0.37.1
$ gcloud config get project
my-gemini-project
Ejercicio Práctico 1.1
¿Qué comando usas para configurar tu proyecto en gcloud?
Módulo 2: Modo de Planificación con Gemini
El modo de planificación (/plan) permite que Gemini CLI coordine el desarrollo de tareas complejas antes de escribir código.
Flujo de Trabajo:
- /plan: Activa el modo de planificación
- Responder preguntas: Clarifica preferencias del proyecto
- Revisar plan: Acepta o modifica la estrategia
- Ejecutar: El agente genera el código automáticamente
> /plan
[Plan mode activated]
> Build a Match-3 game called 'Cloud Crush' in Go using Ebitengine v2...
[Generating plan...]
[Plan ready for review]
Ejercicio Práctico 2.1
¿Qué comando activa el modo de planificación en Gemini CLI?
Módulo 3: Dirección del Modelo (Model Steering)
La dirección del modelo te permite corregir el rumbo del agente mientras trabaja, agregando requisitos o ajustes sin interrumpir el flujo.
Características Clave:
- Comandos en cola: Agrega instrucciones mientras el agente trabaja
- Correcciones en tiempo real: Ajusta la implementación sin reiniciar
- Feedback inmediato: El agente adapta su respuesta al nuevo contexto
[Agent working...]
[Generating game logic...]
> Add a 60-seconds countdown timer and high-score tracker
[Steering hint queued]
[Updating implementation...]
Ejercicio Práctico 3.1
¿Qué te permite hacer la "dirección del modelo"?
Módulo 4: Compilación a WebAssembly
Convierte tu juego de Go para que se ejecute en navegadores web usando WebAssembly (WASM).
Proceso de Compilación:
- GOOS=js GOARCH=wasm: Configura el entorno para WASM
- go build: Compila el código a game.wasm
- Servidor web: Sirve WASM, assets y wasm_exec.js
$ GOOS=js GOARCH=wasm go build -o game.wasm
[Build successful]
$ go run server.go
Serving at http://localhost:8080
Ejercicio Práctico 4.1
¿Qué variables de entorno configuras para compilar a WASM?
Módulo 5: Despliegue en Cloud Run
Implementa tu juego en Google Cloud Run para que esté disponible globalmente con escalado automático.
Comandos de Despliegue:
- gcloud builds submit: Construye la imagen del contenedor
- gcloud run deploy: Despliega en Cloud Run
- --allow-unauthenticated: Permite acceso público
$ gcloud run deploy cloud-crush \
--source . \
--region us-central1 \
--allow-unauthenticated
✓ Deploying... Done!
Service URL: https://cloud-crush-xyz.a.run.app
Ejercicio Práctico 5.1
¿Qué flag permite acceso público en Cloud Run?
Módulo 6: Subagentes Especializados
Los subagentes operan en contextos independientes para tareas específicas como pruebas o auditorías de seguridad.
Tipos de Subagentes:
- @browser_agent: Navega y prueba aplicaciones web
- @security-auditor: Audita código en busca de vulnerabilidades
- Agentes personalizados: Crea tus propios arquetipos especializados
> @browser_agent perform end-to-end test...
[Launching Chrome instance]
[Navigating to https://cloud-crush.a.run.app]
[Test complete. Screenshots saved to ./screenshots]
Ejercicio Práctico 6.1
¿Qué subagente usarías para probar una aplicación web?
Módulo 7: Auditoría de Seguridad
Crea agentes personalizados para auditar tu código en busca de vulnerabilidades comunes antes del despliegue.
Vulnerabilidades a Detectar:
- SQL Injection: Consultas no sanitizadas
- XSS: Scripts inyectados en entradas de usuario
- Credenciales hardcodeadas: Claves API o contraseñas en el código
- Directory Traversal: Acceso no autorizado a archivos
Ejercicio Práctico 7.1
Nombra una vulnerabilidad de seguridad común en aplicaciones web:
Comentarios
Publicar un comentario