Steamworks-dokumentation
Upload til Steam

Introduktion til SteamPipe-indholdssystemet

SteamPipe er et indholdssystem til Steam-spil og -applikationer. SteamPipe inkluderer følgende funktioner:
  • Hurtig og effektiv levering af indhold.
  • Ubegrænsede offentlige og private "betagrene", så flere builds kan testes.
  • Enkel webbaseret buildstyring – udgiv nye builds eller annuller et tidligere build med få klik.
  • Mulighed for at se opdateringsstørrelsen på et build, inden det sættes til live.
  • Mulighed for at dele indhold mellem flere applikationer.
  • Mulighed for at bygge installationsdiske fra offentligt eller betaindhold.
  • Spil/applikationer bliver ved med at være tilgængelige offline, også når hentning af en opdatering er startet.
  • Alt indhold er altid krypteret, og ikke-aktive versioner er ikke synlige for kunder.
  • En Lokal SteamPipe-indholdsserver, som kan bruges under udvikling.
BEMÆRK: Der er nogle koncepter, som er uundværlige for SteamPipe, og inden du går i gang, bør du sætte dig ind i de koncepter, der beskrives i dokumentationen Applikationer. Det vil være nyttigt at have en grundlæggende forståelse for, hvordan disse elementer hører sammen, når du uploader dit produkt til Steam.

Steamworks-videoguide: Sådan bygger du dit spil i Steampipe

Videoen præsenterer SteamPipe og viser trin for trin, hvordan man bygger en applikation til Steam ved hjælp af Steamworks-værktøjerne.
https://www.youtube.com/watch?v=SoNH-v6aU9Q

Steamworks-videoguide: Sådan tilføjer du nye platforme og sprog

Denne guide beskriver, hvordan du tilføjer nye platforme og sprog til dit spil ved at tilføje depoter til din app.
https://www.youtube.com/watch?v=PShS32hcing

Tekniske detaljer om SteamPipe

SteamPipe anvender HTTP-protokollen til indholdslevering. Eftersom downloads er almindelig webtrafik vil HTTP-cache fra tredjepart mellem kunden og Steam-servere øge downloadhastigheden. Indhold kan hostes af eksterne CDN-udbydere, som nemt kan tilføjes til vores indholdsnetværk. De fleste firewalls hos forbrugere tillader HTTP-trafik og vil ikke blokere downloads.

SteamPipe har en effektiv patchalgoritme, som er baseret på teknologi, der sporer binære deltaer, så det er muligt kun at ændre de modificerede dele af eksisterende indholdsfiler. Når dette indhold opdateres, er det kun nødvendigt at sende disse deltaer. Dette betyder, at både udvikler- og brugeroverførsler er mindre og hurtigere. De fleste partnere vil ikke have behov for en Lokal SteamPipe-indholdsserver, eftersom de effektivt kan opdatere builds på private grene.

Steam-konto til builds

Inden du kan oprette builds på Steam, skal du have en Steam-konto i din Steamworks-konto med følgende tilladelser: "Rediger app-metadata" og "Udgiv app-ændringer til Steam". Af sikkerhedsmæssige årsager anbefales det, at du har en dedikeret buildkonto kun med disse tilladelser. Du kan oprette en ny Steam-konto til dette formål på https://store.steampowered.com/join.

Administratorer på din Steamworks-konto kan tilføje en Steam-konto og tildele de nødvendige tilladelser. Mere information om denne proces kan findes i dokumentationen Administrer din Steamworks-konto. Eksempel på, hvordan sådan en konto kunne se ud:

create_build_account.png

Indledende opsætning for nye SteamPipe-apps

Følg disse trin for at opsætte nye SteamPipe-apps:
  1. Find app-ID'et for din applikation (dette kan findes ved at vælge applikationen på din hjemmeside i Steamworks).
  2. Gå til siden Generelle installationsindstillinger for din app.
  3. Definer mindst en startparameter (stien og (valgfrit) nødvendige argumenter for at starte spillet). Hold musen over (?) for at læse mere om hvert felt.

    Eksemplet nedenfor viser fire startparametre, to for Windows og én for henholdsvis MacOS og Linux. Startparater 3 vises kun på Windows, hvis brugeren også ejer det angivne DLC.

    updatedlaunchoptions.png
  4. Gå til siden Depoter, og tilføj depoter efter behov for denne app. Som standard kan der allerede være konfigurerte et depot for din applikation.
    1. Klik på standarddepotet, og omdøb depotet med et passende og genkendeligt navn (for eksempel "Grundindhold" eller "Windows-indhold").
    2. Lad sproget være sat til [Alle sprog], medmindre det er et sprogspecifikt depot.
    3. Lad operativsystemet være sat til [Alle operativsystemer], medmindre det er et OS-specifikt depot (hvis appen er en alt-i-én-løsning eller kun til PC eller kun til Mac, skal den indstilles til [Alle operativsystemer]. Du skal kun ændre denne parameter for OS-specifikke spildepoter.
    4. Klik på Tilføj nyt depot for at oprette yderligere depoter.
    5. Klik på Gem ændringer for at gemme eventuelle ændringer.
  5. Når du er færdig med at definere dine depoter, skal du udgive de ændringer, du har foretaget fra siden Udgiv.
  6. Nyligt definerede depoter skal inkluderes i en pakke, så du får ejerskab over dem. Hvert spil på Steam skal have en udviklerpakke, som automatisk tildeles til de konti, der står i din udgivergruppe.
    Du kan tilføje de nye depoter til denne pakke (og/eller andre pakker, som skal have disse depoter) på siden Associerede pakker og DLC.
Bemærk: Hvis din eksekverbare fil ligger i en undermappe til den primære installationsmappe, skal du tilføje navnet på undermappen i feltet "Eksekverbar". Brug ikke foranstillede skråstreger eller prikker.

Opsætning af SDK'en til SteamPipe-uploads

Download den seneste version af Steamworks-SDK'en til den maskine, du vil uploade builds på, og pak SDK'en ud.

SteamPipe-værktøjerne kan findes i SDK'en i mappen tools, som består af to relevante undermapper.

Mappen ContentBuilder er der, hvor dit spilindhold og SteamPipe-buildværktøjer hører til. Denne mappe indeholder de følgende undermappe:
  • builder – Denne mappe indeholder til at starte med kun steamcmd.exe, som er kommandolinjeversionen af Steam.
  • builder_linux – Linux-versionen af steamcmd.
  • builder_osx – MacOS-versionen af steamcmd.
  • content – Denne mappe indeholder alle spilfiler, som skal bygges ind i depoter.
  • output – Denne mappe vil være stedet for buildlogs, segmentcache og mellemliggende output. BEMÆRK: Denne mappe kan slettes eller tømmes når som helst, men når den er blevet slettet, vil den næste upload tage længere tid.
  • scripts – Denne mappe er der, hvor du placerer alle dine buildscripts, når du bygger dine spildepoter.
steampipebuilddir.png

Det anbefales, at du kører steamcmd.exe direkte i byggemappen for din platform én gang for at bootstrappe dit buildsystem. Dette burde fylde builder-mappen med alle de filer, der skal bruges til at bygge depoter.

ContentServer-mappen indeholder værktøjer til at køre din egen Lokal SteamPipe-indholdsserver, hvis du vælger at gøre det.

SteamCmd på macOS

For at aktivere SteamCmd på macOS skal du udfylde følgende trin:
  1. Fra terminalen skal du gå til mappen tools\ContentBuilder\builder_osx\osx32
  2. Kør chmod +x steamcmd
  3. Gå op til den overordnede mappe (tools\ContentBuilder\builder_osx)
  4. Indtast bash ./steamcmd.sh
  5. SteamCmd vil så køre og opdatere til det seneste build, hvorefter du ser SteamCmd-kommandoprompten
  6. Indtast exit, og tryk på Enter for at forlade kommandoprompten
Du kan derefter følge resten af denne dokumentation (erstat stier efter behov) for at oprette depot- og appkonfigurationsfiler for at uploade dit indhold til Steam.

Oprettelse af SteamPipe-buildkonfigurationsfiler

For at uploade din app med SteamPipe skal du oprette scripts, som beskriver dit build og hvert debot, der indgår i det. I mappen ContentBuilder\scripts er der enkle scripteksempler til en app med ét depot.

BEMÆRK: Du kan navngive disse scripts, som du vil, men vi bruger konsekvent navnene app_build_<AppID> og depot_build_<AppID>. Hvis du ved, at du vil bygge apps på denne maskine, vil det måske være en god idé at oprette undermapper i din scriptmappe for hver applikation for at holde styr på hver applikations buildscripts.

GUI-værktøj i SteamPipe

Hvis du kører Windows og foretrækker et GUI-værktøj til at skabe disse konfigurationsfiler og uploade builds, kan du bruge SteamPipeGUI, som findes i "tools"-mappen i Steamworks-SDK'en. I .zip-filen er der yderligere instruktioner til, hvordan du kommer i gang.

Hvis du bruger GUI-værktøjet, anbefales det stadig at læse de følgende sektioner, så du kan blive mere bekendt med, hvordan SteamPipe-systemet fungerer.

Depot-buildscript

Opret først et depot-buildscript til hvert depot, du vil uploade. Begynd med at duplikere depot_build_1001.vdf-scriptet og omdøbe det med det depot-ID, som det skal uploade.

Eksempel på depot-buildscript:
"DepotBuildConfig" { // Angiv depot-ID'et, som dette script vil uploade. "DepotID" "1001" // Angiv en rod for alt indhold. // Alle relative stier, som er angivet nedenfor (LocalPath i FileMapping-poster og FileExclusion-stier) // Løses i forhold til denne rod. // Hvis du ikke definerer ContentRoot, antages det, at den er // Denne scriptfils placering, som sikkert ikke er det sted, du vil have "ContentRoot" "D:\MyGame\rel\master\" // Inkluder alle filer rekursivt "FileMapping" { // Dette kan være en fuld sti eller en sti i forhold til ContentRoot "LocalPath" "*" // Dette er en sti i forhold til dit spils installationsmappe "DepotPath" "." // Hvis LocalPath indeholder jokertegn, og du indstiller den, betyder det, at alle // matchende filer i undermapper til LocalPath også vil // blive inkluderet. "recursive" "1" } // Ekskluder alle symbolfiler // Dette kan være en fuld sti eller en sti i forhold til ContentRoot "FileExclusion" "*.pdb" }

BEMÆRK: Hvis du angiver en "ContentRoot" i depot-buildscriptet, tilsidesættes "ContentRoot" i appens buildscript.

App-buildscript

Når du har konfigureret dine depot-buildscripts, skal du have et app-buildscript, som beskriver buildets detaljer. Begynd med at duplikere app_build_1000.vdf-scriptet og omdøbe det med det app-ID, som det skal bygge.

Følgende typer builds understøttes af SteamPipe:
  • Preview – Denne type build viser kun logfiler og et filmanifest. Preview-builds er en god måde at teste uploadscripts på.
  • Local – Builds til Lokal SteamPipe-indholdsserver. LCS-builds uploades til din egen LCS og gør det muligt for dig at teste dit spils installation ved hjælp af Steam-klienten.
  • SteamPipe – SteamPipe-builds gør, at dine depoter bliver uploadet til Steam. Det er altid sikkert at gøre dette, også for spil, som allerede er udgivet, da du skal sætte det til offentligt, før kunder kan downloade det.

Eksempel på app-buildscript:
"appbuild" { // Angiv app-ID'et, som dette script vil uploade. "appid" "1000" // Beskrivelsen for dette build. // Beskrivelsen er kun synlig for dig i sektionen "Dine builds" i panelet "App-administrator". // Dette kan ændres når som helst efter upload af et build på siden "Dine builds". "desc" "Din buildbeskrivelse her" // Aktiver/deaktiver, om dette er et preview-build. // Det anbefales kraftigt at bruge preview-builds i den indledende opsætning af SteamPipe for // at sikre, at depotmanifestet indeholder de korrekte filer. "preview" "1" // Filstien på den lokale indholdsserver, hvis den er slået til. "local" "" // Grennavn, der automatisk skal sættes til live, når buildet er oprettet. Ignorer, hvis den er tom. // Bemærk, at standardgrenen ikke kan sættes til live automatisk. Dette skal gøres via panelet "App-administrator". "setlive" "" // Følgende stier kan være absolutte eller relative i forhold til scriptets placering. // Denne mappe vil være stedet for buildlogs, segmentcache og mellemliggende output. // Cachen, der er gemt her, gør, at fremtidige SteamPipe-uploads gennemføres hurtigere ved hjælp af ændringssporing. "buildoutput" "..\output\" // Indholdsmappens rod. "contentroot" "..\content\" // Listen over depoter i dette build. "depots" { "1001" "depot_build_1001.vdf" } }

Oprettelse af depoter

For at starte et build skal du redigere run_build.bat-filen, så den inkluderer din Steamworks-konto til builds og din adgangskode (se ovenfor) og stien til app-buildscriptet:
builder\steamcmd.exe +login "account" "password" +run_app_build ..\scripts\[build_script_name].vdf +quit

BEMÆRK: Dit første forsøg på at køre et build kan mislykkes på grund af Steam Guard. Hvis login-forsøget mislykkes på grund af Steam Guard, skal du se efter Steam Guard-koden i dine e-mails og køre steamcmd som: steamcmd.exe "set_steam_guard_code <code>" og prøve igen. Når du har logget ind med Steam Guard én gang, bruges en sentry-fil til at kontrollere efterfølgende logins.

Når du har kørt run_build.bat, burde dit build-output være i mappen, som er angivet i din build-scriptfil. Hvis preview-buildet giver det forventede manifest, skal du køre buildet igen med "preview" "0" i dit app-buildscript.

Følgende trin sker i et SteamPipe-build:
  1. Steamcmd.exe logger ind til Steams backend med en given Steam-builderkonto.
  2. Buildstarten for appen er registreret i MDS (Master Depot Server), som sikrer, at brugeren har de nødvendige rettigheder til at ændre denne app.
  3. For hvert depot i app-buildet generers der en filliste baseret på filerne i indholdsmappen og filterreglerne, som er defineret i konfigurationsfilen for depot-buildet.
  4. Hver fil skannes og deles op i små stykker på ca. 1 MB. Hvis depotet har været bygget før, vil denne partitionering bevare så mange af de uændrede stykker som muligt.
  5. Ny filstykker komprimeres, krypteres og uploades derefter til MDS'en.
  6. Der genereres et sidste manifest for denne depotversion. Hvert manifest identificeres med et entydigt 64-bit manifest-ID.
  7. Når alle depoter er blevet behandlet, afslutter MDS'en app-buildet og tildeler det et globalt build-ID.
  8. Når buildet er klar, kan der være *.csm- og *.csd-filer i build-outputmappen. Disse er midlertidige og kan slettes, men de fremskynder efterfølgende build-tider.

Administrering af opdateringer

Når din app er udgivet til kunderne, vil de modtage det build, som er markeret som standardbuild. Når du uploader et nyt build, er det altid en god idé at teste det, inden du udgiver det til dine kunder. Se Testarbejde på Steam for mere information om, hvordan du gør dette.

Avancerede regler om filtilknytning

Der kan være flere filtilknytninger, som tilføjer filer til depotet. De skal stå først.
Filer eller undermapper kan ekskluderes med filterudtryk.
Steam-installationsscripts kan markeres under build-processen, så Steam-klienten ved, at den skal køre dem for alle applikationer, som indsætter depotet.
Tilknytningen af filer eller mapper kan ændres, så undermapper i indholdsmappen kan tilknyttes til et hvilket som helst sted i depotet.
Filer kan tagges med særlige flag:
  • userconfig – Denne fil ændres af brugeren eller spillet. Den kan ikke tilsidesættes af en opdatering, og den udløser ikke en verifikationsfejl, hvis den er forskellig fra den tidligere version af filen.
  • readonly – Denne fil markeres som skrivebeskyttet for klientfilsystemet.
  • hidden – Denne fil markeres som skjult for klientfilsystemet.
  • executable – Dette er en eksekverbar fil (kun for OS X).
    "DepotBuildConfig" { "DepotID" "202931" "FileMapping" { // tilsidesætter videofiler i \\videoer med tyske versioner "LocalPath" "localization\\german\\videos\\*" "DepotPath" "videos\\" } "FileMapping" { // tilsidesætter lydfiler i \\lyd med tyske versioner "LocalPath" "localization\\german\\audio\\*" "DepotPath" "audio\\" } "FileMapping" { "LocalPath" "localization\\german\\german_installscript.vdf" "DepotPath" "." } "FileExclusion" "bin\\server.exe" // exclude this file "FileExclusion" "*.pdb" // exclude all .PDB files everywhere "FileExclusion" "maps\\testroom*" // exclude all files under maps/testroom/ "InstallScript" "localization\\german\\german_installscript.vdf" "FileProperties" { "LocalPath" "bin\\setup.cfg" "Attributes" "userconfig" // this file will be modified during runtime } }

Fejlfinding af problemer med builds

Hvis buildet fejler, skal du se, om der er nogen fejloplysninger i outputmappen – ikke konsollen, hvor buildscriptet blev kørt. De fleste fejloplysninger kan findes i *.log-filerne.
Du kan bruge disse Steam-klientkommandoer og klientfiler til at foretage fejlfinding:
  • "app_status [appid]" – Viser appens nuværende tilstand på denne klient.
  • "app_info_print [appid]" – Viser den nuværende Steamworks-konfiguration for dette spil (depoter, startparametre osv.).
  • "app_config_print [appid]" – Viser den nuværende brugerkonfiguration for dette spil (nuværende sprog, installationsmappe osv.).
  • file "logs\content_log.txt" – Viser en liste over alle loggede Oxcart-operationer og fejl.
  • file "steamapps\appmanifest_[appid].acf" – Viser denne apps nuværende installationstilstand (KeyValues).

Oprettelse af effektive depoter til SteamPipe

Opdateringer i det gamle Steam-indholdssystem var på filniveau, hvilket betød, at hvis en enkelt byte i en fil blev ændret, blev der sendt en ny fil til alle brugere, som de kunne downloade. Det var særlig ineffektivt, hvis spillet brugte pakkefiler, som er samlinger af spilindholdsfiler i én stor fil. Pakkefiler kan nemt overstige 1 GB, så opdateringer medførte ofte unødvendigt store downloads. Det var almindeligt at undgå disse store downloads ved at tilføje nye pakkefiler, som tilsidesatte indholdet i tidligere udgivne pakkefiler. Det fungerede for opdateringer, men var ubelejligt for nye brugere på lang sigt, eftersom de endte med at downloade ubrugt, tidligere opdateret indhold.

Det nye indholdssystem løser dette problem ved at dele hver fil i mindre stykker på ca. 1 MB hver. Hvert stykke komprimeres og krypteres, inden det distribueres af Steam-indholdssystemet. Hvis spilindholdet har store overflødige dele, kan disse stykker genbruges, og brugeren skal kun downloade hvert gentagne stykke én gang. Systemets virkelige styrke er dog at bygge effektive opdateringer. Når systemet bygger en opdatering, skannes det nye indhold for kendte stykker. Hvis systemet finder dem, genbruger det dem. Det betyder, at hvis du ændrer eller tilsætter et par bytes i en stor fil, skal brugeren kun downloade ændringerne.

Dette fungerer godt i de fleste tilfælde, men der er stadig et par faldgruber, som skal undgås, når du desginer spillets indholdslayout. Komprimer og krypter ikke dine spildata. Dette gøres af Steam-indholdssystemet under downloadprocessen og under oprettelse af detaildiske. Hvis du også gør det, reducerer du effektiviteten af ændringssporingsteknologien. Hvis du pakker flere datafiler i en enkelt pakkefil, skal du sørge for, at der ikke foretages nogen unødvendige ændringer for hver ompakning. En problematisk praksis er at inkludere det fulde navn på de originale kildefiler på disken, fordi navnene kan ændre sig afhængigt af den maskine, der anvendes til buildet. Et andet problem er at inkludere build-tidsstempler for hver fil. Hvis det er muligt, skal nyt indhold altid tilføjes til sidst i pakkefilerne, så rækkefølgen af eksisterende filer bevares. Gem også metadata for pakkefilerne (offset og størrelser på individuelle filer) på ét sted, og bland dem ikke sammen med indholdsfilerne. Brug et binært sammenligningsværktøj såsom BeyondCompare til at se på to builds af dine pakkefiler for at sikre, at der pludselig ikke er hundredvis af uønskede ændringer.

Hvis du følger disse regler, kan du minimere størrelsen på opdateringer, og der skal kun downloades nyt indhold. Dine kunder vil takke dig for det, og du vil kunne øge kvaliteten af dit produkt ved at udgive flere opdateringer.

Oprettelse af installationsdiske

For at oprette en detaildisk til SteamPipe-spil skal du første oprette en build-projektfil.
I dette eksempel kaldes SKU-filen "sku_goldmaster.txt":
"sku" { "name" "Test Game Installer" "appid" "202930" "disk_size_mb" "640" "included_depots" { "1" "202931" "2" "202932" } }
Værd at huske på:
  • Opret en ny mappe, som diskbilleder skal skrives til, for eksempel "D:\retail_disks". Kun depoter i included_depots-sektionerne tilføjes. Der er ikke længere undtagelser.
  • Du kan bruge Steam.exe (med kommandolinjeparametrene -dev og -console) eller steamcmd.exe til at bygge installationsbilleder. Brug "build_installer"-kommendoen i begge tilfælde.
  • Log på med en Steam-konto, som ejer spillet og alle de depoter, du vil lægge på detaildisken. Ellers behøver kontoen ikke at have særlige rettigheder, så alle kan oprette installationsdiske.
  • Hvis du bruger Steam.exe, skal alle andre downloads stoppes.
  • Gå til konsolsiden, og kør kommandoen build_installer:
    build_installer sku_goldmaster.txt "D:\retail_disks"
    Buildet kan tage et stykke tid, eftersom alle depoter downloades igen for første gang.
  • Hvis du opretter en Gold Master med en lokal indholdsserver, skal du køre:
    @localcontentserver "webserver"
    build_installer sku_goldmaster.txt "D:\retail_disks" local
    Teksten i konsollen henviser til "Sikkerhedskopiering", eftersom en installationsdisk og en lokal backup stort set er det samme.
  • Når du ser teksten "Sikkerhedskopiering færdig for app-ID...", er installationsdiskbillederne klar. Du kan finde flere detaljer om backup-buildet i logs\backup_log.txt.
  • Der er nye mapper (Disk_1, Disk_2 osv.) i "D:\retail_disks", hver på maks. 640 MB, som angivet med "disk_size_mb". hver diskmappe indeholder en "sku.sis"-fil og en .csd og .csm for hvert depot. Større depoter kan strække sig over flere diske. Alt indhold på detailinstallationsdiske krypteres altid (til forskel fra lokale spilsikkerhedskopifiler). Kopier GM-installationsfilerne for SDK'en (setup.exe, setup.ini osv.) til mappen med din første disk for at færdiggøre oprettelsen af din installationsdisk.
  • Ved oprettelse af en GM for OSX skal du sørge for at åbne goldmaster/disk_assets/SteamRetailInstaller.dmg-billedet på en Mac. Tag derefter appen, som ligger der, og kopier den til mediets rod. Du skal nok ændre navnet på installationsappen, oprette dit eget ikon og kun vise installationsprogrammet i vinduet.
  • Når du opretter en GM for OSX bestående af flere diske, skal du sørge for, at enhedsnavnet på hver disk er korrekt. Enhedsnavnet bliver en del af forbindelsesstien, og hvis navnene ikke stemmer overens, vil installationsprogrammet ikke kunne finde den næste disk.

Oprettelse af valgfri installationsdisk fra en betagren

Processen ovenfor bruges til at oprette et installationsprogram baseret på standardgrenen. Hvis du har brug for et installationsprogram, som er baseret på en betagren, skal du først oprette en betagren med navnet "baseline". Brug derefter følgende kommando til at bygge fra denne baseline-gren:
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

Installation af DLC fra et detailinstallationsprogram

I visse tilfælde kan det være godt at oprette et detailinstallationsprogram, som inkluderer dine DLC-pakker. I sådanne tilfælde kræves blot et par ændringer i processen til at oprette installationsprogrammet.
I "sku_goldmaster.txt" skal du inkludere app-ID'er for DLC under "included_depots"-sektionen. Når du har kørt "build_installer"-processen skal du finde den genererede sku.sis-fil for installationsprogrammet og åbne den med et tekstredigeringsprogram.
Tilføj App-ID'et for DLC'et i "apps"-sektionen. hvis jeg for eksempel havde et spil med app-ID 1000 og DLC-app-ID 1010, ville jeg justere "apps"-sektionen således:
"apps" { "0" "1000" "1" "1010" }
Dette vil sikre, at Steam tjekker DLC-ejerskabet og beder brugeren om en nøgle, hvis DLC'et ikke er ejet af den Steam-konto, som brugeren er logget på med.

Oprettelse af detailinstallationsprogram for flere app-ID'er på en enkelt disk/installationspakke

Sådan bygger du en GM med flere SteamPipe-apps: Byg hvert app-installationsprogram et ad gangen, men lad dem alle pege på den samme outputmappe. Hvert build vil blive flettet ind i det allerede eksisterende installationsbillede.

Tilpasning af installationsdisk

Se Tilpasning af en Gold Master for flere detaljer om tilpasning af installationsdiske.

Forudindlæsning af spil inden udgivelse

Som standard krypteres alt indhold altid på alle detaildiske og alle indholdsservere. Hvis du skifter til, at et spil skal forudindlæses, betyder det, at ejeren kan downloade indholdet, men at det forbliver krypteret på brugerens disk og ikke kan spilles. Når spillet er officielt udgivet, dekrypterer Steam det forudindlæste indhold, og brugeren kan spille spillet.

Det anbefales at skifte til forudindlæsningstilstand i følgende tilfælde:
  • Udgivelse af detaildiske med produktnøgler, inden spillet er officielt tilgængeligt (undgå piratkopiering før udgivelsen).
  • Spil med forudkøb, og som er større end 20 GB.

Kontakt Steam-udgivelsesholdet, hvis du mener, at dit spil kræver forudindlæsning.

Oprettelse af DLC

DLC bygges som et depot i grundspillet. Se dokumentationen Indhold, der kan downloades (DLC) for mere information.

Fejlfinding af SteamPipe

"Login Failure: Account Logon Denied Failed", når der logges på via steamcmd

Årsag: SteamGuard forhindrer formentlig login. Løsning:
  • Tjek e-mailadressen, som er tilknyttet den konto, du prøver at logge på med, og se efter en e-mail fra Steam Support. Kopier koden fra e-mailen.
  • Kør steamcmd: set_steam_guard_code <code>
  • Prøv at logge på igen fra steamcmd: Steam>logon <buildaccount> <password>

Generel fejlfinding af problemer med downloads

  • Genstart computeren, modemmet, routeren osv.
  • Bekræft firewallindstillingerne. Det nye system kræver port 80 (HTTP) og alle andre Steam-porte, som står her.
  • Slå lokale antivirus- eller spamblokeringsprogrammer fra.
  • Tjek download-området i Steam under Indstillinger -> Downloads. Dette bør matche din placering.
  • Stop overførslen, afinstaller og geninstaller spillet (ryd manifestcachelagre).
  • Afslut Steam, slet mapperne appcache og depotcache i Steam-installationsmappen.
  • Indstil "Download-område" i Steam til et sted langt væk. Dette vil måske virke, hvis en indholdsserver i nærheden af dig serverer dårlige data.

Mine Mac- og/eller Linux-builds installerer ikke nogen filer. Hvorfor?

Hvis du tester installationen af dit spil eller din applikation via Steam på tværs af flere platforme, kan du komme i en situation, hvor buildet starter på Windows, men ikke starter nogen filer på Mac eller Linux, selvom SteamPipe-processen er konfigureret til at uploade Mac- og/eller Linux-depoter. En ting, som tit bliver overset, er at tilføje alternative depoter til de pakker, der udrulles. Du kan se, hvilke depoter der er inkluderet i en pakke via følgende trin:
  1. Gå til siden App-administrator
  2. Fra sektionen "Vis associerede emner" skal du klikke på Vis demo, alle associerede pakker, videoer og DLC
  3. Klik på titlen på den pakke, du forsøger at downloade
  4. Gennemgå sektionen Depoter inkluderet
  5. Brug Tilføj/fjern depoter for at sikre, at det korrekte depotsæt er tildelt pakken
Der er flere diskussionstråde om dette, som også kan hjælpe:

Når steamcmd.exe køres, giver det følgende fejl: "SteamUpdater: Error: Steam needs to be online to update. Please confirm your network connection and try again." (SteamUpdater: Fejl: Steam skal være online for at opdatere)

Løsning: Gå til Internetindstillinger->Forbindelser->LAN-indstillinger, og markér Registrer automatisk indstillinger.

Når app-buildet køres, giver det følgende fejl: "ERROR! Failed 'DepotBuild for scriptname.vdf' - status = 6." (FEJL! "DepotBuild for scriptname.vdf" fejlede – status = 6)

Mulige årsager:
  • Kontoen har ikke tilladelser til appen.
    • Kontrollér, at app-ID'et er korrekt i app_build.vdf.
    • Kontrollér, at build-kontoen har de nødvendige tilladelser til app-ID'et.
  • Steamcmd kan ikke finde depotindholdet.
    • Kontrollér, at "contentroot"-værdien i appen app_build-scriptet er en gyldig sti i forhold til scriptfilens placering.
    • Kontrollér, at "LocalPath"-værdien i depot_build-scriptet er en gyldig sti i forhold til app_build-scriptet. Kontrollér, at stien indeholder indhold.

Når app-buildet køres, giver det følgende fejl: "ERROR! Failed to get application info for app NNNNN (check login and subscription)" (FEJL! Kunne ikke få applikationsinformation for appen NNNNN (tjek login og abonnement))

Dette betyder, at Steam ikke kan hente oplysninger om appen, enten fordi den ikke findes, eller fordi brugeren ikke har adgang til appen.
  • Kontrollér, at NNNNN er det app-ID, du fik tildelt for appen.
  • Kontrollér, at app-ID'et er korrekt i app_build.vdf.
  • Hvis det er et nyt app-ID, skal du kontrollere, at konfigurationen af app-administratoren i Steamworks er blevet udgivet. Nye apps skal have en SteamPipe-installationsmappe på konfigurationsfanen, et depot på depotfanen, og alle ændringer skal være udgivet på udgivelsesfanen.
  • Hvis alt dette ser korrekt ud, skal du sikre, at din konto ejer app-ID'et.

"An error occurred while installing [AppName] (Invalid content configuration)" at launch time (Der opstod en fejl under installation af [AppName] (ugyldig indholdskonfiguration)", når spillet startes)

Mulige årsager:

"Error code 15", når spillet startes

Dette sker, fordi CEG-serverne afviser anmodningen for at kontrollere den eksekverbare fil. Tjek udgivelsesstatussen på spilsiden. Hvis ikke det "kan spilles", skal du anmode om Steam-nøgler, der tilsidesætter udgivelsesstatussen.

"The Steam Servers are too busy to handle your request... Error Code (2)" at launch time (Steam-serverne er for optagede til at håndtere til anmodning... Fejlkode (2), når spillet startes)

CEG-serverne kan ikke finde en matchende eksekverbar CEG-fil. Dobbelttjek, at du har en fungerende eksekverbar CEG-fil på CEG-fanen i app-administratoren. Klik på statusknappen for at sikre, at den er understøttet.

Jeg kan ikke huske, hvad steamcmd-kommandoen var, eller hvordan den virkede

Brug "Find"-kommandoen i steamcmd til at søge efter steamcmd-kommandoer. Den vil foretage en delvis matchning på kommandonavnet og vise kommandosyntaksen.
Steam>find build_installer ConVars: Commands: build_installer : <project file> <target folder> <beta key> <beta pwd>