Documentazione di Steamworks
Caricamento su Steam

Introduzione al sistema di contenuti SteamPipe

SteamPipe è il sistema di contenuti di giochi/applicazioni su cui si basa Steam. SteamPipe include le seguenti funzionalità:
  • Consegna efficiente e veloce dei contenuti.
  • Numero illimitato di rami "beta" pubblici e privati, che consentono di testare build multiple.
  • Gestione semplificata via web delle build: bastano pochi clic per rilasciane una nuova o tornare a utilizzarne una precedente.
  • Possibilità di vedere le dimensioni dell'aggiornamento di una build prima di pubblicarlo.
  • Possibilità di condividere contenuti tra più applicazioni.
  • Possibilità di creare dischi di installazione da contenuti pubblici o beta.
  • I giochi e le app rimangono disponibili offline anche dopo l'inizio del download di un aggiornamento.
  • Tutti i contenuti sono sempre codificati e le versioni non attive non sono visibili ai clienti.
  • Un Server di contenuti locale di SteamPipe che può essere utilizzato durante lo sviluppo.
NOTE: SteamPipe presenta dei concetti che ne sono una parte integrante. Prima di iniziare, ti consigliamo di familiarizzarti con i concetti presentati nella documentazione Applicazioni. Avere un'idea di come i vari componenti funzionano insieme sarà molto utile quando caricherai il tuo prodotto su Steam.

Tutorial video di Steamworks: come integrare il tuo gioco con Steampipe

Questo tutorial rappresenta un'introduzione a SteamPipe e presenta i passaggi da seguire per creare un'applicazione per Steam attraverso gli strumenti di Steamworks.
https://www.youtube.com/watch?v=SoNH-v6aU9Q

Tutorial video di Steamworks: come aggiungere nuove piattaforme e lingue

Questo tutorial ti guiderà nell'aggiunta di nuove piattaforme e lingue al tuo gioco attraverso l'aggiunta di nuovi depot alla tua app.
https://www.youtube.com/watch?v=PShS32hcing

Dettagli tecnici di SteamPipe

Steampipe utilizza il protocollo HTTP per la consegna di contenuti. I download fanno parte del normale traffico web, quindi qualunque cache HTTP di terze parti presente tra il cliente e i server di Steam aumenterà la velocità di download. I contenuti possono essere caricati su provider di CDN esterni, che possono essere facilmente aggiunti alla nostra rete di contenuti. La maggior parte dei firewall consente il traffico HTTP e non bloccherà i download.

SteamPipe è dotato di un efficiente algoritmo di patching basato su delta binari che cambia solo le sezioni modificate dei file dei contenuti. Quando i contenuti vengono aggiornati, basterà inviare queste delta. In questo modo, sia i trasferimenti degli sviluppatori che quelli degli utenti saranno più piccoli e veloci. Per la maggior parte dei partner non sarà necessario utilizzare un Server di contenuti locale di SteamPipe, poiché potranno applicare patch alle build su rami privati.

Account per le build di Steam

Per creare una build su Steam, dovrai avere un account di Steam all'interno del tuo account di Steamworks con i permessi "Modifica i metadati dell'app" e "Pubblica modifiche all'app su Steam". Per motivi di sicurezza, consigliamo di avere un account dedicato alle build solo con quei permessi. Puoi creare un account di Steam per questo scopo qui: https://store.steampowered.com/join.

Tutti gli amministratori del tuo account di Steamworks possono aggiungere un account di Steam e fornire i permessi necessari. Maggiori informazioni su questo processo sono disponibili qui: Gestione dell'account Steamworks. Ecco un esempio dell'aspetto di questo account:

create_build_account.png

Configurazione iniziale per le nuove app di SteamPipe

Segui questi passaggi per configurare nuove app su SteamPipe:
  1. Trova l'appID della tua applicazione selezionandola sulla tua pagina principale di Steamworks.
  2. Vai alla pagina Impostazioni generali per l'installazione per la tua app.
  3. Definisci almeno una opzione di lancio (il percorso e, in maniera opzionale, gli argomenti necessari per lanciare il gioco). Passa il puntatore del mouse sopra l'icona (?) per saperne di più su ciascun campo.

    Ecco un esempio che mostra 4 opzioni di lancio, 2 per Windows, 1 per MacOS e 1 per Linux ( l'opzione di lancio 3 sarà mostrata solo su Windows se l'utente possiede anche il DLC specificato):

    updatedlaunchoptions.png
  4. Vai alla pagina Depots e aggiungi i depot necessari per quest'app. Per impostazione predefinita, potrebbe già essere presente un depot configurato per la tua applicazione.
    1. Clicca sul depot predefinito e cambiane il nome in uno appropriato e riconoscibile (ad esempio "Contenuto di base" o "Contenuto per Windows").
    2. A meno che non si tratti di un depot per una lingua in particolare, lascia l'impostazione della lingua su [All language].
    3. A meno che non si tratti di un depot per un OS in particolare, lascia l'impostazione dell'OS su [All OSes]. Se l'app è unica per tutti gli OS o se è esclusivamente per PC o per Mac, lascia lo stesso l'impostazione su [All OSes]. Specifica questo parametro solo per depot di giochi destinati un OS specifico.
    4. Clicca su Aggiungi nuovo Depot per creare depot addizionali.
    5. Clicca su Salva modifiche per salvare le modifiche effettuate.
  5. Una volta che avrai finito di definire i tuoi depot, pubblica i cambiamenti effettuati tramite la pagina Pubblica.
  6. I tuoi depot appena definiti dovranno essere inclusi in un pacchetto per assegnarne la proprietà. Ogni gioco su Steam dovrebbe avere un pacchetto "developer comp" automaticamente assegnato agli account elencati nel tuo gruppo da editore.
    Puoi aggiungere i nuovi depot a quel pacchetto (e altri pacchetti che dovrebbero avere quei depot) dalla pagina Pacchetti associati e DLC.
Nota: se il tuo eseguibile è in una sottocartella della cartella di installazione principale, aggiungi il nome della sottocartella nel campo Eseguibile. Non usare barre o punti.

Impostazione dell'SDK per i caricamenti su SteamPipe

Scarica e decomprimi la versione più recente dell'SDK di Steam sul computer su cui caricherai le build.

Gli strumenti di SteamPipe si trovano nella cartella tools dell'SDK, che contiene 2 sottodirectory rilevanti.

I contenuti del tuo gioco e gli strumenti per le build di SteamPipe si trovano nella directory ContentBuilder. Questa directory contiene le seguenti sottodirectory:
  • builder: inizialmente conterrà solo steamcmd.exe, la versione in linea di comando di Steam.
  • builder_linux: la versione Linux di steamcmd.
  • builder_osx: la versione macOS di steamcmd.
  • content: contiene tutti i file di gioco che faranno parte dei depot.
  • output: contiene i registri delle build, la cache dei frammenti e l'output intermedio. NOTE: questa cartella può essere eliminata o svuotata in qualunque momento ma il caricamento successivo all'eliminazione impiegherà più tempo.
  • scripts: uas questa directory per gli script delle build necessari a creare i depot del tuo gioco.
steampipebuilddir.png

Consigliamo di eseguire una volta steamcmd.exe direttamente nella cartella builder della tua piattaforma per effettuare il bootstrap del tuo sistema di build. Farlo dovrebbe popolare la tua cartella builder con tutti i file necessari per creare depot.

La directory ContentServer contiene gli strumenti necessari per gestire il tuo stesso Server di contenuti locale di SteamPipe, se volessi farlo.

SteamCmd su macOS

Per abilitare SteamCmd su macOS, segui i seguenti passaggi:
  1. Dal terminale, recati alla cartella \ContentBuilder\builder_osx\osx32
  2. Esegui chmod +x steamcmd
  3. Vai alla cartella principale (tools\ContentBuilder\builder_osx)
  4. Digita bash ./steamcmd.sh
  5. SteamCmd verrà eseguito e aggiornerà alla build più recente, lasciandoti nel prompt di SteamCmd
  6. Digita "exit" e premi invio per uscire dal prompt
Ora puoi seguire il resto di questo documento (sostituendo i percorsi quando necessario) per creare depot e file di configurazione dell'app per caricare i tuoi contenuti su Steam.

Creazione dei file di configurazione per le build di SteamPipe

Per caricare la tua app con SteamPipe, devi prima creare gli script che descrivono la tua build e ogni depot in essa incluso. Nella cartella ContentBuilder\scripts sono presenti semplici esempi di script per un'applicazione con un solo depot.

NOTA: Puoi chiamare questi script in qualunque modo, ma qui li chiameremo app_build_<AppID> e depot_build_<AppID> per coerenza. Se sai che creerai app su questo computer potrebbe essere una buona idea creare sottodirectory per ogni applicazione nella tua directory degli script, in modo da organizzare gli script per le build di ogni applicazione.

Strumento per la GUI di SteamPipe

Se utilizzi Windows e preferisci utilizzare uno strumento GUI (interfaccia grafica) per creare questi file di configurazione e caricare le tue build, puoi usare la SteamPipeGUI, disponibile nella cartella Strumenti dell'SDK di Steamworks. Nel file .zip sono incluse istruzioni aggiuntive su come iniziare.

Ti consigliamo di leggere la seguente sezione anche se utilizzerai la GUI, poiché ti aiuterà a familiarizzarti con il funzionamento del sistema SteamPipe.

Script per i depot delle build

Innanzitutto, crea uno script per i depot della build per ogni depot che vuoi caricare. Inizia duplicando lo script depot_build_1001.vdf e rinominandolo con l'ID del depot che verrà caricato.

Esempio di script per i depot delle build:
"DepotBuildConfig" { // Imposta l'ID del depot che sarà caricato con questo script. "DepotID" "1001" // Imposta una radice per tutti i contenuti. // Tutti i relativi percorsi specificati in basso (LocalPath nelle entrate FileMapping e percorsi FileExclusion) // sarà risolto in relazione a questa radice. // Se non definisci ContentRoot, daremo per scontato che sia // il luogo dove si trova questo file script, soluzione probabilmente non ideale per te "ContentRoot" "D:\MyGame\rel\master\" // Include tutti i file in maniera ricorsiva "FileMapping" { // Può essere un percorso completo, o un percorso relativo a ContentRoot "LocalPath" "*" // Percorso relativo alla cartella di installazione del tuo gioco "DepotPath" "." // Se LocalPath contiene metacaratteri, questa impostazione significa che tutti i // file corrispondenti all'interno delle sottodirectory di LocalPath // saranno inclusi a loro volta. "recursive" "1" } // Esclude tutti i file di simboli // Può essere un percorso completo o un percorso relativo a ContentRoot "FileExclusion" "*.pdb" }

NOTA: Impostare un "ContentRoot" nello script per i depot delle build sovrascriverà il "ContentRoot" nello script per le build dell'app.

Script delle build dell'app

Una volta impostati gli script per i depot delle build, avrai bisogno di uno script per le build dell'app che descrive i dettagli della build. Inizia duplicando lo script app_build_1000.vdf e rinominandolo con l'ID dell'app creata.

SteamPipe supporta i seguenti tipi di build:
  • Anteprima: questo tipo di build genera solo registri e file del manifesto. Creare build di anteprima è un buon modo di reiterare sui tuoi script di caricamento.
  • Locale: build per i Server di contenuti locale di SteamPipe. Le build per server locali caricano l'app sul tuo server locale, permettendoti di testare l'installazione del tuo gioco utilizzando il client di Steam.
  • SteamPipe: le build SteamPipe caricano i tuoi depot su Steam. Farlo non è mai rischioso, nemmeno per giochi già rilasciati, poiché dovrai impostare la build su Pubblica prima che i clienti possano scaricarla.

Esempio di script per le build dell'app:
"appbuild" { // Imposta l'ID dell'app che sarà caricata con questo script. "appid" "1000" // La descrizione di questa build. // La descrizione è visibile solo a te nella sezione 'Le tue build' del pannello di amministrazione dell'app. // Può essere modificata in qualsiasi momento dopo aver caricato una build sulla pagina "Le tue build". "desc" "La tua descrizione va qui" // Imposta la build come anteprima o meno. // Raccomandiamo di utilizzare build di anteprima durante l'impostazione iniziale di SteamPipe, // per garantire che il manifesto del depot contenga i file corretti. "preview" "1" // Percorso dei file del server locale, se abilitato. "local" "" // Nome del ramo da pubblicare automaticamente dopo una build che ha successo. Nessuno se vuoto. // Nota che il ramo "predefinito" non può essere automaticamente pubblicato. Dev'essere fatto attraverso il pannello di amministrazione dell'applicazione. "setlive" "" // I seguenti percorsi possono essere assoluti o relativi alla posizione dello script. // Questa directory conterrà la posizione dei registri della build, frammenti della cache e output intermedi. // La cache memorizzata al suo interno renderà più rapidi i caricamenti futuri su SteamPipe tramite il controllo delle differenze. // // NOTA: per ottenere le prestazioni migliori usa un disco separato per l'output della tua build. In questo modo suddividerai il carico di lavoro di IO, lasciando che il tuo // disco principale dei contenuti gestisca le richieste di lettura e il tuo disco di output gestisca quelle di scrittura. "buildoutput" "e:\build_logs\output\" // La radice della cartella dei contenuti. "contentroot" "..\content\" // La lista dei depot inclusi in questa build. "depots" { "1001" "depot_build_1001.vdf" } }

Creazione di depot

Per dare il via a una build, modifica il file run_build.bat per includere il tuo account per le build di Steamworks, la password (vedi sopra) e il percorso dello script per le build dell'app:
builder\steamcmd.exe +login "account" "password" +run_app_build ..\scripts\[build_script_name].vdf +quit

NOTA: Il tuo primo tentativo di eseguire una build potrebbe fallire a causa di Steam Guard. Se l'accesso non dovesse riuscire per via di Steam Guard, recupera il codice di Steam Guard nell'e-mail ed esegui steamcmd come: steamcmd.exe "set_steam_guard_code <code>", quindi riprova. Dopo aver effettuato una volta l'accesso con Steam Guard viene usato un file sentinella per verificare che l'accesso sia legittimo.

Se stai usando steamcmd su un computer o una macchina virtuale su cui viene eseguito spesso l'imaging, ti consigliamo di includere il file sentinella e quello di configurazione nella tua immagine, in modo da non fare intervenire Steam Guard ogni volta. Il file sentinella si trova in <Steam>\ssfn<hashOfNumbers> e il file di configurazione is trova in <Steam>\config\config.vdf.

Dopo aver eseguito run_build.bat, il tuo output della build dovrebbe trovarsi nella cartella specificata nel tuo file di script per la build. Se la build di anteprima genera il manifesto previsto, esegui la build di nuovo con "preview" nel tuo script per le build dell'app.

Durante una build SteamPipe avvengono i seguenti passaggi:
  1. Steamcmd.exe effettua l'accesso al backend di Steam utilizzando l'account per le build di Steam.
  2. La build dell'app viene registrata con il MDS (Master Depot Server, server del depot principale), concedendo all'utente i permessi necessari per modificare questa app.
  3. Per ogni depot incluso nella build dell'app viene una lista di file basata sui file nella cartella dei contenuti e sui filtri definiti nel file di configurazione della build del depot.
  4. Ogni file viene scansionato e diviso in frammenti di circa 1 MB. Se il depot è già stato parte di una build, effettuare questa partizione preserverà il maggior numero possibile di frammenti non modificati.
  5. I nuovi frammenti dei file sono compressi, codificati e caricati sull'MDS.
  6. Viene generato un manifesto finale per la versione del depot. Ogni manifesto è identificato da un ID del manifesto unico a 64 bit.
  7. Una volta che tutti i depot sono stati processati, l'MDS completa la build dell'app e le assegna un buildID globale.
  8. Dopo che la build è completata, potrebbero esserci file *.csm and *.csd nella cartella di output della build. Questi file sono temporanei e possono essere eliminati, ma rendono più veloce il procedimento per le build successive.

Gestione degli aggiornamenti

Dopo il rilascio della tua applicazione, i clienti riceveranno la build contrassegnata come Predefinita. Quando si carica una nuova build, è sempre una buona idea testarla prima di renderla disponibile ai clienti. Per maggiori informazioni su come testarla, vedi: Testare su Steam.

Regole avanzate di mappatura dei file

Possono esistere multiple mappature di file che aggiungono file al depot. Dovrebbero essere elencate per prime.
I file o le sottocartelle possono essere esclusi attraverso i filtri.
Gli script di installazione di Steam possono essere contrassegnati durante il processo, in modo che Steam sappia di doverli eseguire per ogni applicazione in cui è presente il depot.
I file e le cartelle possono essere rimappati, quindi le sottocartelle nella cartella dei contenuti possono essere mappate ovunque nel depot.
I file possono essere etichettati con contrassegni speciali:
  • userconfig: questo file viene modificato dall'utente o dal gioco. Non può essere sovrascritto da un aggiornamento e non provocherà un errore nella verifica se è diverso dalla sua versione precedente.
  • versionedconfig : simile a userconfig, ma se il file viene aggiornato nel depot, sarà sovrascritto localmente quando il gioco dell'utente viene aggiornato. Aggiorna il file nel depot solo in caso di una modifica di formato o correzione di un bug necessaria.
    "DepotBuildConfig" { "DepotID" "202931" "FileMapping" { // sovrascrive i file video in \\video con versioni in tedesco "LocalPath" "localization\\german\\videos\\*" "DepotPath" "videos\\" } "FileMapping" { // sovrascrive i file audio in \\audio con versioni in tedesco "LocalPath" "localization\\german\\audio\\*" "DepotPath" "audio\\" } "FileMapping" { "LocalPath" "localization\\german\\german_installscript.vdf" "DepotPath" "." } "FileExclusion" "bin\\server.exe" // esclude questo file "FileExclusion" "*.pdb" // esclude tutti i file .PDB in qualsiasi posizione "FileExclusion" "maps\\testroom*" // esclude tutti i file in maps/testroom/ "InstallScript" "localization\\german\\german_installscript.vdf" "FileProperties" { "LocalPath" "bin\\setup.cfg" "Attributes" "userconfig" // questo file verrà modificato durante il runtime } }

Risoluzione dei problemi delle build

Se la build non ha avuto esito positivo, recupera le informazioni sugli errori nella cartella di output, non nella console usata per eseguire lo script della build. La maggior parte delle informazioni sugli errori può essere trovata nei file *.log.
Puoi usare questi comandi del client di Steam e i file dal lato client per indagare sugli errori:
  • "app_status [appid]": mostra lo stato corrente dell'app su questo client.
  • "app_info_print [appid]": mostra la configurazione corrente di Steamworks per questo gioco (depot, opzioni di lancio, ecc.).
  • "app_config_print [appid]": mostra la configurazione corrente dell'utente per questo gioco (lingua, directory di installazione, ecc.).
  • file "logs\content_log.txt": lista di tutte le operazioni ed errori Oxcart registrati.
  • file "steamapps\appmanifest_[appid].acf": mostra lo stato di installazione corrente di questa app (KeyValues).

Creazione di depot efficienti per SteamPipe

Il vecchio sistema di contenuti di Steam le patch di aggiornamento al livello dei file. Ciò significava che se un singolo byte di un file veniva modificato, l'intero file veniva scaricato nuovamente da tutti gli utenti. Questa soluzione era poco efficiente, specialmente per i giochi che fanno utilizzo di pacchetti di file (insiemi di file di contenuti raggruppati in un unico file di grosse dimensioni). I pacchetti di file hanno frequentemente dimensioni di oltre 1 GB, il che risultava in aggiornamenti immotivatamente di grandi dimensioni. Un modo diffuso per evitare questi grossi download era l'aggiunta di nuovi pacchetti di file che sovrascrivevano il contenuto di pacchetti di file già pubblicati. Questo metodo funzionava per gli aggiornamenti ma non era ideale a lungo termine per i nuovi giocatori, che finivano per scaricare contenuti non utilizzati e già corretti da patch.

Il nuovo sistema di contenuti risolve questo problema suddividendo ogni file in frammenti di circa 1 MB. Ogni frammento viene quindi compresso e codificato prima di essere distribuito dal sistema di contenuti di Steam. Se i contenuti di gioco hanno parti ridondanti di grosse dimensioni, i frammenti vengono riutilizzati e gli utenti devono scaricare ogni frammento ripetuto solo una volta. Il vero punto di forza di questo sistema, tuttavia, risiede nella creazione di patch di aggiornamento efficienti. Mentre il sistema crea una patch, il nuovo contenuto viene scansionato alla ricerca di frammenti già conosciuti. Se ne vengono trovati, saranno riutilizzati. Ciò significa che se modifichi o aggiungi alcuni byte in un file di grosse dimensioni, l'utente dovrà scaricare solo le parti modificate.

Questo sistema funziona bene nella maggior parte dei casi, ma ci sono degli errori da evitare quando si progetta la distribuzione dei contenuti di un gioco. Potrebbe non essere conveniente comprimere o crittografare i dati del tuo gioco. Questa operazione viene già effettuata dal sistema dei contenuti di Steam per i download e i dischi fisici. Se la effettui anche tu, l'efficienza del patching delta sarà ridotta. La compressione e la crittografia sono consigliate solo se ogni singola risorsa all'interno di un file di pacchetto è compressa e/o crittografata separatamente. In caso contrario, la modifica a una risorsa richiederà sempre un nuovo download di molte altre risorse potenzialmente rimaste invariate.

Se raggruppi molteplici risorse in un singolo pacchetto di file, assicurati che non avvengano cambiamenti inutili ogni volta che raggruppi di nuovo i file. Una pratica problematica è quella di includere sul disco il nome completo dei file di origine originali, poiché quei nomi possono cambiare a seconda del computer su cui si esegue la build. Un altro errore è quello di includere i timestamp della build per ogni file. Se possibile, aggiunti sempre i nuovi contenuti alla fine del tuo pacchetto di file e mantieni inalterato l'ordine dei file esistenti. Conserva inoltre i metadati del tuo pacchetto di file (slittamento e dimensioni delle risorse singole) in unico posto e non mischiarli con i dati delle risorse. Utilizza uno strumento di controllo binario come BeyondCompare per esaminare due build dei tuoi pacchetti di file e assicurarti di non pubblicare centinaia di cambiamenti non necessari.

Seguendo queste regole, le dimensioni delle patch saranno ridotte e sarà necessario scaricare solo i nuovi contenuti. I tuoi clienti te ne saranno grati e sarai in grado di aggiornare il gioco più spesso, aumentandone la qualità.

Se credi che il tuo pacchetto di gioco non interagisca bene con il processo di aggiornamento di SteamPipe, contatta Valve e potremo abilitare funzionalità avanzate per aiutarti a riguardo.

Creazione di dischi di installazione per il commercio al dettaglio

Per creare dischi di installazione per il commercio al dettaglio per i giochi di SteamPipe, dovrai prima configurare un file di progetto della build.
In questo esempio, il file SKU è chiamato "sku_goldmaster.txt":
"sku" { "name" "Test Game Installer" "appid" "202930" "disk_size_mb" "640" "included_depots" { "1" "202931" "2" "202932" } }
Alcuni suggerimenti da tenere a mente:
  • Crea una nuova cartella dove saranno scritte le immagini del disco, ad esempio "D:\retail_disks". Vengono aggiunti solo i depot contenuti nelle sezioni included_depots. Non è più presente una seziona per quelli esclusi.
  • Puoi utilizzare Steam.exe (con i parametri -dev e -console) o steamcmd.exe per creare immagini dello strumento di installazione. In entrambi i casi, usa il comando "build_installer".
  • Accedi a Steam con un account che possiede il gioco e tutti i depot che vuoi includere sul disco. L'account non richiede ulteriori permessi e tutti possono creare dischi di installazione.
  • Se utilizzi Steam.exe, ferma tutti gli altri download.
  • Vai alla pagina della console ed esegui il comando build_installer:
    build_installer sku_goldmaster.txt "D:\retail_disks"
    La build può impiegare del tempo, poiché la prima volta tutti i depot sono scaricati nuovamente.
  • Sei stai creando un GM utilizzando un server di contenuti locale, esegui:
    @localcontentserver "webserver"
    build_installer sku_goldmaster.txt "D:\retail_disks" local
    Il testo nella console fa riferimento a "backup", dato che il disco di installazione e i backup locali del gioco sono praticamente identici.
  • Le immagini del disco saranno pronte quando vedrai "backup finished for AppID". Maggiori informazioni sulla build di backup sono disponibili nel file logs\backup_log.txt.
  • In "D:\retail_disks" sono presenti delle nuove cartelle (Disk_1, Disk_2, eccetera), ognuna non più grande di 640 MB, come specificato con "disk_size_mb". Ogni cartella del disco contiene un file "sku.sis", nonché un .csd e un .csm per ogni depot. I depot più grandi occuperanno diversi dischi. Tutti contenuti dei dischi di installazione sono codificati (al contrario dei file di backup locali). Copia i file di installazione del GM dell'SDK (setup.exe, setup.in, ecc.) nella cartella del tuo primo disco e lo strumento di installazione del disco sarà completato.
  • Quando creai un GM per OSX, assicurati di aprire l'immagine goldmaster/disk_assets/SteamRetailInstaller.dmg su un Mac. Quindi, seleziona l'app in esso contenuta e copiala nella radice del tuo supporto. Vorrai probabilmente cambiare il nome dell'app di installazione, includere un logo nell'icona e decorare la finestra per mostrare solo lo strumento di installazione.
  • Quando crei un GM con più dischi per OSX, assicurati che i nomi del volume di ogni disco combacino. Il nome del volume diventa parte del percorso di montaggio e se i nomi non combaciano lo strumento di installazione non sarà in grado di trovare il disco successivo.

Creazione opzionale di uno strumento di installazione al dettaglio da un ramo beta

Il processo appena spiegato creerà uno strumento di installazione al dettaglio basato sul ramo predefinito. Se ne devi creare uno basato su un ramo beta, dovrai prima creare un ramo beta chiamato "baseline". Quindi, usa il seguente comando per creare lo strumento dal ramo baseline:
build_installer <project file> <target folder> <beta key> <beta pwd> steamcmd ex: build_installer sku_goldmaster.txt "D:\retail_disks" baseline superSecret script ex: steamcmd.exe +login user_name password +build_installer "..\Build\GameDataSku.txt" c:\destination beta_key beta_password +exit

Installazione di DLC da uno strumento di installazione su disco

In alcune circostanze, potresti voler creare uno strumento di installazione che include i pacchetti dei DLC. Questo processo richiede solo alcuni cambiamenti.
Includi le appID del DLC in "sku_goldmaster.txt", nella
sezione "included_depots". Una volta eseguito il processo "build_installer", trova il file sku.sis che è stato generato per lo strumento di installazione e aprilo con un editor di testo.
Aggiungi l'appID del DLC nella sezione "apps". Ad esempio, per un gioco il cui AppID è 1000 e l'AppID del DLC è 1010, la sezione "apps" va modificata così:
"apps" { "0" "1000" "1" "1010" }
Ciò garantirà che Steam verifichi la proprietà del DLC e chieda all'utente un codice da immettere se il DLC non è di proprietà dell'account che ha effettuato l'accesso a Steam.

Creazione di uno strumento di installazione al dettaglio per AppID multipli su di un singolo disco/pacchetto di installazione

Per creare un GM contenente app multiple di SteamPipe, crea separatamente ciascuno strumento di installazione dell'app, ma indica per tutti la stessa cartella di output. Ogni build si unirà da sola all'immagine dell'installazione già esistente.

Personalizzare un disco di installazione al dettaglio

Vedi Personalizzazione di un gold master per maggiori dettagli sulla personalizzazione del tuo disco di installazione al dettaglio.

Precaricamento dei giochi prima del rilascio

Per impostazione predefinita, tutti i contenuti presenti sui dischi di installazione e sui server dei contenuti sono codificati. Abilitare lo scaricamento in anticipo per un gioco significa che il proprietario può scaricarne i contenuti, che però rimarranno codificati sul computer dell'utente e non potranno essere usati. Una volta che il gioco viene ufficialmente rilasciato, Steam decodificherà i contenuti scaricati in anticipo e l'utente potrà giocare.

Abilitare il gioco allo scaricamento in anticipo è consigliato nei seguenti casi:
  • Invio di dischi al dettaglio con codici prodotto prima che il gioco sia effettivamente disponibile (pirateria del giorno zero).
  • Giochi offerti in preacquisto dalle dimensioni superiori a 20 GB.

Se ritieni che il tuo gioco necessiti dello scaricamento anticipato, invia un ticket di assistenza per gli editori di Steam.

Creare DLC

I DLC sono strutturati come un depot del gioco di base. Per maggiori informazioni, vedi: Contenuti scaricabili (DLC).

Risoluzione dei problemi di SteamPipe

"Login Failure: Account Logon Denied Failed" (errore di accesso: errore con l'accesso negato all'account), quando si effettua l'accesso tramite steamcmd

Causa: SteamGuard sta probabilmente impedendo l'accesso. Risoluzione:
  • L'indirizzo e-mail associato all'account con cui stai cercando di effettuare l'accesso riceverà un'e-mail dal supporto di Steam. Copia il codice contenuto nell'e-mail.
  • Esegui il seguente steamcmd: set_steam_guard_code <code>
  • Effettua di nuovo l'accesso tramite steamcmd: Steam>logon <buildaccount> <password>

Risoluzione generale di problemi con il download

  • Riavvia il computer, il modem, il router, ecc.
  • Verifica le impostazioni del firewall. Il nuovo sistema richiede la porta 80 (HTTP) in aggiunta alle altre porte utilizzate da Steam, elencate qui.
  • Disabilita temporaneamente i programmi antivirus o antispam installati localmente.
  • Verifica la regione di download di Steam in Impostazioni->Download. La regione dovrebbe corrispondere a dove ti trovi.
  • Interrompi il download, disinstalla e reinstalla il gioco (svuota la cache del manifesto).
  • Esci da Steam ed elimina le due cartelle appcache e depotcache dalla tua cartella di installazione di Steam.
  • Prova a impostare la regione di download di Steam a una località lontana. Potrebbe funzionare se il server dei contenuti vicino alla tua località sta distribuendo dati difettosi.

Le mie build per Mac e/o Linux non stanno installando file. Perché?

Se stai testando su Steam l'installazione del tuo gioco su più piattaforme, potrebbero verificarsi situazioni in cui la build viene installata su Windows ma non su Mac o Linux, nonostante il processo di SteamPipe sia stato configurato per caricare depot di Mac e Linux. Uno dei passaggi viene spesso saltato e consiste nell'aggiungere i tuoi depot alternativi al pacchetto di installazione. Puoi verificare quali depot sono inclusi in un pacchetto seguendo questi passaggi:
  1. Vai alla tua pagina di amministrazione dell'app
  2. Dalla sezione Mostra gli elementi associati, fai clic su Visualizza demo, tutti i pacchetti, video e DLC associati
  3. Fai clic sul titolo del pacchetto che stai cercando di scaricare
  4. Controlla la sezione Depot inclusi
  5. Utilizza il pulsante Aggiungi/rimuovi depot per assicurarti che l'insieme corretto di depot sia assegnato al pacchetto
Vi sono anche diverse discussioni su questo argomento che potrebbero aiutarti:

Eseguire steamcmd.exe ricevo risulta nel seguente errore: "SteamUpdater: Error: Steam needs to be online to update. Please confirm your network connection and try again." (Per eseguire l'aggiornamento, Steam deve essere online. Verifica la connessione alla rete e riprova)

Risoluzione: vai su Opzioni internet->,Connessioni->,Impostazioni Lan e fai clic su Rileva impostazioni automaticamente.

Eseguire la build dell'app risulta nel seguente errore: "ERROR! Failed 'DepotBuild for scriptname.vdf' - status = 6." (ERRORE! "DepotBuild for scriptname.vdf" fallito - stato = 6)

Possibili cause:
  • L'account non ha i permessi per l'app.
    • Verifica che l'appID sia corretto nel app_build.vdf.
    • Verifica che l'account della build abbia i permessi necessari per l'appID.
  • Steamcmd non riesce a trovare i contenuti del depot.
    • Verifica che il valore "contentroot" nello script app_build sia un percorso valido in relazione a dove si trova il file dello script.
    • Verifica che il valore "LocalPath" nello script depot_build sia un percorso valido in relazione a dove si trova lo script app_build. Verifica che il percorso presenti contenuti al suo interno.

Eseguire la build dell'app risulta nel seguente errore: "ERROR! Failed to get application info for app NNNNN (check login and subscription)" (ERRORE! Impossibile recuperare le informazioni dell'applicazione per l'app NNNNN (controlla l'accesso e la sottoscrizione)

Questo errore significa che Steam non è in grado di recuperare informazioni sull'app, perché l'app non esiste o perché l'utente non vi ha accesso.
  • Verifica che l'NNNNN sia l'appID che ti è stato assegnato per l'app.
  • Verifica che l'appID sia corretto nel app_build.vdf.
  • Se si tratta di un nuovo appID, verifica che la configurazione dell'amministrazione dell'app di Steamworks sia stata pubblicata. Le nuove app dovrebbero avere una directory di installazione di SteamPipe nella scheda Configurazione, un depot nella scheda Depot e tutti i cambiamenti pubblicati nella scheda Pubblica.
  • Se tutte le informazioni ti sembrano corrette, assicurati che il tuo account sia in possesso dell'appID.

Al momento del lancio, "An error occurred while installing [AppName] (Invalid content configuration)" (si è verificato un errore nell'installazione di [AppName] - configurazione dei contenuti non valida)

Possibili cause:

Al momento del lancio si verifica l'errore "Error code 15"

Si tratta dei server CEG che rifiutano la richiesta di CEG per l'eseguibile. Verifica lo stato di rilascio sulla pagina del gioco. Se non è "giocabile". dovrai richiedere dei codici di Steam per ignorare lo stato di rilascio.

Al momento del lancio si verifica l'errore "The Steam Servers are too busy to handle your request... Error Code (2)" (I server di Steam sono troppo impegnati per gestire la tua richiesta... codice errore (2)

Si tratta dei server CEG che non riescono a trovare un eseguibile CEG corrispondente. Verifica di avere un eseguibile CEG funzionante nella scheda CEG del tuo amministratore dell'app. Clicca sul pulsante "stato" per essere sicuro che sia pronto.

Non ricordo il nome o la funzione di un comando steamcmd

Utilizza il comando "find" su steamcmd per cercare tutti i comandi steamcmd. Verranno trovate corrispondenze parziali del nome del comando e ne sarà elencata la sintassi.
Steam>find build_installer ConVars: Commands: build_installer : <project file> <target folder> <beta key> <beta pwd>