GameSync es una utilidad diseñada para sincronizar los juegos instalados localmente desde plataformas como Steam y Epic Games, generando accesos directos unificados en una carpeta especifica de Windows.
- Soporte nativo para multiples bibliotecas de Steam y lectura automatica de manifiestos de Epic Games.
- GUI hecha con CustomTkinter.
- Creacion de accesos directos en formato
.urlapuntando a los protocolos oficiales de cada launcher (steam://ycom.epicgames.launcher://). - Extraccion automatica de iconos mediante busqueda heuristica de ejecutables.
- Capacidad de ejecucion silenciosa en segundo plano para integracion con el inicio de Windows.
Encontrar el ejecutable principal de un juego de Steam para extraer su icono puede ser complejo, ya que las carpetas suelen contener instaladores, dependencias o ejecutables secundarios (como crash_reporter.exe o navegadores integrados como nw.exe).
Para resolver esto sin bases de datos externas, GameSync utiliza un algoritmo de puntuacion heuristica al analizar los archivos .exe en el directorio de cada juego:
- Excepciones Fijas: Los juegos con estructuras atipicas documentadas (como Counter-Strike 2 o Game Dev Tycoon) son resueltos inmediatamente a traves de su AppID, apuntando a un ejecutable predefinido.
- Limpieza de nombres: Se filtran y descartan ejecutables de librerias comunes (
redist,setup,launcher,easyanticheat, etc.). - Puntuacion por Motor Source/Valve (+100 puntos): Se priorizan nombres clasicos del motor Source (
hl2.exe,csgo.exe) que suelen quedar relegados por su bajo tamano en disco. - Coincidencia de Nombre (+200 o +50 puntos): Se eliminan los espacios y caracteres especiales. Si el nombre del
.execoincide exactamente con el nombre del juego o su carpeta, recibe la puntuacion maxima. Si es una coincidencia parcial, recibe un bono menor. - Profundidad de Directorio (+10 puntos): Los ejecutables ubicados en la raiz de la carpeta del juego reciben prioridad sobre los que estan anidados en multiples subcarpetas.
- Desempate por Tamano (+X puntos): Se suma el tamano del archivo en MB (con un tope de 20 puntos) asumiendo que el ejecutable principal suele ser el mas pesado entre los archivos restantes.
El archivo .exe con mayor puntuacion total es seleccionado para proveer el icono al acceso directo de Windows.
main.py: Ejecutable principal que lanza la interfaz grafica.startup_sync.py: Script sin interfaz grafica disenado para ejecutarse en el inicio del sistema operativo.back/steam_manager.py: Logica de lectura de archivos.acfy algoritmo heuristico.back/epic_manager.py: Logica de lectura de manifiestos.itemde Epic Games.config.json: Archivo autogenerado que almacena las rutas del usuario y preferencias.