尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Caco al rescate: videojuego educativo de Eco Urban A.C. (Toluca)
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Videojuego educativo para Eco Urban A.C. (Toluca, Estado de México), hecho para el programa Escuelas Comprometidas con el Medio Ambiente.
Mixtle, un cacomixtle que vive en los árboles del parque, guía a cada grupo de salón por un camino de aprendizaje con cinco unidades: Separa tu basura, Los animales del parque, Árboles y áreas verdes, Aire limpio y Reduce y reutiliza. Son 20 lecciones (4 por unidad) de unos 3 minutos y cada unidad termina con una aventura (un minijuego) y una estampa para el álbum.
v3-demo es la versión que Eco Urban vio y aprobó el 30 de octubre de 2026; lo que vino después son cierres menores (ver CHANGELOG.md).Tráiler (39 s): docs/trailer/mixtle-al-rescate.mp4. Se grabó con la voz anterior de Mixtle; la voz del juego publicado es la de Alejo (ver Límites conocidos).
Manual de la persona facilitadora: docs/Manual_del_facilitador_Mixtle_al_Rescate.docx. Ahí está, paso a paso, cómo preparar la laptop o las tablets, cómo llevar una sesión y qué hacer si algo falla.
En corto:
| Unidad | Aventura | Estampa |
|---|---|---|
| 1. Separa tu basura | Limpia el parque: recoger la basura, llevar cada residuo a su bote, sembrar donde quedó limpio, y la "lluvia de basura" | Cacomixtle |
| 2. Los animales del parque | Rescate en el parque: liberar a los animales atrapados y separar su basura | Mariposa monarca |
| 3. Árboles y áreas verdes | Siembra un bosquecito: plantar seis arbolitos y regarlos hasta que crezcan | Colibrí |
| 4. Aire limpio | En bici a la escuela: cambiar de carril y esquivar el humo | Ajolote de montaña |
| 5. Reduce y reutiliza | Mi lonchera sin basura: cada cosa a la lonchera o a "Mejor no" | Tlacuache |
Cada unidad tiene 4 lecciones (20 en total) de 6 a 7 ejercicios, con siete tipos de ejercicio: Elige la imagen, Al bote, Parejas, ¿Sí o no?, Ordena los pasos, Encuentra el error y Escucha y toca (sin texto, para quienes todavía no leen). Un error nunca castiga: Mixtle dice "¡Casi!", da una pista y el ejercicio vuelve al final para repasar.
| Camino | Acierto en una lección |
|---|---|
| Aventura de la unidad 2 | Diploma de unidad |
| Vestidor | El camino en la tablet |
Permissions-Policy).TODO(Eco Urban) en los archivos).El juego usa técnicas de diseño de juegos para atraer y motivar, todas orientadas a que el grupo practique y se sienta capaz, no a que pase más tiempo en la pantalla:
| Técnica | Dónde | Por qué es apropiada para 6 a 8 años |
|---|---|---|
| Personaje guía con personalidad y frase propia ("¡Al rescate!") | Mixtle en todo el juego | A esta edad aprenden mejor con un modelo cercano. Mixtle acompaña, explica y anima; nunca vende nada ni pide que vuelvan. |
| Respuesta inmediata a cada toque | Botones, tarjetas, aciertos | Necesitan ver que su acción tuvo efecto. Se refuerza la acción, no la repetición compulsiva; no hay sonidos de "fallo". |
| Meta visible y avance | El parque del grupo, la barra de la lección | Hace concreto el resultado de su esfuerzo ("estamos salvando nuestro parque") y es un logro de todo el grupo. |
| Recompensa por esfuerzo | Hojitas por terminar y por acertar a la primera, diploma | Se gana por practicar. Un error no quita nada; lo que costó trabajo vuelve para repasar. |
| Racha dentro de la lección | "¡3 seguidas!" | Celebra la concentración del momento. Si hay un error, deja de verse sin decir nada; no cruza lecciones ni días. |
| Anticipación sin azar | El cofre se sacude, brilla y estalla | La emoción está en la animación. Lo que trae se dice y se ve desde antes. |
| Coleccionar | Álbum de animales de Toluca | Completar el álbum da orgullo y enseña fauna local. Las estampas no se compran: se ganan terminando unidades. |
| Personalización | Vestidor de la mascota del grupo | Da sentido de pertenencia y uso a las hojitas. El precio es fijo y está a la vista, nada se pierde y no hay dinero real. |
| Identidad local | Ambientes con el Nevado de Toluca, portales y vitrales | Reconocer su ciudad genera orgullo y hace relevante lo que aprenden. |
Lo que no se usa: anuncios ni compras; premios aleatorios (el cofre siempre trae lo mismo y lo dice antes); rachas diarias que se pierdan o mensajes de culpa; temporizadores que presionen, vidas o notificaciones; tablas de posiciones o comparaciones entre grupos. Hay pruebas automáticas para varias de estas reglas.
Todo el contenido vive en archivos de datos separados de la lógica, marcados con TODO(Eco Urban). Cada dato que Mixtle dice tiene su fuente en docs/fuentes-contenido.md (CONABIO, CONANP, SEMARNAT, CONAFOR, UNAM, UAEMéx, DOF y, para reciclaje, ECOCE y la industria responsable). El detalle completo está en docs/notas-tecnicas.md; en corto:
src/contenido/unidades/u1-separa.ts … u5-reutiliza.ts, src/contenido/aventuras.ts y src/contenido/textosApp.ts. Los residuos y los botes (de 2 a 4 categorías) están en src/data/. Las pruebas automáticas revisan que el contenido siga siendo válido después de un cambio.npm run voz:usar -- azure y los ajustes de voz.config.json, y después npm run voz:generar (el plan gratuito de Azure alcanza para regenerar todo más de 10 veces al mes; se necesita una llave propia en .env.local, nunca en el repositorio); (b) una voz humana: npm run voz:lista genera docs/frases-mixtle.csv con todas las frases; se graban en voz-grabaciones/ con el nombre indicado y npm run voz:generar las toma en lugar de la voz generada. La pronunciación de palabras sueltas ("Mixtle" suena "miks-tle") se ajusta en el diccionario de voz.config.json sin tocar el texto en pantalla.public/musica/. npm run musica:muestras genera una página para escuchar candidatas; se elige en scripts/musica/elegidas.json y se instala con npm run musica:instalar. Hay que anotarla en CREDITOS.md.docs/marca/ y la guía en docs/marca.md.El juego es un sitio estático desplegado en Vercel desde este repositorio: cada cambio que llega a la rama main se publica solo en producción (https://mixtle-al-rescate.vercel.app) en uno o dos minutos; cada rama o pull request genera una versión de prueba con su propia dirección. Las laptops y tablets que ya tienen el juego reciben la versión nueva sin perder los grupos: se actualizan solas al volver a una pantalla segura (nunca a media lección), y si no, el inicio muestra "Hay una versión nueva. Toca para actualizar". Nunca "Borrar datos del sitio" desde el navegador: eso borra los grupos y su avance.
Para volver a una versión anterior hay dos formas: Instant Rollback en el panel de Vercel, o con git git revert --no-commit v3-demo..main && git commit && git push. La integración continua (.github/workflows/ci.yml) revisa tipos, lint, pruebas y build en Ubuntu y Windows, y después los recorridos en el navegador.
Medido entre el 27 y el 30 de octubre de 2026 en una laptop de 8 GB (Intel Core i5-10210U) y en el sitio publicado. Los archivos completos están en docs/mediciones/ y el método, en docs/notas-tecnicas.md.
| Qué | Resultado |
|---|---|
| Lo que se descarga antes de la primera pantalla | 240.4 KB comprimidos (límite 250 KB, vigilado por npm run presupuesto) |
| Cuadros por segundo con tarjeta de video | 59–60 fps en los momentos más pesados, a 1920×1080 y 1024×768 |
| Equipos sin aceleración por tarjeta de video | 11–33 fps con todo; el juego lo detecta y pasa solo a las animaciones suaves: 57–60 fps |
| "¡Jugar!" → "¿Quién va a jugar?" con red lenta (Slow 4G), primera visita | 0.35–0.38 s (antes de optimizar: 5.2 s) |
| "Listo para usar sin internet" con Slow 4G, en producción | 3.8 min (845 archivos, 28 MB, en segundo plano sin estorbar) |
| Voz | 798 frases con audio grabado, 25 MB; el silencio dentro de los audios bajó de 30 % a 16 % |
| Diploma | Se imprime en una sola hoja, carta y A4 |
| Pruebas unitarias (Vitest) | 1499 pruebas en 43 archivos, todas pasan (contenido válido, voz completa, camino y grupos, arte de Mixtle, música, aventuras, privacidad de la llave) |
| Recorridos en el navegador (Playwright) | 58 de 58 pasan contra producción (30 de octubre de 2026): aventuras completas, lección con error, parque que crece, avance guardado, botones de 64 px, vestidor, modo facilitador, ninguna petición que envíe datos, en 1920×1080 y 1024×768 táctil |
npm run verificar corre tipos, lint, pruebas unitarias, build y presupuesto de golpe; npm run test:e2e corre los recorridos en el navegador (contra producción: $env:BASE_URL="https://mixtle-al-rescate.vercel.app"; npm run test:e2e).
TODO(Eco Urban)).Un piloto con un grupo real de 1º a 3º en una escuela del programa, con la laptop proyectada y, si se puede, una tablet por equipo: una sesión completa de la unidad 1 (lección, cofre, aventura, diploma). Qué observar: si entienden las consignas solo con la voz, si los toques bastan en la tablet, cuánto dura de verdad una lección (se estimó en ~3 min), qué palabras de Alejo suenan raras y si la persona facilitadora encuentra sola el modo facilitador. Con eso, el equipo educativo ajusta la redacción y se decide si se graba una voz humana.
Eco Urban puede usar, copiar, modificar, mejorar y compartir este juego como quiera, con o sin cambios, con o sin cobrar, sin pedir permiso: el trabajo se hizo para Eco Urban. Lo único que pide la licencia es conservar el aviso de autoría. Formalmente es la licencia MIT, para todo el proyecto (código, textos y arte originales), a nombre de Valentina Jaymes Juárez, Mary Jose Galán Gordillo, Ana Sofía Luna Gómez, René Emiliano Cano Fuentes y Sophie Alejandra Mendoza Guadarrama, estudiantes del Tecnológico de Monterrey, Campus Toluca, para Eco Urban A.C. El texto completo está en LICENSE.
Los recursos de terceros conservan su propia licencia y están listados con autor, fuente y enlace en CREDITOS.md: la música es CC0, las tipografías Nunito y Baloo 2 son OFL-1.1, las bibliotecas son MIT o Apache-2.0 y la voz generada con Azure AI Speech se rige por los términos de ese servicio. El arte es original de este proyecto (ilustraciones SVG hechas en código), los efectos de sonido se sintetizan con scripts propios, la voz se genera con Azure AI Speech y la música es CC0. La tipografía es Nunito y Baloo 2 (OFL-1.1). Las bibliotecas son React, Phaser, Motion, Zustand, Tailwind CSS y Howler (MIT) e idb-keyval (Apache-2.0).
Requisitos: Node.js 22.12 o más nuevo y Chrome o Edge. Funciona en Windows, sin bash.
npm install
npm run dev # http://localhost:5173
npm run verificar # tipos + lint + pruebas + build + presupuesto
| Comando | Qué hace |
|---|---|
npm run dev / npm run build / npm run preview | Desarrollo con recarga, build en dist/, servir el build |
npm test / npm run test:e2e | Pruebas unitarias (Vitest) / recorridos en el navegador (Playwright, un navegador a la vez) |
npm run verificar | Tipos, lint, pruebas, build y presupuesto de la primera pantalla |
npm run voz:generar / voz:lista / voz:usar / voz:muestras | Voces de Mixtle: generar, lista para grabar, cambiar de proveedor, muestras para elegir |
npm run musica:muestras / musica:instalar / sonidos:generar | Música y efectos |
npm run capturas | Capturas de docs/capturas/ jugando un recorrido |
npm run actualizacion:probar -- --antes=… --despues=… | Reproduce el paso de una versión guardada a una nueva |
node scripts/medir-carga.mjs, medir-fps.mjs, medir-transicion.mjs | Mediciones (red lenta, cuadros por segundo, transición) |
Atajos para revisar (en desarrollo o con ?e2e en la dirección): ?galeria muestra todo el arte, ?mixtle todas las apariciones de Mixtle y los accesorios en las seis mascotas, ?escena=Rescate&unidad=u2 entra directo a una aventura, y ?depurar-audio (siempre disponible) registra lo que pasa con la música y la voz.
src/
app/ interfaz en React: pantallas, componentes, los 7 tipos de ejercicio y estado (Zustand)
contenido/ lo que se enseña: unidades y lecciones, textos de la app y de las aventuras
aventuras/ una entrada por unidad; monta Phaser solo al entrar a la aventura
scenes/ escenas de Phaser: los niveles de la unidad 1, Rescate, Bosque, Bici, Lonchera y el diploma
logica/ reglas puras y probadas: lección, camino, grupos, clasificación, diplomas, accesorios
servicios/ voz, música y efectos, almacenamiento (IndexedDB), actualización, sin internet, rendimiento
voz/ frases narradas, hash de audios y encadenado de piezas
arte/ ilustraciones originales en SVG (como código): personajes, escenario, ambientes, accesorios y marca
ui/ piezas de Phaser: Mixtle, botones, globo, botes, animales
tests/ pruebas unitarias (Vitest)
e2e/ recorridos en el navegador (Playwright)
scripts/ voces (Kokoro y Azure), música, efectos, marca, capturas, presupuesto, mediciones, tráiler
public/ voz, música, efectos, íconos y logo
docs/ manual del facilitador, fuentes del contenido, lista de frases, capturas, marca, mediciones,
notas técnicas y tráiler
Más detalle (cómo se generan las voces, el recorte de silencio, la carga con red lenta, cómo llegan las versiones nuevas, los tipos de ejercicio) en docs/notas-tecnicas.md. El historial de versiones está en CHANGELOG.md.