It’s great to hear that Standalone builds are now supported! Is there any plans to integrate this with Steam, so we could push new builds to Steam directly? If not, what would be the recommended way to do it? Via Post Export Method?
Wouldn’t you want to QA the build before pushing directly to Steam?
No, I have a private dev branch/channel on Steam for exactly that. It’s easier to deploy it for testing through Steam.
+1
It’s very common to use steam to distribute builds during pre-production.
Would be very useful indeed. But not only for cloud build, could be good to have it in the build settings.
That sounds like a useful feature. Consider submitting it to the Unity Feedback site to help collect votes:
http://feedback.unity3d.com/forums/unity/suggestions?category=cloud-build
Cheers,
Patrick
Made a feedback topic. Vote for it!
http://feedback.unity3d.com/suggestions/push-builds-to-steam
Yes please! Make an option to automaticaly deploy a build to a Steam branch!!!
That would allow the testers to try nightly build!
+1!! I was about to post just this and saw it was already posted. This would be epic. I recently started looking into cloud build after offering Mac/Linux support, and we sorta have regrets because it’s a burden to build each time. However, there’s hope with cloud builds and Steam workflows!
Has anyone, in the meantime, thought of something clever to chain the builds while waiting for official support?
Are there webhooks for cloud builds after a build is complete? I have some ideas in my head.
If a webhook is sent when finished, could hook to your API with download link and info, use script to download the file and upload directly to steam!
If Unity had native integration, they could do the same thing – just ask us for Steamworks info (with permission from Valve to do it, of course)
Yup. I’m doing exactly this.
Are you using a GitLab runner to do this? I read that they’re sorta made for this. I just got a server running, but it’s taking me a long time to setup (just doing it a little at a time). I’m curious if you could give some details about your pipeline~
I’m running a linux server on cloud.google.com with a python script that receives POST requests and then calls steambuilder.sh
4 years later… is this on the roadmap at all?
XR Development in Unity: AR, VR and Spatial Solutions | Unity is handling this area of functionality these days. It’s definitely still a feature we would like to provide though.
Whew, I thought Steam would be the #1 - never heard of the 4 available in there – sorta fluffy/indie looking.
I generate batch files via Unity’s post process editor script to get mine uploaded – here’s a headstart for how Steam works for uploading. Mine may have extras like launching websites upon completion - edit to your own then practice autogenerating the same working script.
steamUpload.bat:
@ECHO OFF
@ECHO OFF
ECHO.
ECHO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ECHO ^^ False positive errors for UTF-8 (Unicode Support). Ignore this ^^
ECHO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ECHO.
chcp 65001
REM ##############################################################################################
REM #
REM # C:/Repos/ToL/tol-game-win/i42-tol-win64/Assets/../BuildSteam-Xbladepc-win-x64.bat
REM #
REM # by Imperium42 Game Studio @ https://www.imperium42.com
REM #
REM # This file is automatically generated and will replace itself each time you build (compile).
REM # Incorrect config can be changed in PostProcessBuildInfo.cs (or PostProcessBuild.cs for core)
REM #
REM # 1 - Delete the old \windows_content\ contents
REM # 2 - Copy steam ./build/ contents to /<steam>/tools/ContentBuilder/content/windows_content/
REM # 3 - Set the <SteamWorks>/ContentBuilder/scripts/app_build_123456-win
REM # 4 - Launch Steam upload batch file
REM # 5 - Launch Steamworks build page on default browser
REM #
REM ##############################################################################################
SET PROJECT_PATH=C:/Repos/ToL/tol-game-win/i42-tol-win64/Assets/../
CD /d %PROJECT_PATH%
ECHO #################################################################
ECHO.
ECHO * Starting @
ECHO.
ECHO '%CD%'
ECHO.
ECHO * STARTING copy + upload to Steam in 10 seconds (click to pause)...
ECHO.
ECHO #################################################################
timeout /t 10
REM ___________________________________________________________
ECHO.
ECHO #################################################################
ECHO.
ECHO * [INIT] Setting INIT var paths...
REM https://stackoverflow.com/questions/672693/windows-batch-file-starting-directory-when-run-as-admin
REM *Includes trailing slash\
ECHO.
SET BUILD_PATH=C:/Repos/ToL/tol-game-win/i42-tol-win64/Assets/../build
SET CONTENT_BUILDER_PATH=F:\GameDev\SDKs\Steamworks_SDK_139\tools\ContentBuilder
SET WWW_BUILD=https://path-to-your-builds.com
ECHO.
ECHO * BUILD_PATH @
ECHO.
ECHO %BUILD_PATH%
ECHO.
ECHO * CONTENT_BUILDER_PATH @
ECHO.
ECHO %CONTENT_BUILDER_PATH%
REM ___________________________________________________________
ECHO.
ECHO #################################################################
ECHO.
ECHO * [INIT] Setting other paths from variable...
ECHO.
SET CONTENT_PATH=%CONTENT_BUILDER_PATH%\content\windows_content
SET EMPTY=%CONTENT_PATH%\empty
SET SCRIPTS_DIR=%CONTENT_BUILDER_PATH%\scripts\
SET LOCAL_VDF=%CD%\app_build_123456-win.vdf
ECHO.
ECHO EMPTY @
ECHO.
ECHO %EMPTY%
ECHO.
ECHO SCRIPTS_DIR @
ECHO.
ECHO %SCRIPTS_DIR%
ECHO.
ECHO LOCAL_VDF @
ECHO.
ECHO %LOCAL_VDF%
REM ___________________________________________________________
ECHO.
ECHO #################################################################
ECHO.
ECHO * [#1] Deleting old \windows_content\* ...
mkdir "%EMPTY%"
ROBOCOPY /mir "%EMPTY%" "%CONTENT_PATH%"
REM ___________________________________________________________
ECHO.
ECHO #################################################################
ECHO.
ECHO * [#2] Copying new files FROM...
ECHO.
ECHO '%BUILD_PATH'
ECHO.
ECHO TO...
ECHO.
ECHO '%CONTENT_PATH%'
ROBOCOPY /COPYALL /E "%BUILD_PATH%" "%CONTENT_PATH%"
REM ___________________________________________________________
ECHO.
ECHO #################################################################
ECHO.
ECHO * [#3] Copy VDF file for precise descriptions FROM...
ECHO.
ECHO '%LOCAL_VDF%'
ECHO.
ECHO TO...
ECHO.
ECHO '%SCRIPTS_DIR%'
ECHO.
xcopy /y "%LOCAL_VDF%" "%SCRIPTS_DIR%"
REM ___________________________________________________________
ECHO.
ECHO #################################################################
ECHO.
ECHO * [#4] Launch Steam upload batch file @
ECHO.
ECHO '%CONTENT_BUILDER_PATH%\run_build_win.bat
CD /d "%CONTENT_BUILDER_PATH%"
cmd.exe /c CALL "run_build_windows.bat"
REM ___________________________________________________________
ECHO.
ECHO #################################################################
ECHO.
ECHO * [#5] Launch Steamworks build page on default browser
ECHO.
START % WWW_BUILD %
REM ___________________________________________________________
ECHO.
ECHO #################################################################
ECHO.
ECHO Done.
ECHO.
PAUSE
REM EXIT
You’ll also need to use your post process script to generate a VDF file and whatever that other build file for Steam is called that contains metadata.
As I understand it, it’s not really a matter of just writing the code, it’s more an issue of negotiating contracts and API access rules. Those providers are supported by the UDP because those were the providers who were most interested in working with us.
I wish Aptoide wasn’t one of the supported platforms on UDP because that’s pretty sketchy, and by that I mean it’s a big pirate site (and besides googling for it, I know that from the experience of having my apps pirated there and trying unsuccessfully to get them taken down)
Steam’s pipeline is publicly available to use commercially, if I recall? It doesn’t do anything if you don’t have a Steamworks username/password (that the end-user, not Unity, would enter). You shouldn’t even need a secret for a pipeline - just some info entered by the user.
The same goes for Discord, but even-more open.
I wouldn’t say it’s a matter of code for Steam or Discord can’t speak for other platforms, though.
two years later and Unity still doesn’t think Steam is important…
I guess no more news about this? Seems there are news about devops/cloud build (Unity Blog), but nothing about Steam.