中文 era 游戏全收录计划

自从加入中文 era 社群运营工作后,我就发现一个问题:
迄今为止的 era 游戏在项目管理这方面,完全是过时十年以上的破烂。

目前的项目管理经验已经足够先进和开放了,相关工具链也很成熟。
那我们为什么不能用稍微 现代 一点的方式来管理 era 游戏呢?

era 游戏在开发层面的本质#

介于「era 游戏」的本质其实是「基于 Emuera 执行的脚本集」,因此它拥有「源码本体」的特性,没人能加密一个 era 游戏*。

* 至于压缩包加密就是扣字眼硬杠了,这里说的是:
「任何人对任何 era 游戏,只要能运行,就能修改。」
不需要任何反编译手段,因为它根本就不存在「编译」这个环节。

正是由于这种特性,「版本控制」这件事变得尤为有用和重要。
因为只要对项目进行一次版本管理,相当于同时对该 era 游戏的源码(面向制作者)和本体(面向玩家)都进行了版本管理,一石二鸟。

唯一指定版本控制系统 - Git#

Git 就是世界第一的版本控制系统。我话讲完,谁赞成,谁反对?
SVN?SVN 请老实呆在被时代淘汰的垃圾桶里好吗,不要挣扎了。

至于 Git 的详细用法,可以参见我之前写过的《有手就行的 Git 使用方法》一文,此处不再赘述;如果仍有疑问,可以通过 Discord 提问。

没错,在中文 era 游戏社群,你甚至可以学习 Git 的用法 www。
文章是很长没错,但你没必要一个字一个字的读,你可以选读你需要的部分。

2022 年了我仍然喜欢文字超过视频,就是因为 拖滚动条拖进度条 体验好一百倍。
当然还有无敌的 Ctrl+F,只要有一天视频还不能按帧搜索,我就更喜欢文字。

Git 仓库托管服务网站#

最著名的当然是 GitHub;由于 GitHub 实在过于声名卓著,以至于时至今日,仍然分不清 Git / Git 仓库 / GitHub 三者之间关系的、缺少开发经验的普通人,想必不在少数。
类比一下就是 摄像机Porn 片PornHub 的区别,能理解了吧?

除了 GitHub 之外,允许使用他家的技术自行部署服务的 GitLab 也很有名。
类比一下就是你拍好的毛片不一定非得投 PornHub,你还可以投 XVIDEOS 对吧,甚至于说你可以开个 OnlyFans 自产自销对吧?话说我为什么非得举这种例子呢

由于 GitHub 实在过于出名,无论是不是开发者,基本人手一个 GitHub 账号,因此 GitHub 其实已经可以算是某种「(技术主题的)社交网站」了。
与此同时,这也带来了一个问题:GitHub 过于开放了。
一个网站的用户基数过大,意味着:一般来说,它必须符合普世价值观
比如曾经也算有名的 单机网页黄油*《Free Cities》的原版 GitHub 仓库 就被封禁了。

* 著名单机网页端色情游戏《Degrees of Lewdity》也是这个品类。
而且源码就放在 gitgud.io 托管。

毕竟「奴役」之类的元素,显然是不能被普世价值观所接受的。
虽然我们自己知道只是在文艺作品里稍微「放纵意淫」一下,不过真要论起来还是我们理亏。
它注定是某种个人的(甚至具有反人类倾向的)「私癖」,注定永远是难登大雅之堂的。

但世界这么大,我们还是找得到一片安定的保留地。这就要请出我们的主角了。
一群亚文化(ACG)爱好者基于 GitLab 自行搭建的公益型 Git 仓库托管服务网站:

这个网站的限制条件十分宽松,非常适合作为我们托管 era 游戏项目的服务。

当然了,这里也不是什么法外之地,假如你在上面发布涉嫌侵权的盗版内容,被抓到一样会被发 DMCA,不要以身试法。无论你身处何地,请遵守当地法律,保护自己。

英文 era 社群就是这样做的,他们的整合 / 二次开发的 英文 era 游戏项目组 也在上面。

这个网站(gitgud.io)由 Sapphire 运营,由于他们的策略,你不能直接在 gitgud.io 注册账号,而是需要先去他们的门户网站 sapphire.moe 注册一个 Sapphire 的账号,再通过 Sapphire 账号自动创建一个 gitgud.io 账号。

sapphire.moe 这个网站为了避免垃圾邮件(spam)的骚扰以及考虑到其他方面的风险控制,屏蔽了部分地区的 IP:越南、中国大陆、巴基斯坦、巴拿马、泰国、孟加拉国。
其他大部分地区,尤其北美和西欧的 IP 都是没问题的。
如果打不开(Access denied),请考虑使用网络代理。

Git 项目组的具体使用方法#

首先你需要下载并安装好 Git 程序。然后找一个合适的地方右键 > Git Bash Here。

我是玩家#

如果你嫌麻烦,可以直接使用下载分流网盘,详见《中文 era 游戏版本信息数据库》。

首先请自行注册 gitgud.io 的账号。

接下来开始配置 gitgud.io 账号的 SSH。

生成一组 SSH Key 密钥对

1
2
$ ssh-keygen -b 4096 -C 'your_ssh_key@gitgud.io' -f ~/.ssh/gitgud_ssh_key
# 回车两次 跳过设置"加密[密钥]用的密码"

配置本地 SSH

1
2
3
4
5
6
7
8
$ cat >> ~/.ssh/config << EOF
# gitgud.io user
User you@mail.com # 记得把这里改成: 你 gitgud.io 验证过的邮箱
Host ssh.gitgud.io
HostName gitgud.io
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitgud_ssh_key
EOF

Linux 信奉「少即是多Less is more」的哲学:没有消息就是最好的消息。有问题会给你报错的。
你要相信它不会为了保护你的心理健康自己憋着不说。它真的我哭死

配置云端 SSH

1
$ cat ~/.ssh/gitgud_ssh_key.pub

把回显的多行文本(公钥)复制粘贴到 gitgud.io 的 SSH Keys 设置页面

大功告成

然后你就能利用 Git 强大的版本控制功能愉快游玩了。

比如找到你想玩的 era 游戏(这里以 eraSQC 为例):
gitgud.io/era-games-zh/eraSQC_Chinese
找到右边显眼的蓝色按钮「Clone」,展开后点击「Copy URL」按钮。

原则上,推荐首选 HTTPS 而不是 SSH。但实际上,我们只能使用 SSH
因为整个项目组的仓库都是 Internal 权限,只能通过 SSH 进行鉴权。

找一个合适的目录,右键点击空白区域,选择「Git Bash Here」,启动 Git 自带终端。

1
$ git clone git@ssh.gitgud.io:era-games-zh/doujin/eraSQC_Chinese.git

就能下载到最新的游戏版本了。

优势

可是下载解压好像比你折腾这个方便得多啊?
如果只是单纯玩游戏,真的有必要用上 Git 吗?

我明确地告诉你:有。
为什么?

众所周知,当你更新一个 era 游戏的时候,你 不能 用解压好的新版本直接覆盖旧版本。
因为很多时候会出现「有一个文件,新版已经删掉了,只有旧版本还存在」的情况。
此时如果你直接用新版本覆盖旧版本,旧版本的「已废弃文件」就会被错误地保留下来,造成各种各样意外的错误,尤其是 ERH 这种只要存在就会自动注册变量的文件。

所以,升级新版本游戏并继承旧版本存档的 正确方式 是:下载后把新版本游戏解压到一个全新的目录,然后再把旧版本的「*.sav 文件」或「整个 /sav/ 目录」复制到新版本下。

部分游戏也许还有 *.dat,你攻略的角色数据。

没错,每次升级新版本都要这样操作一次。

但如果你是用 Git clone 的游戏,升级新版本只需要在游戏目录下打开 Git 终端,输入

$ git pull

即可,无需其他任何操作,你的游戏本体会自动更新(包括新版本已经删掉的废弃文件)到 最新版本,存档等数据会正常保留。只有最开始需要稍微折腾一下,之后可以一劳永逸。

所以到底是「下载压缩包解压」还是「用 Git clone 仓库」其实是一个「长痛还是短痛」的选择题。当然,决定权在你。

我是开发者 / 汉化者 / 维护者#

注册 gitgud.io 账号和配置 SSH Key 同上文。

之后的详细步骤参见《如何使用 Git 对你的 era 项目进行项目管理》一文。

lackbfun © 2021 - 2022