Lyhyesti
Steam Cloud tallentaa pelitiedostot automaattisesti Steamin palvelimille. Näin pelaajat voivat kirjautua Steamiin ja palata tallennettuihin peleihin miltä tahansa tietokoneelta.Integraation taso
Steamworksin verkkosivu vaatii tiedostopolkujen määrityksen. Tai ohjelmointirajapinnan kutsuja pelikoodista Steamworksiin, jotta peli voi luetteloida, lukea, poistaa tai kirjoittaa tiedostoja Steam Cloudiin.Steam Cloud -yleiskatsaus
Steam Cloud tarjoaa pelillesi helpon ja läpinäkyvän tiedostojen etätallennusjärjestelmän. Auto-Cloudin asetuksissa määritetyt tai Cloud-ohjelmointirajapintaa käyttävällä levylle kirjoitetut (luodut, muokatut, poistetut jne.) tiedostot kopioidaan automaattisesti Steamin palvelimille pelin sulkemisen jälkeen.
Jos käyttäjä siirtyy toiselle tietokoneelle, tiedostot ladataan automaattisesti uudelle koneelle ennen pelin käynnistystä. Peli pääsee tiedostoihin lukemalla ne Cloud-ohjelmointirajapinnan avulla tai suoraan kovalevyltä. Vältä tekemästä laitekohtaisia määrityksiä, kuten videoasetuksia.
Steam-asiakasohjelma varmistaa, että tiedostot synkronoidaan kaikille käyttäjän tietokoneille.
Käyttäjä voi poistaa Cloud-synkronoinnin käytöstä kaikista peleistä valitsemalla Steamissä Asetukset > Cloud ja poistamalla valinnan kohdasta Ota Steam Cloud -synkronointi käyttöön sitä tukeville sovelluksille.
Cloud-synkronoinnin voi poistaa käytöstä myös yksittäisistä peleistä pelin ominaisuuksista.
Huomioita ja parhaita käytäntöjä
On tärkeää muistaa, että Steam synkronoi käyttäjän pelin Steam Cloud -tiedostot ennen jokaista sessiota ja sen jälkeen. Session aikana muuttuneet yhteensopivat tiedostot lähetetään Cloudiin välittömästi pelin jälkeen. Jos peli tallentaa Steam Cloudiin hyvin suuria tai monia pieniä tiedostoja, tämä voi vaikuttaa selvästi kaistanleveyteen ja viivästyttää Steamin sulkemista tai pelin uudelleen käynnistystä.
Yleisesti ottaen pienemmät tiedostot toimivat paremmin. Kannattaa käyttää erillisiä tiedostoja, jos tietyn käyttäjän tallennettu pelitila voidaan jakaa luokkiin, kuten usein muuttuviin ja harvoin muuttuviin tiloihin. Näin muuttumatonta tilaa ei lähetetä joka session jälkeen uudelleen.
Tiedostokoon rajat
Steam Cloudin tiedostokokojen rajat voivat muuttua. Tässä tämänhetkiset rajat ja kynnykset:
Koko | Raja |
---|
100 Mt | Enimmäiskoko ISteamRemoteStorage::FileWrite- tai ISteamRemoteStorage::FileWriteStreamWriteChunk-kutsulle |
256 Mt | Saattaa aiheuttaa käyttäjän tilan tallennuspaikkavalinnan, joka ei ole optimaalinen, mikä saattaa heikentää lähetys- ja lataussuorituskykyä |
Tallenna tiedostopolut
Kun päätät tiedostojen tallennuspaikan, varmista, että polku on uniikki nykyiselle Steam-käyttäjälle. Voit tarvittaessa hakea käyttäjän uniikin SteamID-tunnuksen
ISteamUser::GetSteamID-jäsenfunktiolla. Saat käyttäjän AccountID-tunnuksen GetAccountID()-jäsenfunktion kautta, jolloin sinulla voi olla uniikki muuttuja, kun luot tallennuspolkua.
Alustojen välinen tallentaminen
Jos peliä tuetaan useilla eri alustoilla tai jos se on suunnitteilla, tämä tulisi ottaa huomioon määritettäessä pelin Steam Cloudia.
Jos aiot lukea/kirjoittaa tiedostoja suoraan
ISteamRemoteStorage
-käyttöliittymään, voit hallita alustan synkronointia jäsenfunktiolla
ISteamRemoteStorage::SetSyncPlatforms. Uusi tiedosto synkronoidaan oletuksena
kaikille alustoille.
Muutama asia kannattaa tietää, jos aikoo käyttää
Steam Auto-Cloudia. Uudet tiedostot synkronoidaan oletuksena
vain käyttöjärjestelmän
asetuksiin Auto Cloud -juuripolussa. Tämä tarkoittaa sitä, että jos asetat erilliset juuret kullekin käyttöjärjestelmälle, kaikki tiedostot osioidaan alustan mukaan, eikä alustojen välisiä tallennustoimintoja näin ollen ole.
Jos haluat mahdollistaa alustojen väliset tallennukset, määritä yksi juuripolku (todennäköisesti Windowsille) ja luo sen jälkeen
juuren ohitukset
muille tuetuille alustoille. Tiedostot, jotka vastaavat tiettyä juuripolkua, jolla on myös alustan juuren ohitukset, synkronoituvat kaikille alustoille sekä alkuperäisessä juuressa että kaikissa ohituksissa. Lisätietoja löydät
Steam Auto-Cloud -dokumentaatiosta.
Määritys
Asenna Steam Cloud määrittämällä
Tavukiintiö per käyttäjä
ja
Sallittu tiedostojen lukumäärä per käyttäjä
Steam Cloud -asetuksissa Steamworksin sovellushallintapaneelissa.
Kiintiötä sovelletaan jokaiseen Cloudia käyttävään peliin jokaista käyttäjää ja peliä kohden. Arvot kannattaa asettaa järkevälle tasolle.
Huomaa! Muista klikata Tallenna-painiketta sivun alalaidassa ja julkaista päivitetyt asetukset. Julkaisun jälkeen Cloud-kuvake näkyy Steam-asiakasohjelmassa kaikille, jotka omistavat pelin.
Jos peli on jo julkaistu, voi valita
Ota Cloud-tuki käyttöön ainoastaan kehittäjille
. Vain kehittäjille -tilan ollessa käytössä Cloud-kuvake näkyy vain Steam-tileille, jotka omistavat pelin Developer Comp -lisenssin. Vain nämä tilit voivat siis käyttää Steam Cloudia. Se on hyvä tapa testata Steam Cloud -integraatiota vaikuttamatta julkiseen peliin. Se ei vaikuta mitenkään julkaisemattomiin peleihin, sillä kukaan ei omista peliä vielä, eikä sovellustunnuksen Cloud-tallennustilaa näe tai pääse käyttämään kukaan.
Cloud-tallennustilan voi jakaa kahden sovellustunnuksen kesken täyttämällä kentän
Jaettu Cloud-sovellustunnus
. Näin toimitaan useimmiten, kun jaetaan tallennetut pelit demon ja täysjulkaisun kesken. Arvo
0 poistaa toiminnon käytöstä.
Steam Cloud -ohjelmointirajapinta ja Steam Auto-Cloud
Steam tarjoaa kaksi tapaa hyödyntää Steam Cloudia. Lue lisätietoja niiden eroista ja valitse sovelluksellesi paras vaihtoehto.
Steam Cloud -ohjelmointirajapinta
Cloud-ohjelmointirajapinnan toimintojen avulla voit integroida Steam Cloudin suoraan peliin. Cloud-ohjelmointirajapinta erottelee Steam-käyttäjien tiedostot toisistaan ja tarjoaa Steam Cloudin paremman hallinnan.
Steam Cloud -ohjelmointirajapinta näkyy
ISteamRemoteStorage-ohjelmointirajapinnan käyttöliittymän kautta. Esimerkkejä käytöstä löytyy
Steamworks-ohjelmointirajapinnan esimerkkisovellus (SpaceWar) -projektista.
Steam Auto-CloudSteam Auto-Cloud on tarkoitettu peleille, joihin ei integroida Steam Cloud -ohjelmointirajapintaa. Se on nopea ja helppo tapa päästä alkuun, mutta siitä puuttuu Steam Cloud -ohjelmointirajapinnan tarjoama joustavuus.
Jos haluat syvempää integraatiota Steam Cloudiin (esimerkiksi mahdollisuuden valita, mitkä tiedostot tallennetaan Cloudiin), käytä Cloud-ohjelmointirajapintaa. Muutoin voit käyttää Steam Auto-Cloudia.
Steam Auto-Cloud
Steam Auto-Cloud on vaihtoehto Steam Cloud -ohjelmointirajapinnalle. Sen avulla sovellukset voivat käyttää Steam Cloudia ilman, että sinun pitää kirjoittaa koodia tai muokata pelitiedostoja. Sinun täytyy vain määrittää tiedostoryhmät, jotka haluat tallennettavan jatkuvasti Cloudiin. Steam synkronoi automaattisesti tiedostoryhmät, kun sovellus käynnistetään tai suljetaan. Vältä tekemästä laitekohtaisia määrityksiä, kuten videoasetuksia.
Huomaa! steam_autocloud.vdf-tiedosto luodaan jokaiseen Steamworksin pilvipolussa määritettyyn sijaintiin. Steam käyttää tätä tiedostoa, ja pelit voivat jättää sen huomiotta.
Määritys
Kun
Määritys on tehty, Steam Auto-Cloud-määritysosio avaa
Steam Cloud -asetukset.
Juuripolut kertovat tiedostoryhmät, jotka tallennetaan Steam Cloudiin. Kukin juuripolku voidaan määrittää yksittäisenä tiedostona tai tietyn alihakemiston kaikissa tiedostoissa. Käytä uutta polkua jokaiselle synkronoitavalle tiedostoryhmälle.
Juuripolku koostuu viidestä osasta:
-
Juuri
Tämä on ennalta määritetty lista poluista, joissa pelitallenteet yleensä sijaitsevat.
Juuri | Tuetut käyttöjärjestelmät | Vastaava polku |
Sovelluksen asennushakemisto | Kaikki | [Steam Install]\SteamApps\common\[pelikansio]\ |
SteamCloudDocuments | Kaikki | Alustakohtainen polku, esim. Linuxissa: ~/.SteamCloud/[käyttäjänimi]/[pelikansio]/ |
WinMyDocuments | Windows | %USERPROFILE%\Omat tiedostot\ |
WinAppDataLocal | Windows | %USERPROFILE%\AppData\Local\ |
WinAppDataLocalLow | Windows | %USERPROFILE%\AppData\LocalLow\ |
WinAppDataRoaming | Windows | %USERPROFILE%\AppData\Roaming\ |
WinSavedGames | Windows | %USERPROFILE%\Tallennetut pelit\ |
MacHome | macOS | ~/ |
MacAppSupport | macOS | ~/Library/Application Support/ |
MacDocuments | macOS | ~/Documents/ |
LinuxHome | Linux | ~/ |
LinuxXdgDataHome | Linux | $XDG\_DATA\_HOME/ |
%USERPROFILE%-polkuihin liittyvä huomautus: edellä luetellut vastaavat polut ovat oletussijainteja. Käyttäjän on nyt mahdollista määrittää Windows-asennuksensa siten, että nämä kansiot ovat eri paikoissa (ei välttämättä kohteessa %USERPROFILE%). Steam käyttää tarvittavia Windowsin ohjelmointirajapintoja näiden kansioiden nykyisen sijainnin hakemiseen, olivatpa ne sitten oletuskansioita tai mukautettuja.
-
Alihakemisto
Juureen liittyvä pilvipalvelun tiedostojen alihakemistopolku. Käytä ".", jos alihakemistoa ei ole.
Auto-Cloudin erityiset polkuarvot
Auto-Cloud mahdollistaa ainutlaatuisten Steam-käyttäjätunnusten hyödyntämisen alihakemistopolussa
. Tämän ansiosta voit tallentaa kunkin Steam-käyttäjän tallennustiedostoja erikseen tietokoneelle. Voit käyttää ISteamUser::GetSteamID-jäsenfunktiota pelissä, jotta voit hakea nykyisten käyttäjien SteamID- tai AccountID-tunnuksen, jotta voit tallentaa ja lukea niihin tietoja.
-
{64BitSteamID}
– Voit lisätä käyttäjän 64-bittisen Steam-tunnuksen käyttämällä tätä muuttujaa Steam-polussa. 64-bittinen Steam-tunnus näyttää tältä: 76561198027391269
-
{Steam3AccountID}
– Voit lisätä käyttäjän Steam 3 -tilitunnuksen käyttämällä tätä muuttujaa Steam-polussa. Tilitunnus näyttää tältä: 67125541
Esimerkki: SavesDir/{64BitSteamID}
-
Malli
Tiedostomaskimalli tiedostojen vastaavuuteen. Voit käyttää *
-merkkiä yleismerkkinä. Jos haluat kaikki hakemiston tiedostot, käytä *
-merkkiä.
Esimerkki: *.sav
-
Käyttöjärjestelmä
Määritä käyttöjärjestelmät, joihin/joista nämä tiedostot synkronoidaan. Tämä vaaditaan vain, jos tiedostot ovat käyttöjärjestelmäkohtaisia, mikä ei ole toivottavaa.
-
Rekursio
Sisällytä alikansiot, kun haet vastaavia tiedostoja. Tästä on hyötyä, jos alihakemistoissa on ei-deterministisiä nimiä, kuten muita kuin Steamin käyttäjänimiä tai tunnuksia. Jos se käyttää SteamID-tunnusta, erityisten polkujen arvojen käyttäminen Alihakemisto-kentässä on suositeltavaa.
Juuren ohitukset
Jos sovelluksesi on järjestelmäriippumaton ja vaatii kullekin käyttöjärjestelmälle erilliset hakemistot, voit käyttää juuren ohitus -toimintoa määrittääksesi ohituksen juuripoluille, jotka määritit yllä.
Yllä määritetyt juuripolut voidaan ohittaa, jotta ne vastaavat eri polkua toisessa käyttöjärjestelmässä. Jos käytät juuren ohitusta, sinun tulee määrittää juurten käyttöjärjestelmän pudotusvalikosta [Kaikki käyttöjärjestelmät].
Juuren ohitus koostuu viidestä osasta.
-
Alkuperäinen juuri
Tämä vastaa yhtä edellä määritetyistä juurista.
-
Käyttöjärjestelmä
Käyttöjärjestelmä, johon ohitusta sovelletaan.
-
Uusi juuri
Uusi sijainti, johon alkuperäinen juuri linkittää määritetyssä käyttöjärjestelmässä.
-
Lisää tai korvaa polku
Tämän avulla voit halutessasi lisätä alihakemistopolun, joka lisätään uuden juuren ja alkuperäisen alihakemiston väliin.
-
Korvaa polku
Jos tämä on valittuna, Lisää tai korvaa polku -kentässä määritelty polku korvaa alkuperäisen alihakemiston kokonaan.
Esimerkki: Auto-Cloudin määrittäminen Unity-sovelluksille
Tässä on esimerkki Auto-Cloud määrittämisestä Unityn käyttöön ja
Application.persistentDataPath
-ominaisuus, jossa eri käyttöjärjestelmissä on eri arvo. Windows-versio on määritetty juuripoluksi. Siinä yritykseksi Unityssä on määritetty DefaultCompany ja projektiksi AutocloudSample. MacOS:lle ja Linux/SteamOS:lle
Application.persistentDataPath
-ominaisuuden vaihtoehtoiset polut on määritetty Lisää tai korvaa polku -kentässä ja Korvaa polku -valintaruutu on valittuna.
Näillä asetuksilla Auto-Cloud-tiedostot synkronoidaan kolmen kansion välillä, kuten Esikatselu-esimerkistä näkyy.
Julkaisua edeltävä testaus
Jos lisäät Steam Auto-Cloudin jo julkaistuun peliin ja olet ottanut kehittäjätilan käyttöön
Määritys -vaiheessa, sinun pitää toiminnon testaamiseksi suorittaa joitakin lisävaiheita.
- Kirjaudu Steamiin tunnuksella, joka omistaa testattavan sovelluksen.
- Avaa Steam-konsoli siirtymällä selaimella osoitteeseen:
steam://open/console
.
- Syötä konsoliin
testappcloudpaths <AppId>
, ja korvaa AppID-kohta testattavan sovelluksen sovellustunnuksella. Esimerkiksi testappcloudpaths 480
.
- Anna komentoriville:
set_spew_level 4 4
.
- Käynnistä sovellus Steamistä.
- Tarkista aktiivisuus konsolista. Jos tiedostot näkyvät jo Auto-Cloud-poluissa, niiden latauksen pitäisi olla käynnissä. Jos näin ei ole, käynnistä synkronointi tallentamalla joitakin tiedostoja sovelluksestasi ja sulkemalla se sitten.
- Testaa tiedostojen latauksen onnistuminen Steamin Auto-Cloudista siirtymällä toiselle PC:lle ja toistamalla edellä olevat vaiheet.
- Suorita testaus kaikilla tuetuilla käyttöjärjestelmillä.
- Lopeta testaus määrittämällä arvot
testappcloudpaths 0
ja set_spew_level 0 0
. Käynnistä Steam-sovellus uudelleen, jos haluat konsolivälilehden pois näkyvistä.
Muista ottaa kehittäjätila pois käytöstä ja julkaista muutokset, kun testaus on suoritettu loppuun.
Dynaaminen Cloud-synkronointi
Steam Cloud tukee nyt dynaamista synkronointia. Siinä Cloudissa näkyvät muutokset voidaan ladata paikalliselle koneelle, kun sovellus on käynnissä. Esimerkiksi, kun pelisessio on keskeytetty Steam Deckillä. Dynaamista Cloud-synkronointia tukevissa sovelluksissa Steam synkronoi tiedostot Steam Cloudiin sovelluksille, kun peli keskeytetään. Käyttäjä voi silloin pyörittää peliä toisella laitteella, joka saa pelin käynnistyessä Steam Deck -istunnon päivitykset. Muutokset lähetetään Steam Cloudiin, kun peli suljetaan. Kun Steam Deck -laite on jälleen käytössä, Steam synkronoi muutokset laitteelle ja julkaisee sovellukseen ilmoituksen, että paikalliset tiedostot ovat muuttuneet. Sovellus voi sitten iteroida kyseiset muutokset ja tehdä tarvittavat toimet. Peli voi esimerkiksi ladata päivitetyn edistymisen levyltä ja antaa käyttäjän jatkaa siitä, mihin hän jäi toisella laitteella.
Lue
blogijulkaisu aiheesta ja lisätietoa toiminnon olemassaolosta ja sen käytöstä.
Huomaa, että tämä toiminto tukee sovelluksia, jos ne käyttävät tiedostojen hallinnointiin
ISteamRemoteStorage-ohjelmointirajapintaa tai Auto-Cloudia.
Lisätietoja löytyy
ISteamRemoteStorage-dokumentaatiosta, erityisesti seuraavista:
ISteamRemoteStorage::RemoteStorageLocalFileChange_t,
ISteamRemoteStorage::GetLocalFileChangeCount ja
ISteamRemoteStorage::GetLocalFileChange.
Katso myös
ISteamRemoteStorage::BeginFileWriteBatch ja
ISteamRemoteStorage::EndFileWriteBatch – näitä paketoijia pitäisi käyttää tarjoamaan Steamille vihjeitä, jotka auttavat sitä synkronoimaan turvallisesti Steam Cloudiin, kun käyttäjä laittaa järjestelmän lepotilaan.
Julkaisua edeltävä testaus
Koontiversioista testataksesi voit ottaa dynaamisen Cloud-synkronoinnin sovelluksellesi käyttöön paikallisesti. Tätä suositellaan jo julkaistuille peleille, sillä dynaamisen Cloud-synkronoinnin käyttöön ottaminen kaikille käyttäjille voi johtaa tietojen menetykseen, kun pyöritetään koontiversioista, jotka eivät käsittele uusia ohjelmointirajapintametodeja ja takaisinkutsuja.
Testaa paikallisesti tietokoneelta:
- Kirjaudu Steamiin tunnuksella, joka omistaa testattavan sovelluksen.
- Avaa Steam-konsoli siirtymällä selaimella osoitteeseen:
steam://open/console
. (Voit käyttää Steamiä myös komentorivillä steam -console
ja navigoida sitten suoraan konsoliosioon.)
- Syötä
@cloud_testdynamicsyncapp <AppId>
konsoliin testattavan sovellustunnuksen kanssa. Esimerkiksi: @cloud_testdynamicsyncapp 480
- Käynnistä sovellus Steamistä.
- Etene pelissä haluttuun pisteeseen.
- Syötä Steam-konsolissa
prepare_for_suspend
. Steam keskeyttää pelin etenemisen ja lähettää muuttuneet tiedostot Steam Cloudiin.
- Valinnaisesti voit pelata peli toisella laitteella, edetä ja poistua ja antaa Steam-asiakasohjelman latauksen edetä Steam Cloudiin.
- Syötä alkuperäisellä laitteella Steam-konsolissa
resume_suspended_games
. Tämä synkronoi vaadittavat tiedostot Steam Cloudista, julkaisee olennaiset ohjelmointirajapinnan kutsut peliin ja vapauttaa pelin etenemisen.
Testaa paikallisesti Steam Deckillä:
- Yhdistä Steam Deck kehittäjäpakettiin
- Lue lisää CEF-konsolin käytöstä täältä.
- Syötä JS-konsolissa
SteamClient.Console.ExecCommand(“@cloud_testdynamicsyncapp <AppId>”)
ja ota testaus käyttöön. Syöttämällä SteamClient.Console.ExecCommand(“@cloud_testdynamicsyncapp 0”)
se otetaan pois käytöstä.
Vianmääritys
Varmista aina ensin, että olet julkaissut muutokset Steam-kumppanuussivulla ja olet odottanut 10 minuuttia tai käynnistänyt Steam-asiakasohjelman uudelleen, jotta julkaistut muutokset näkyvät siinä.
Jos sinulla on ongelmia Steam Cloudin kanssa, tarkista lokitiedosto, joka löytyy kansiosta:
%Steam Install%\logs\cloud_log.txt
.
Lisätietoja löytyy
Steamworks-ohjelmointirajapinnan virheenkorjaus -dokumentaatiosta.