Sobre el proyecto
VIM Master es un juego interactivo basado en navegador para aprender Vim. En lugar de leer documentación, los jugadores avanzan por lecciones breves y enfocadas dentro de un entorno de editor simulado, con dificultad progresiva y elementos de gamificación como XP, combos, logros e insignias.
Características clave descritas en el README:
- Aprendizaje interactivo en un editor Vim simulado.
- Gamificación: XP, combos, logros e insignias.
- Un motor de contenido basado en JSON: cada lección es un archivo JSON autocontenido.
- Una Arena de Práctica para desafíos de velocidad y precisión con tiempo limitado.
- Modo Trucos, una referencia de comandos accesible.
- Guardados locales de progreso, insignias y XP, con soporte de importación/exportación.
Ejecutarlo localmente requiere clonar el repositorio, instalar dependencias con npm, ejecutar el script de comprobación e iniciar el servidor de desarrollo. El juego se sirve mediante Vite, normalmente en http://localhost:5173/.
Arquitectura: desde la V3 en adelante el proyecto usa una arquitectura de plataforma de contenido. El motor consume contenido en lugar de codificar las lecciones de forma fija. Las lecciones viven en content/lessons/*.json, y un paso de compilación (npm run build:content) las compila en content/index.json, que el motor lee. El repositorio se organiza en content (lecciones y esquemas), docs (guías comunitarias, arquitectura, principios), js (motor, sistema de progreso, componentes de UI) y tests.
Pruebas y validación: el proyecto describe una estrategia de cuatro partes. Una suite de contrato valida las lecciones JSON contra esquemas estrictos. Una suite golden ejecuta las pulsaciones exactas del array de solución de una lección a través del motor y comprueba el estado final del editor contra targetContent. Una suite de regresión protege contra errores corregidos previamente, y una suite unitaria verifica la lógica de estado interna y los helpers. Todas se pueden ejecutar con npm run check.
Contribuir: la arquitectura está pensada para que los colaboradores puedan añadir lecciones sin entender el motor. Añadir una lección se describe como copiar un archivo JSON existente, editar el texto y abrir una pull request, con una guía dedicada en docs/community/contributing-a-lesson.md.
Los elementos de la hoja de ruta enumerados incluyen la migración completada a contenido basado en JSON, una alfa comunitaria con suites de pruebas, documentación y gamificación, el pulido de UX de la V3 en curso (experiencia para usuarios primerizos, UI minimalista, menor carga cognitiva) y una beta pública planificada. El proyecto se publica bajo la Licencia MIT.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.