Steam Build Terminology and Overall Structure
This article explains the specialized terminology and overall structure involved in Steam builds, based on what I learned while building a demo for my game on Steam. For reference, here is the game I submitted to Steam. Feel free to check it out if youâre curious.
https://twitter.com/FoxEngineer777/status/1974287906367050068
What âBuildâ Means on Steam
In Steamâs context, âbuildâ has both a broad and a narrow meaning.
The broad meaning refers to the entire set of tasks required to make a game playable on Steamâthe full workflow often called a âgame buildâ or âdemo build.â
The narrow meaning refers specifically to Steamâs version management system (managed by Build IDs), which is what âbuildâ typically means when used on its own.
In practice, most people use âbuildâ to mean both things interchangeably, so you donât need to stress over the distinctionâbut itâs good to be aware of.
Build-Related Terminology
The specialized terms that appear throughout the Steam build workflow include:
- App
- Depot
- Build
- Branch
- Package
- Bundle
Hereâs a brief explanation of each.
The official Steamworks documentation also covers these terms, so if you have time, itâs worth reading through.
What Is an App?
âAppâ may seem self-explanatory, but itâs worth stating clearly. In Steamâs context, âAppâ is short for âApplicationâ and refers to the game (or software) youâre developing.
Each app is managed by a unique identifier called an App ID, which appears frequently in store page URLs and throughout Steamworks.
This is straightforward so far, but things get slightly more complex when it comes to add-ons like demos and DLC.
In the past, demos and DLC were managed as depots within the main app. Today, both demos and DLC are given their own separate App IDs and managed as distinct apps.
Understanding that a demo is a separate app from the full product (with its own App ID) is essential for making sense of the build workflow. Without this, many build-related steps will be confusing.
That said, demos are treated as âchild appsâ tied to their parent (the full product), and Steam provides built-in functionality for users to download the demo directly from the full productâs store pageâso from the userâs perspective, they feel like the same thing.
What Is a Depot?
The concept that causes the most confusion during the game build process is probably the Depot.
âDepotâ in English means something like âwarehouseâ or âstorage facilityââsimilar to the word âstorageâ as used in computing. Its role in Steam is analogous: a depot is a container that holds the actual game files (e.g., the .exe file and all associated assets).
Like apps, depots are managed by unique identifiers called Depot IDs. Depot IDs donât appear on store pages but are publicly visible through tools like SteamDB.
When a user purchases and downloads an app, whatâs actually delivered to their local machine is the contents of the depot.
Multiple depots can be created for a single app. For example, you could create a Windows depot and a macOS depot, and Steam will deliver the appropriate one based on the userâs operating system.
What Is a Build?
The second concept thatâs easy to misunderstand is Buildâin Steamâs context, this is a version management concept.
Developers with a programming background might associate âbuildâ with compiling source code into an executable, or with a deployment pipeline. In Steam, it means something different.
When a developer uploads game files to Steam, those files are stored in a depot, and that state of the depot is registered as a single build (a version). Each time you upload new game files, a new build is created.
The build history screen makes this clear: each row represents a separate upload, each assigned its own Build ID.

The Build ID itself is essentially just a version number. What matters is the contents of the depot associated with that Build ID.
When users download or update an app, they receive the depot contents associated with the currently active Build ID.
What Is a Branch?
Developers familiar with Git or SVN will find Steamâs branch concept relatively intuitiveâitâs similar in principle.
âBranchâ literally means âbranch of a tree,â which is fitting: just like branches in a version control system, Steam branches let you fork your build history into separate lines.
Looking at the build history screenshot, you can see a âCurrentâ column on the left with the value âdefault.â This âdefaultâ is the branch name, and the top row shows which Build ID itâs currently assigned to.
In practical terms, branches let you control which build version gets delivered to users. When âdefaultâ is set to the latest Build ID, users who download or update the app receive that version.
If you change the âdefaultâ branch to an older Build ID, users will receive that older version instead.
For solo developers, the typical workflow is simple: always keep the âdefaultâ branch pointed at the latest build. Branches are mostly an administrative tool in this case.
For team projects, branches become more useful:
- A âbetaâ branch can be used for internal builds that arenât ready for public release
- A âlegacyâ branch can preserve a specific earlier version
- If a patch introduces a critical bug, switching âdefaultâ back to the previous Build ID is a quick way to revert while a fix is prepared
Branch-based build management is a genuinely useful feature. Without it, every uploaded build would immediately be visible to usersâwhich would be problematic.
What Is a Package?
Package isnât directly related to the build process, but itâs closely tied to apps, so itâs worth explaining.
A Package is essentially a product for sale on Steam. When you publish an app, itâs made available through a package.
The concept may be a bit abstract: when a user âbuysâ an app on Steam, theyâre technically buying a package, which grants them access rights (download and play access) to the apps contained in that package.
Even downloading a free demo is technically âpurchasing a free packageâ that contains the demo app.
Users donât need to think about this at allâbut developers who donât understand packages may run into confusion during the actual sales setup.
What Is a Bundle?
Bundle also isnât directly related to the build process, but it comes up in the Steam ecosystem.
If youâve browsed Steam, youâve probably seen âbundlesââcollections of multiple products offered together as a package deal. Thatâs exactly what Bundles are.
In Steamâs sales system, a Bundle is a grouping of multiple Packages sold together.
Developers can set up bundles from Steamworks, so itâs worth being aware ofâthough in practice, bundles only become relevant once you have multiple titles on Steam.
Packages and Bundles are concepts that matter more at the full product release stageâI may move these explanations there if I write a dedicated article for that step.
The Overall Structure of a Steam App
To summarize the terminology:
- App: The game itself; has a parent app and child app (demo/DLC) structure
- Depot: The storage location for uploaded game files
- Build: The version management system for depot contents
- Branch: A feature for switching between builds based on purpose
- Package: A Steam product containing one or more apps
- Bundle: A Steam sales pack containing multiple packages
Words alone can be hard to visualize, so hereâs a rough diagram I put together:

Hereâs the flow illustrated in the diagram:
- A developer creates App A and App B
- The developer creates Build A (linked to Depot A) and Build B (linked to Depot Aâ) for App A
- The developer sets Build A as the âdefaultâ branch for App A
- The developer creates Build C (linked to Depot B) for App B and sets its âdefaultâ branch
- The developer publishes Package 1 containing App A and Package 2 containing App B
- The developer sets up a Bundle containing Package 1 and Package 2
- A user purchases Package 1
- When the user downloads Package 1, they receive Depot Aâthe depot associated with Build A (the current âdefaultâ branch for App A). Build B and Depot Aâ are not âdefaultâ and are invisible to the user.
This may actually make things more confusing than the text explanationâapologies if so.
Note on the Depot naming: I used âDepot Aâ and âDepot Aââ to indicate the same Depot ID with different contents. Other apps and builds have different IDs, so I used B and C for those.
Technically, a depot is a single file storage location, with a manifest file (tied to the Build ID) controlling which assets are used. âDepot Aâ and âDepot Aââ arenât physically separate locationsâbut I split them in the diagram for clarity.
This is my best understanding of how Steam builds work. If anything here is wrong, please let me know and Iâll correct it.
Summary
This article covered Steam build terminology and the overall structural model for Steam apps.
Most developers who have published on Steam probably have an intuitive sense of these concepts without ever having them laid out systematically. (Looking at online articles and forum posts, that impression is pretty common.)
So I wrote this as a structured breakdown of each term and how they fit togetherâthough the result may have made things clearer or murkier depending on the reader.
The simple version: master how to upload game files, how to switch branches, and when to publishâand thatâs enough to ship on Steam without major issues.
That said, having a conceptual understanding of the underlying system helps enormously when you encounter an unexpected situation that isnât covered in any tutorial. Whether or not youâll ever need it, knowing it doesnât hurt.
I hope this article helped deepen your understanding of Steam builds, even slightly.
Thatâs all for this article. For other Steam-related articles, see the main overview article linked below.
đ Series: How to Sell Your Game on Steam (7/7)
