Cómo funciona el catálogo de scripts de automatización de Genshin Impact
Cualquiera que haya jugado Genshin Impact conoce esta rutina: recolectar 168 curiosidades para la ascensión de personajes, limpiar puntos de mineral, completar mazmorras diarias. El proceso se convierte en un segundo trabajo. La comunidad resuelve este problema a su manera. El proyecto BetterGI utiliza visión por computadora y emulación de entrada para automatizar el grind, y el repositorio 4 funciona como una especie de gestor de paquetes central.
Me interesó ver cómo los desarrolladores organizaron el repositorio de scripts de usuario. Cuando cientos de personas envían rutas de farmeo, rotaciones de combate y macros personalizados de JS, un proyecto puede convertirse fácilmente en un caos. Aquí los autores construyeron un sistema estricto de moderación y estructura a través de Pull Requests regulares.
Qué hay dentro del repositorio
El repositorio alimenta una tienda web 5. Los usuarios lanzan el cliente de BetterGI, seleccionan el escenario necesario del catálogo, y la aplicación obtiene los datos directamente de Git. No hay base de datos compleja del lado del servidor — GitHub actúa como la única fuente de verdad.
El catálogo se divide en cuatro áreas principales:
- 6 — scripts de rotación de combate. Estos describen los tiempos de habilidades de personajes, pausas y condiciones de completado de mazmorras.
- 7 — rutas de navegación. Estos son archivos JSON con coordenadas de movimiento de personajes desde teletransportes hasta puntos de recolección de recursos.
- 8 — escenarios complejos de automatización en JavaScript con reconocimiento de patrones y una interfaz personalizada.
- 9 — lógica para el modo de cartas "Invocación de los Siete".
Arquitectura de scripts de navegación
La parte más grande del catálogo son las rutas de recolección de recursos (10). Para mantener legibles miles de archivos, la comunidad introdujo un estándar estricto de nomenclatura:
0Ejemplo del repositorio: 11 (Cristales, Liyue, Cloud Retainer, 6 piezas). Los números de ruta no son arbitrarios. Las rutas se ordenan ya sea por orden de teletransporte para reducir tiempos de carga, o por densidad de recursos para farmear primero los puntos más ricos.
Los conflictos se manejan de manera interesante. Supongamos que dos autores crearon rutas de recolección para la misma flor, pero para diferentes configuraciones de personajes:
1Si el jugador tiene un personaje que recolecta recursos a distancia, descarga un preset. Si la recolección se hace con un personaje estándar de espada a dos manos para romper mineral — otro. La estructura del catálogo aísla estas variantes usando carpetas con el sufijo 12.
Escenarios complejos en JavaScript
Los movimientos simples no cubren todas las tareas. Para cosas complejas como farmeo automático de líneas ley o carreras de materiales de ascensión, se usan scripts JS. Estructura típica de carpetas en 13:
2Dentro de 14, los desarrolladores unen el emparejamiento de imágenes de plantilla (Template Matching mediante OpenCV) y la simulación de clics. Si el icono requerido de la carpeta 15 aparece en pantalla, se activa una rama lógica.
Para la configuración de parámetros, los autores de scripts pueden adjuntar superposiciones HTML personalizadas. Las reglas del repositorio tienen requisitos claros para ellas: los bundles SPA pesados sin código fuente están prohibidos, por lo que el motor web de la superposición no consume RAM extra durante el juego.
3Contribuidores y soporte
El proyecto es mantenido por una comunidad china activa. La mayor parte de los cambios llegan a través de PRs de GitHub, donde los autores adhieren a reglas estrictas de comentarios y formato.
A quién le será útil este proyecto
Si escribes bots de juegos o creas automatización basada en visión por computadora, 16 es un gran ejemplo de cómo organizar una base de datos colaborativa de scripts:
- Cómo hacer de GitHub un registro de paquetes sin escribir un backend.
- Cómo almacenar activos de reconocimiento de imágenes junto con código ejecutable.
- Cómo construir un esquema de nomenclatura de archivos que elimine la duplicación y la confusión entre docenas de autores.
El código fuente es abierto, y la documentación sobre formatos de escenarios está disponible en el sitio web del proyecto. Incluso si estás lejos de Genshin Impact, las soluciones arquitectónicas para organización de archivos y estándares de contribución pueden adaptarse para tus propias utilidades.
Proyectos relacionados