我的版本是4.1.1。导出模板下载不了。。。有没有网盘或者加速能让我下载的路子
   
由于我在游戏Colorspace上一直拖延,我最终决定花时间自动化构建和上传我的 Godot 游戏。现在我已经做到了,我不明白为什么我不早点做。这就是为什么我想分享我是如何做到的,并希望向您展示它相对简单。

源代码Python脚本下载:(用于导出 Godot 游戏并将其上传到 Itch 和 Steam)
https://github.com/MrEliptik/godot_auto_export

在深入解释之前,让我告诉您我想要实现什么以及我决定为此使用什么。目标是为我拥有的每个模板(Windows 和 Linux、Steam 和 itch)导出一个构建,并自动创建构建号、文件夹和存档。我还想让它自动上传到我使用的两个平台:Steam 和 Itch。
为此,我决定使用 python,因为它非常容易编程并且可以在任何地方运行。Python 与 GDScript 非常相似(或者相反?),所以我知道这会很容易。您可以轻松地调用您需要的任何程序或执行命令,这似乎比批处理更容易处理。我发现 Python 更容易使用,尤其是当您必须处理路径、文件夹创建、从文件中提取字符串和存档创建时。
为了上传到 Steam,我使用了steamcmd,他们的命令行工具用来做很多事情。您应该已经拥有它,因为它随 steamworks sdk 一起提供。
为了上传到 Itch,我使用了Butler,他们的命令行上传工具。使用起来超级简单!

【使用 Godot 导出】
【Godot3】
使用 Godot 3.5,如果路径中有 Godot,则导出名为“Windows ITCH”的模板如下所示:

godot --export "Windows ITCH" build/test/game_name.exe

很简单,对吧?这将打开 Godot,并以发布模式开始导出。
“Windows ITCH”是我想要使用的模板,最后“build/test/game_name.exe”是我想要创建的可执行文件的路径。

【Godot4】
Godot 4 的命令略有不同

godot --export-release "Windows ITCH" build/test/game_name.exe

--export,现在--export-release最重要的是允许--headless在不启动 Godot 编辑器的情况下运行导出,这应该更快一些,并且允许在没有显卡的平台上导出。

【获取内部版本号】


我想要的另一件事是自动获取内部版本号。有多种方法可以做到这一点,但我所做的是在项目设置中创建自己的条目,以便我可以通过使用
ProjectSettings.get_setting("application/config/build_number").

为了在 Python 中执行相同的操作,我会遍历文件的每一行,检查是否在其中找到“config/version”,并获取值。

# If you have a better way of parsing the file, tell me!
with open(file, 'r', encoding='UTF-8') as f:
for line in f:
if 'config/version' in line:
number = line.strip().split("config/version=", 1)[1]
number = number.replace('"', '')
return number

【上传】
下一步是上传到 Itch & Steam。

【Itch】
我从 Itch 开始,因为它似乎是最简单的。要上传到那里,您需要首先下载Butler。安装后,您可以使用登录butler login,然后就可以开始了!

上传命令非常简单:
butler push directory user/game:channel --userversion x.x.0

对我来说:
butler push build/colorspace_buildnumber_itch.zip mreliptik/colorspace:windows --userversion buildnumber

在我的例子中,频道是 Windows 或 Linux。
基本上就是这样!它非常简单,而且因为它需要的设置非常少,所以您可以一直使用它,即使是在游戏堵塞时也是如此。

【Steam】
啊啊Steam,为什么你总是要这么复杂?我们喜欢你,但你已经对我们生产的所有产品打了 30% 的折扣,而且你还想要我们的时间?你这个小混蛋!
说实话,一旦你了解了它是如何工作的,事情并没有那么复杂。只是比Itch更复杂一点。

您需要steam_cmd,它位于steamworks sdk > 工具 > ContentBuilder 内。


找到该文件夹​​后,您将看到:

三个构建器文件夹,分别对应于 Windows、Mac 和 Linux 的构建可执行文件。
Content,对应于将要构建的内容。
Output,这是构建的结果(如果适用)。
scripts 是您放置定义构建应如何运行的不同脚本的位置。
如果需要,您可以将构建器路径放入环境变量中,或者使用可执行文件的完整路径。

我在 Content 旁边创建两个文件夹ContentWindows和ContentLinux,并在构建时使用它们来分隔内容。这是为了简化以后的脚本。我知道我将能够在该特定内容文件夹中构建所有文件,并且不必为不同的仓库过滤文件。

【脚本】
我们需要设置脚本,幸运的是,Valve 提供了默认脚本作为示例。您可以在脚本文件夹下找到它们,或者在GitHub 上的示例文件夹下找到它们。

您的应用程序有一个脚本,它告诉 Steam 您要为哪个软件仓库构建,并且每个软件仓库一个脚本。在我的示例中,您可以看到我有两个软件仓库脚本,因为我有两个软件仓库要构建:linux 和 windows。

在应用程序脚本中,您只需填写应用程序 ID、描述(如果需要),并在 depot 下为每个 depot 添加一行,以及您的 depot 编号和关联的 depot 脚本。

"AppBuild"
{
"AppID" "APP_ID" // Your AppID
"Desc" "Automatic build" // internal description for this build
"Preview" "0"
"ContentRoot" "" // content root folder relative to this script file
"BuildOutput" "..\output" // output folder relative to this script file
"Depots"
{
// file mapping instructions for each depot are in separate script files
"DEPOT_NUMBER_1" "depot_build_DEPOT_NUMBER_1.vdf"
"DEPOT_NUMBER_1" "depot_build_DEPOT_NUMBER_2.vdf"
}
}

然后,您为每个软件仓库创建一个脚本。您添加您的软件仓库 ID 和您创建的内容文件夹。该路径是相对于脚本的。在FileMapping下,我没有执行任何特殊操作,因为我想上传文件夹中的所有文件。下面是一个例子:

"DepotBuild"
{
// Set your assigned depot ID here
"DepotID" "DEPOT_NUMBER_1"

// Setup specific content folder for depot
// I have one content folder per depot number, one for linux, one for windows
"ContentRoot" "..\YOUR_CONTENT_FOLDER"

// include all files recursively
"FileMapping"
{
// This can be a full path, or a path relative to ContentRoot
"LocalPath" "*"

// This is a path relative to the install folder of your game
"DepotPath" "."

// If LocalPath contains wildcards, setting this means that all
// matching files within subdirectories of LocalPath will also
// be included.
"Recursive" "1"
}
}

【命令】
获得脚本后,您最终可以调用 steam_cmd 来上传内容。但首先,您应该手动运行该命令,因为 Steam 会要求您提供 steamguard 代码。

steamcmd +login STEAM_USERNAME STEAM_PASSWORD, +run_app_build_http APP_SCRIPT_PATH +quit

我的 python 脚本只是压缩构建,将它们移动到两个内容文件夹(linux 和 windows),上传到 steam,然后删除 zip。不过,您不必压缩它们,这就是我在构建过程中所做的。

最后的话

我希望这向您展示了构建和上传到 itch 和 steam 是非常容易的。当然,我编写的脚本适合我的需要,因此您必须根据自己的喜好进行调整。
我相信使用 python 非常容易,因为它非常接近 GDScript。
您还可以扩展功能以支持其他商店,甚至使用 github action 为您构建游戏。
对于一个客户项目,我在 GitHub 上设置了自动上传和发布创建,这很容易使用他们的命令行程序来完成。
查看更多.....
   
在本视频中,我们将 Google Play 游戏与 Godot 4 集成!通过这个综合教程了解如何将 Google Play 游戏服务无缝集成到您的 Android Godot 游戏中。本指南涵盖 Godot 3.5 和 Godot 4.1,将引导您完成从设置项目和插件到理解 get 项目的整个过程。了解如何设置登录、解锁成就、建立排行榜以及保存游戏进度。本教程与 Godot 4 兼容,并且应该适用于 Godot 3.5,对信号连接进行细微调整。潜入 Godot 的 Play 游戏服务插件 (PGSGP) 世界并增强您的游戏功能!

时间戳
00:00:00 – 开始
00:01:09 – 讨论插件
00:02:22 – 进入 Godot
00:03 :55 – 讨论什么是插件
00:04:24 – 启用插件
00:05:54 – 设置 Google Play 游戏服务
00:06:53 – 设置我们的 Google Play 游戏集成
00:10:33– 创建我们的凭证
00:11:00 – 构建 OAuth 客户端
00:11:25 – Sha1 指纹
00:12:25 – 如何创建调试密钥库
00:16:45 – 添加登录功能
00:23:09 – 谈谈 Adb
00:23:41 – 设置我们的构建系统使其真正正常工作
00:30:59 – 添加退出
00:32:12 – 退出
00:34:23 – 让我们谈谈成就!
00:47:31 – 让我们来谈谈排行榜!
00:56:19 – 如何使用保存游戏!
01:05:23 – 片尾

点击观看:
查看更多.....
   

Steam官方推出的SteamWorks开发平台的游戏作品发布后台操作使用教程,独立游戏开发者必备,在Steam游戏平台发布独立游戏作品必学!感谢 卡萨德_王 辛苦翻译和搬运,值得推荐!

1.Steamworks平台游戏作品发布_在Steam平台中构建你的项目

2.Steamworks平台游戏作品发布_构建你的产品页面并发布应用程序

3.Steamworks平台游戏作品发布_如何更新定价

4.Steamworks平台游戏作品发布_添加新平台和语言

5.Steamworks平台游戏作品发布_为应用程序添加可下载内容

查看更多.....
   
>>> Godot国内下载镜像 <<<
mirror.godotcn.com
(最新版本以及导出模板)
[投稿须知]
投稿邮箱:hareqj@163.com
教程投稿:可提供B站视频BV号,会直接生成视频播放页。
游戏投稿:须原创,请提供 作品web版文件、作者、简要操控说明。
内容举报邮箱:hareqj@163.com,请告知内容编号(右上角)及违规说明。
[Godot中文教程]
Copyright Godot中文社区 GodotCN.com All Rights Reserved.
Godot国内镜像:http://mirror.godotcn.com
京ICP备13032831号