steam Depot 生成与应用脚本
Depot 生成脚本
首先为您上传的每个 Depot 创建一个 Depot 生成脚本。从复制 depot_build_1001.vdf 脚本开始,并按将上传的 Depot ID 命名。
Depot 生成脚本示例:
{
// 设置脚本要上传的 depot ID。
"DepotID" "1001"
// 为所有内容设置根目录。
// 所有下面指明的相对路径in FileMapping 项中的 LocalPath,以及 FileExclusion 路径)
// 将根据此根目录进行解析。
// 如果您不定义 ContentRoot,那么它将默认为
// 此脚本文件的位置,也许您并不希望使用此位置。
"ContentRoot""D:\MyGame\rel\master\"
// 以递归方式包含所有文件
"FileMapping"
{
// 这可以是完整路径,或是相对于 ContentRoot 的路径
"LocalPath" "*"
// 这是相对您游戏的安装文件夹的路径
"DepotPath" "."
// 如果 LocalPath 包含通配符,设置这里意味着
// 子目录中的所有匹配通配符的文件也会被包含入内。
"recursive" "1"
}
// 排除所有符号文件
// 这可以是完整路径,或是相对于 ContentRoot 的路径
"FileExclusion" "*.pdb"
}
注意: 在 Depot 生成脚本中设置一个 “ContentRoot” 将替代应用生成脚本中的“ContentRoot”。
应用生成脚本
在设置了您的 Depot 生成脚本之后,您将需要一个应用生成脚本,描述生成版本的详细信息。先要复制 app_build_1000.vdf 脚本,并将其按将生成的 app ID 命名。
SteamPipe 支持 3 种生成类型:
- 预览 – 此类生成版本只能输出日志和一个文件清单。制作预览生成版本便于您对上传脚本进行迭代。
- 本地 – 针对 SteamPipe Local Content Server的生成版本。将 LCS 生成版本上传到您的 LCS 中,可以让您使用 Steam 客户端测试游戏安装环节。
- SteamPipe – SteamPipe 生成版本会使您的 Depot 实际上传至 Steam。这样做很安全,对已经发布的游戏也能够确保安全,因为您需要先将它设置为公开,才能让顾客下载。
应用生成脚本示例:
{
// 设置脚本将上传的 app ID。
"appid" "1000"
// 此生成版本的描述。
// 只有您能在“应用管理员”面板的“您的生成版本”栏中可见到。
// 在“您的生成版本”中上传生成版本上后,可以随时更改描述。
"desc" "Your build description here"
// 启用/禁用这是否为预览生成版本。
// 强烈推荐在初步设置 SteamPipe 时使用预览生成版本
// 以确保 depot 清单包含正确的文件。
"preview" "1"
// 本地内容服务器若启用,其文件路径。
"local" ""
// 生成成功后将自动设置为上线的分支名称,若无则为 none。
// 注意“默认”分支不能设置为自动上线,而必须通过“应用管理员”面板进行设置。
"setlive" ""
// 以下路径可以为绝对路径或相对于脚本的路径。
// 此路径将是生成版本日志、区块缓存和中间输出的路径。
// 这里存储的缓存使未来的 SteamPipe 上传能使用 diffing 更快完成。
"buildoutput" "..\output\"
// 内容文件夹根目录。
"contentroot" "..\content\"
// 生成版本中包含的 depot 列表。
"depots"
{
"1001" "depot_build_1001.vdf"
}
}
生成 Depot
要开始生成您的生成版本,请编辑 run_build.bat 文件,其中包括您的 Steamworks 生成版本帐号与密码(请见上文)和应用生成版本的脚本路径:
注意: 由于 Steam 令牌的原因,您第一次尝试运行生成版本可能会失败。如果由于 Steam 令牌导致您无法登录,请在您的电子邮件中查找 Steam 令牌验证码,在 steamcmd.exe 中运行 steamcmd.exe "set_steam_guard_code <code>",然后重试。在使用 Steam 令牌登录一次之后,会有一个 Sentry 文件来验证登录是否真实。
运行 run_build.bat 之后,您的生成版本输出应放置在生成脚本文件指定的目录中。如果预览生成版本产生了预期的清单,则在应用生成脚本中使用 “preview” “0” 再次运行生成版本。
SteamPipe 生成将经历以下步骤:
- Steamcmd.exe 使用给定的生成器 Steam 帐户登录 Steam 后端。
- 在 MDS(主 Depot 服务器)上注册应用生成版本启动,这样可保证用户拥有修改此应用的正当权限。
- 针对包含在应用生成版本中的各 Depot,根据内容文件夹中的文件以及 Depot 生成配置文件中定义的过滤原则生成文件列表。
- 然后,各文件被扫描和分割成大约 1MB 的小区块。如果之前已经制作出 Depot,则这次分割应尽可能保留未更改的区块。
- 新文件区块经过压缩、加密后上传到 MDS。
- 然后生成此 Depot 版本对应的最终清单;各清单都拥有唯一的 64 位清单 ID。
- 所有 Depot 处理完成后,MDS 就会完成此应用版本,并为其分配一个全局 buildID。
- 生成版本处理完成后,生成输出文件夹中可能会出现 *.csm 和 *.csd 文件。这些是临时文件,可以删除,但它们能加快后续生成版本的处理速度。
steam Depot 生成与应用脚本的更多相关文章
- SQL SERVER 生成建表脚本
/****** Object: StoredProcedure [dbo].[GET_TableScript_MSSQL] Script Date: 06/15/2012 11:59:00 ***** ...
- PowerDesigner 如何生成数据库更新脚本
最近在学习使用PowerDesigner 这个数据库设计工具,发现真的很强大,可以做很多事情,其中就涉及到如果数据库要进行更新了怎么办,主要是增加表,最麻烦的是修改字段名称,增加字段等操作,遇到主要的 ...
- PowerDesigner中在生成的数据库脚本中用name列替换comment列作为字段描述的方法
1 PowerDesigner中在生成的数据库脚本中用name列替换comment列作为字段描述的方法如下, 依次打开Tools -- Execute Commands -- Run Script,运 ...
- 生成建表脚本up_CreateTable
已经很久没用使用这个脚本了,今天用到,并做修改,增加了生成扩展属性功能. Go if object_ID('[up_CreateTable]') is not null Drop Procedure ...
- (转)SQL SERVER 生成建表脚本
https://www.cnblogs.com/champaign/p/3492510.html /****** Object: StoredProcedure [dbo].[GET_TableScr ...
- atitit.自动生成数据库结构脚本,或者更换数据库,基于hibernate4
atitit.自动生成数据库结构脚本,或者更换数据库,基于hibernate4 目前近况:: 更换数据库,但是是使用spring集成的. <!-- hibernate配置文件路径 --> ...
- 「懒惰的美德」我用 python 写了个自动生成给文档生成索引的脚本
我用 python 写了一个自动生成索引的脚本 简介:为了刷算法题,建了一个 GitHub仓库:PiperLiu / ACMOI_Journey,记录自己的刷题轨迹,并总结一下方法.心得.想到一个需求 ...
- Oracle AWR报告自动生成并ftp脚本
脚本主要由以下几个部分组成: awr.sql 用来在sqlplus 中执行的脚本,该脚本从网上直接找的. awr.sh 用来调用sqlplus来生成awr报告. ftp.sh 用来打包压缩每天生成的a ...
- 自动生成makefile的脚本
如果需要测试某一个特性,写了一个test.cpp 某天又增加了一个utils.cpp,依此类推,测试文件越来越多 每次测试时都要手动维护一个makefile实在是不明智的 于是萌生了用脚本自动维护的念 ...
随机推荐
- [skill][git] git 常用操作记录
傻瓜入门: step by step : https://try.github.io/levels/1/challenges/1 一本书: https://git-scm.com/book/en/v2 ...
- Java之旅_高级教程_实例_打印图形
1.打印菱形 public class MainClass{ public static void main(String[] args){ printStar(10); } public stati ...
- 20165336 2017-2018-2 《Java程序设计》第5周学习总结
20165336 2017-2018-2 <Java程序设计>第5周学习总结 教材学习内容总结 内部类的类体中不可以声明类变量和类方法. 内部类仅供他的外嵌类使用,其他类不可以用某个类的内 ...
- Vue通过build打包后 打开index.html页面是空白的
最近在build打包vue项目遇到了几个问题,如下: 1.npm run build打包项目之后,我们通常是把dist文件里面被压缩后的static文件跟index.html提交到服务器,但最近发现直 ...
- find 命令 查找
find 查找文件和目录 find /home -name "" find 后接查找的目录,-name 后指定需要查找的文件名 文件名可以用*表示所有find /home -nam ...
- 如何将wordpress所有文章批量改为已发布状态
用wordpress建站的一个好处就是bd站长工具平台上有数据结构插件,可以认为bd默认支持wp发展,另外一种建站程序是discuz.我们在用wordpress发布文章时,特别是那种多用户投稿的文章一 ...
- 如何用python发邮件
python发送各类邮件的主要方法 一.相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: 1.smtplib模块 smtplib.SM ...
- TADOConnection组件
该组件用于建立数据库的连接.ADO的数据源组件和命令组件可以通过该组件运行命令及数据库中提取数据等. 该组件用于建立数据库的连接,该连接可被多个数据集所共享,但是并不是应用程序中必须的,因为ADO数据 ...
- ftp工具类
package com.ytd.zjdlbb.service.zjdlbb; import java.io.File;import java.io.FileInputStream;import jav ...
- vue axios get请求参数为json对象 而非字符串形式
axios get请求方式 传递给后台的参数都是字符串下形式,无法传递json对象 或数组对象等 post请求方式则可以实现, 但若后台接口要求必须用get方式传递对象给后台,需要装插件,实 ...