Depot 生成脚本

首先为您上传的每个 Depot 创建一个 Depot 生成脚本。从复制 depot_build_1001.vdf 脚本开始,并按将上传的 Depot ID 命名。

Depot 生成脚本示例:

"DepotBuildConfig" { // 设置脚本要上传的 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。这样做很安全,对已经发布的游戏也能够确保安全,因为您需要先将它设置为公开,才能让顾客下载。

应用生成脚本示例:

"appbuild" { // 设置脚本将上传的 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 生成版本帐号与密码(请见上文)和应用生成版本的脚本路径:

builder\steamcmd.exe +login "account" "password" +run_app_build ..\scripts\[build_script_name].vdf +quit

注意: 由于 Steam 令牌的原因,您第一次尝试运行生成版本可能会失败。如果由于 Steam 令牌导致您无法登录,请在您的电子邮件中查找 Steam 令牌验证码,在 steamcmd.exe 中运行 steamcmd.exe "set_steam_guard_code <code>",然后重试。在使用 Steam 令牌登录一次之后,会有一个 Sentry 文件来验证登录是否真实。

运行 run_build.bat 之后,您的生成版本输出应放置在生成脚本文件指定的目录中。如果预览生成版本产生了预期的清单,则在应用生成脚本中使用 “preview” “0” 再次运行生成版本。

SteamPipe 生成将经历以下步骤:

  1. Steamcmd.exe 使用给定的生成器 Steam 帐户登录 Steam 后端。
  2. 在 MDS(主 Depot 服务器)上注册应用生成版本启动,这样可保证用户拥有修改此应用的正当权限。
  3. 针对包含在应用生成版本中的各 Depot,根据内容文件夹中的文件以及 Depot 生成配置文件中定义的过滤原则生成文件列表。
  4. 然后,各文件被扫描和分割成大约 1MB 的小区块。如果之前已经制作出 Depot,则这次分割应尽可能保留未更改的区块。
  5. 新文件区块经过压缩、加密后上传到 MDS。
  6. 然后生成此 Depot 版本对应的最终清单;各清单都拥有唯一的 64 位清单 ID。
  7. 所有 Depot 处理完成后,MDS 就会完成此应用版本,并为其分配一个全局 buildID。
  8. 生成版本处理完成后,生成输出文件夹中可能会出现 *.csm 和 *.csd 文件。这些是临时文件,可以删除,但它们能加快后续生成版本的处理速度。

转载于:https://www.cnblogs.com/empist/p/8906255.html

steam Depot 生成与应用脚本相关推荐

  1. python制作验证码_Python编写生成验证码的脚本的教程

    在web开发中经常用到验证码,为了防止机器人注册或者恶意登陆和查询等,作用不容小觑 但是验证码其实不是一个函数就能搞定的,它需要生成图片和水印,其实每种语言都有相关的函数生成图片和文字水印.包括我熟悉 ...

  2. python list转字符串_我用python写了个自动生成给文档生成索引的脚本!懒人智慧...

    我用 python 写了一个自动生成索引的脚本 简介:为了刷算法题,建了一个 GitHub仓库: PiperLiu / ACMOI_Journey ,记录自己的刷题轨迹,并总结一下方法.心得.想到一个 ...

  3. python读取excel指定列-Python读取excel指定列生成指定sql脚本的方法

    需求 最近公司干活,收到一个需求,说是让手动将数据库查出来的信息复制粘贴到excel中,在用excel中写好的公式将指定的两列数据用update这样的语句替换掉. 例如: 有个A库,其中有两个A.01 ...

  4. 完美解决Flask-Migrate使用SQLite生成自动迁移脚本的Bug

    一.问题描述 flask-migrate插件是对Alembic的简单封装,当程序使用SQLite数据库作为backend的时候,使用 flask migrate命令生成自动迁移脚本,使用flask u ...

  5. 根据Word表格自动生成SQL数据库脚本的VBScript代码

    这是几年前写的根据Word表格自动生成SQL数据库脚本的VBScript代码,最近修改了下(原来只支持单个Word表格)使其支持一个Word文档中的多个表格,生成的SQL文件名以Word文件名+.SQ ...

  6. 生成建表脚本up_CreateTable

    已经很久没用使用这个脚本了,今天用到,并做修改,增加了生成扩展属性功能. Go if object_ID('[up_CreateTable]') is not nullDrop Procedure [ ...

  7. pd 生成mysql 脚本_PowerDesigner 如何生成数据库更新脚本

    最近在学习使用PowerDesigner 这个数据库设计工具,发现真的很强大,可以做很多事情,其中就涉及到如果数据库要进行更新了怎么办,主要是增加表,最麻烦的是修改字段名称,增加字段等操作,遇到主要的 ...

  8. PowerDesigner中在生成的数据库脚本中用name列替换comment列作为字段描述的方法

    1 PowerDesigner中在生成的数据库脚本中用name列替换comment列作为字段描述的方法如下, 依次打开Tools – Execute Commands – Run Script,运行以 ...

  9. 在SqlServer中把多个job生成一个sql脚本

    在SqlServer中把多个job生成一个sql脚本 打开sqlserver,找到"查看",选择"对象资源管理器详细信息",双击sqlserver agent, ...

最新文章

  1. 《lua程序设计(第二版)》学习笔记(五)-- 函数基础
  2. 一文讲清楚什么是迁移学习?以及它都用在哪些深度学习场景?
  3. Python--高阶学习笔记
  4. java二维码生成技术
  5. 2个在Java中将Byte []数组转换为String的示例
  6. 李洋疯狂C语言之编程实现统计某年某月份的天数
  7. python图像数据是几维数据_python实现读取类别频数数据画水平条形图案例
  8. swoole 异步client redis TP5 微信模板消息 demo版本比较杂 代码注释啥的都没删除 但是可以用作为参考
  9. sql中什么时候应用临时表_SQL数据仓库环境中的临时表应用程序
  10. vue - 自定义指令
  11. 同一批人做的产品,一年跟十年,产品质量不会有任何变化
  12. FFmpeg 视频添加水印
  13. 第四十九篇: JAVA加密解密之凯撒加密(Caesar cipher)算法
  14. 重新出发,从“心”出发
  15. java毕业生设计车辆调度管理系统计算机源码+系统+mysql+调试部署+lw
  16. MySQL utf8mb4字符集按中文拼音排序
  17. Mac上重装PHP-7.3和apache-2.4.41
  18. java对接杉德支付完整代码
  19. Linux pidstat命令实战
  20. 【HTCVR】VRTK插件案例分析之0031~037

热门文章

  1. 2022R1快开门式压力容器操作试题及答案
  2. 爬取网易云音乐单曲下的所有评论
  3. 硬盘短自检失效+重装系统后触控板不能上下滚动页面
  4. Vmware安装GHOST winXP/7/10通用方法
  5. Iconfont多色图标使用和单色图标实现渐变色
  6. openssl 3des 加解密
  7. IOS卡在更新进度界面处理办法
  8. HTML练习制作邮箱登陆界面
  9. 无盘服务器网线怎么插,宽带师傅教你怎么安装网线插座 看完自己都会了!
  10. Reflect基本使用和了解