Llevar múltiples cuentas de Steam a la vez, mantenerlas activas en CS2 y gestionar drops automáticamente es el tipo de problema que me encanta resolver con Python.
El problema
Necesitaba ejecutar varias instancias de Steam en paralelo, cada una aislada de las demás, sin compartir sesión ni perfil de Windows. La clave: sandboxing a nivel de proceso.
Arquitectura
- Un proceso coordinador principal con GUI en Tkinter
- Cada cuenta corre en su propio sandbox aislado
- Comunicación entre procesos via pipes
- Monitor en tiempo real del estado de cada instancia
Lanzar una instancia
import subprocess, os
def launch_instance(account_id: str, sandbox_path: str):
env = os.environ.copy()
env["STEAM_USER"] = account_id
proc = subprocess.Popen(
["steam.exe", "-login", account_id],
cwd=sandbox_path,
env=env,
creationflags=subprocess.CREATE_NEW_PROCESS_GROUP,
)
return proc
Conclusión
El mayor reto fue el aislamiento de perfiles. Con directorios separados por cuenta y variables de entorno controladas, conseguí que nunca interfirieran entre sí.