Documentación de Steamworks
Steam Cloud

Descripción general de Steam Cloud

Steam Cloud ofrece un sistema sencillo y transparente de almacenamiento remoto para los juegos. Los archivos especificados en la configuración de Auto-Cloud o guardados en disco (creados, modificados, borrados, etc.) con la API de Steam Cloud se duplican automáticamente en los servidores de Steam tras salir del juego.

Si el usuario cambia de ordenador, los archivos se descargan automáticamente en el nuevo antes de iniciar el juego. A continuación, se puede acceder a los archivos leyéndolos a través de la API de Steam Cloud o directamente en el disco, como de costumbre. Hay que evitar configuraciones específicas del equipo, como los ajustes de vídeo.

El cliente de Steam se ocupa de que todos los archivos estén sincronizados en todos los equipos a los que acceda el usuario.

Los usuarios pueden deshabilitar de manera global la sincronización de Steam Cloud en los ajustes de este servicio, desmarcando la opción "Activar sincronización de Steam Cloud para las aplicaciones que lo soporten".

También lo pueden hacer en cada juego, dentro de sus propiedades.

Spacewar_Cloud_Properties.png

Configuración inicial

Para configurar Steam Cloud, debes configurar la Cuota de bytes por usuario y el Número de archivos permitidos por usuario en las opciones Steam Cloud Settings en el panel de administración de la aplicación Steamworks.

Esta cuota se impone en cada juego con la nube activada, por usuario y juego. Es recomendable fijar valores razonables para el juego en concreto.

NOTA: No olvides hacer clic en Guardar, en la parte inferior de la página, y publicar los nuevos ajustes. Hecho esto, todo el que posea el juego podrá ver el icono de la nube en el cliente de Steam.

Si tu juego ya ha sido lanzado al público, puedes marcar la casilla Habilitar soporte en la nube solo para desarrolladores. Si está activado el modo solo para desarrolladores, solo verán el icono de la nube y podrán usar Steam Cloud las cuentas de Steam que cuenten con licencia "Developer Comp" para ese título. Resulta útil para probar la integración con Steam Cloud sin interrumpir la experiencia del usuario público. No tiene ningún efecto en juegos que no se han publicado, ya que, como nadie tiene el juego aún, nadie puede ver o tener acceso al almacenamiento en la nube de esa id. de aplicación.

Puedes compartir el espacio de almacenamiento en la nube entre dos id. de aplicación completando el campo ID de aplicación de nube compartida. Normalmente se usa para que una demo y un juego completo compartan partidas guardadas. Un valor de 0 desactiva esta función.

API de Steam Cloud y herramienta Steam Auto-Cloud

Steam ofrece dos métodos diferentes para utilizar Steam Cloud. Aquí señalamos las diferencias entre ambos métodos para facilitar la elección del más adecuado para cada aplicación.

Primero está la API de Steam Cloud.
La API de la nube proporciona una serie de funciones que te permiten integrar directamente la nube de Steam en tu juego. La API aísla los archivos de cada usuario de Steam y proporciona más nivel de control sobre Steam Cloud.

La API de Steam Cloud se expone a través de la interfaz API ISteamRemoteStorage y puedes encontrar ejemplos de uso en el proyecto Ejemplo de aplicación de la API de Steamworks (Spacewar!).

El segundo es Steam Auto-Cloud.
Steam Auto-Cloud fue diseñado para juegos antiguos en los que no se puede integrar fácilmente la API de Steam Cloud. Es una forma rápida y sencilla de empezar, pero carece de la potencia y la flexibilidad que sí ofrece la API de Steam Cloud.

En general, se recomienda usar la API de Steam Cloud siempre que sea posible, ya que permite profundizar más en la integración y la personalización, además de proporcionar la experiencia de gran calidad que los usuarios de Steam esperan ya de Steam Cloud.

Steam Auto-Cloud

Steam Auto-Cloud es una alternativa a la API de Steam Cloud que permite usar Steam Cloud para aplicaciones sin tener que escribir código o modificar el juego en absoluto. Solo es necesario especificar los grupos de archivos que se desean conservar en la nube. Steam sincronizará automáticamente los grupos de archivos cuando la aplicación se inicia y se cierra. Hay que evitar configuraciones específicas del equipo, como la calidad del vídeo.

Instrucciones de configuración

Después de completar Configuración inicial la sección de configuración de Steam Auto-Cloud se desbloqueará en la página Configuración de Steam Cloud.

Las rutas de acceso raíz describen grupos de archivos que se conservarán en Steam Cloud. Una ruta de acceso raíz puede ser tan específica como un único archivo o tan amplia como todos los archivos de una subcarpeta determinada. Se usa una ruta nueva para cada grupo de archivos que se va a sincronizar.

Una ruta de acceso raíz se compone de cinco partes:
  1. Raíz

    Es una lista de rutas predeterminadas en las que se ubican habitualmente las partidas guardadas.
    RaízSistemas operativos soportadosRuta correspondiente
    App Install DirectoryAlt[Steam Install]\SteamApps\common\[Game Folder]\
    SteamCloudDocumentsAllRuta específica de la plataforma, por ej. en Linux: ~/.SteamCloud/[username]/[Carpeta de juego]/
    WinMyDocumentsWindows%USERPROFILE%\My Documents\
    WinAppDataLocalWindows%USERPROFILE%\AppData\Local\
    WinAppDataLocalLowWindows%USERPROFILE%\AppData\LocalLow\
    WinAppDataRoamingWindows%USERPROFILE%\AppData\Roaming\
    WinSavedGamesWindows%USERPROFILE%\Saved Games\
    MacHomemacOS~/
    MacAppSupportmacOS~/Library/Application Support/
    MacDocumentsmacOS~/Documents/
    LinuxHomeLinux~/
    LinuxXdgDataHomeLinux$XDG\_DATA\_HOME/
  2. Subdirectorio

    Ruta del subdirectorio a los archivos almacenados en la nube, relativa a la raíz. Se usa "." si no se utiliza ningún subdirectorio.

    Valores especiales de ruta de acceso de Auto-Cloud
    Auto-Cloud permite el uso de identificadores de usuario de Steam únicos en la ruta Subdirectorio. De esta forma, se pueden almacenar por separado las partidas guardadas de cada usuario de Steam en el ordenador. Se puede usar ISteamUser::GetSteamID en tu juego para obtener el SteamID o el AccountID del usuario actual para guardar y recuperar las partidas.
    • {64BitSteamID}: usa esta variable en la ruta de Steam para insertar el id. de Steam de 64 bits de los usuarios. Id. de Steam de 64 bits se parece a: 76561198027391269
    • {Steam3AccountID}: usa esta variable en la ruta de Steam para insertar el id. de la cuenta de Steam 3 de los usuarios. Un id. de cuenta tiene este aspecto: 67125541
    Ejemplo: SavesDir/{64BitSteamID}
  3. Patrón

    Patrón de máscara de archivo que debe coincidir. Puedes utilizar * como comodín. Si deseas todos los archivos en el directorio, simplemente usa *.

    Ejemplo: *.sav
  4. SO

    Establece el sistema operativo para el que se sincronizarán estos archivos. Solo es necesario si los archivos son específicos del sistema operativo, ¡y es mejor que no lo sean!
  5. Recursivo

    Se incluyen los subdirectorios al buscar archivos coincidentes. Sirve para designar subdirectorios cuyos nombres no están fijados, como los que tienen nombres o identificadores de usuario distintos de los de Steam. Si se va a usar un id. de Steam, lo más recomendable es utilizar los valores especiales de ruta en el campo Subdirectorio.

Reemplazo de raíz

Se usa cuando la aplicación es multiplataforma y requiere un directorio distinto para cada SO. Con la funcionalidad de reemplazo de raíz, se puede especificar un reemplazo para la ruta de acceso raíz especificada más arriba.

La ruta de acceso raíz especificada se puede reemplazar por una ruta distinta para otro sistema operativo. Si utilizas el reemplazo de ruta raíz, debes especificar [All OSes] en el cuadro desplegable de arriba para Ruta raíz del SO.

Un reemplazo de raíz consta de cinco partes.
  1. Raíz original

    Corresponde a una de las raíces establecidas más arriba.
  2. SO

    Sistema operativo al que se aplica este reemplazo.
  3. Nueva raíz

    Ubicación del sistema operativo especificado que corresponderá a la de la raíz original.
  4. Añadir/Reemplazar ruta

    Opcionalmente, se puede añadir la ruta de un subdirectorio que se insertará entre la nueva raíz y el subdirectorio original.
  5. Reemplazar ruta

    Si se habilita, hace que la ruta especificada en Añadir/Reemplazar ruta sustituya por completo el subdirectorio original.

Ejemplo: configuración de Auto-Cloud para aplicaciones Unity

El siguiente es un ejemplo de la configuración de Auto-Cloud para su uso con Unity y la propiedad Application.persistentDataPath donde el valor es diferente según el sistema operativo. La versión para Windows se configura como ruta de acceso raíz, la compañía en Unity es DefaultCompany y el proyecto se llama AutocloudSample. En macOS y Linux/SteamOS, las rutas alternativas de Application.persistentDataPath se configuran en el campo Agregar/Reemplazar ruta y Reemplazar ruta está habilitada.

Con esta configuración, los archivos de Auto-Cloud se sincronizarán entre las tres carpetas, tal como aparecen en las muestras de vista previa.

Cloud_Unity_Auto-Cloud_Example.png

Pruebas de prelanzamiento

Si Auto-Cloud se va a añadir a un juego que ya se ha publicado y se ha habilitado el modo solo desarrolladores durante la Configuración inicial, es necesario dar unos pasos adicionales para probar la funcionalidad.
  1. Inicia sesión en Steam con una cuenta que posea una licencia de Developer Comp para la aplicación que estás probando.
  2. Abre la Consola Steam navegando a steam://open/console en tu navegador.
  3. Introduce testappcloudpaths <AppId> en la consola con el id. de la aplicación que estás probando. Ex: testappcloudpaths 480
  4. Introduce set_spew_level 4 4 en la consola.
  5. Inicia la aplicación desde Steam.
  6. Comprueba la actividad en la consola. Si hay archivos presentes en las rutas de acceso de Auto-Cloud, debes ver que se están subiendo. Si no los hay, guarda algún archivo desde la aplicación y ciérrala para provocar la sincronización.
  7. En otro ordenador, repite los pasos anteriores para probar la descarga de archivos desde Steam Auto-Cloud.
  8. Asegúrate de comprobarlo en todos los sistemas operativos compatibles.
  9. Establece testcloudapppaths 0 y set_spew_level 0 0 para finalizar la prueba. Puedes reiniciar el cliente de Steam para deshacerte de la pestaña de la consola.

No olvides deshabilitar el modo solo desarrolladores y publicar los cambios cuando termines las pruebas.

Depuración

En primer lugar, asegúrate siempre de haber publicado los cambios en el sitio web de asociados de Steam y de haber esperado hasta 10 minutos o reiniciado el cliente de Steam para recibir los cambios publicados.

Si tienes problemas con Steam Cloud, debes revisar el archivo de registro ubicado en %Steam Install%\logs\cloud_log.txt.

Mira Depuración de la API de Steamworks para más información.