役次元 Yokonex Hub 开发文档

#游戏中心

役次元游戏中心是另一个客户端。它有 Yokonex Hub 的全部功能, 另外多两样:下载游戏和启动游戏。

在 games.ycygame.org/download 下载。


#它和 Hub 是什么关系

同一份代码的两个构建。区别只有三处:名字、图标、以及多出来的「商店」和「我的游戏」。

它们不能同时运行。 双击第二个的图标,会把已经开着的那个窗口拉到前面, 而不是再起一个。这是有意的,不是限制:

所以:两个都装没问题,但同一时刻只有一个在跑。


#商店

#为什么要登录才看得见

插件市场和波形广场都是公开的,游戏商店不是。

区别在于这些东西「叫什么」。一个插件叫「七日杀联动」,一条波形叫「缓升」—— 名字本身不暴露任何关于使用者的事。而一个游戏的名字、简介、封面合起来 就是内容本身,公开列出来等于开一个任何人都能翻的目录, 包括搜索引擎、也包括用这台电脑的其他人。

没登录时商店页只有两个数字(有多少个游戏、多少次下载)和一个下载客户端的入口。

#怎么登录

客户端右上角有一个「登录」。点它会拉起你自己的浏览器, 在 auth.ycygame.org 上登录、看清楚是哪台电脑要登、再点批准。

口令只在浏览器里输,客户端从头到尾拿不到它,也不保存它。 这条分界不是客气:内嵌的登录框是客户端自己的进程, 里面输的每一个字符它技术上都读得到,而你没有办法验证它没读。 你自己的浏览器有地址栏、有锁形图标、有你的密码管理器 —— 那几样它伪造不了。

批准之后浏览器会跳回 http://127.0.0.1:<一个随机端口>,那个端口开在你这台机器上。 所以「有人把一条登录链接发给你、骗你点批准」这条路在这里走不通: 凭据只会落回你自己的客户端,他拿不到。

如果浏览器拦了那一跳,或者你把链接复制到手机上打开了 —— 都没关系。 客户端同时也在问服务端「批准了没有」,你点完过一两秒它自己就好了。

登录状态能撑六十天,中间不用再登。 客户端右上角的「退出」会把这台机器上的凭据擦掉,服务端那边也一起作废。

#遮一下

商店和「我的游戏」右上角有一个「遮一下」。按下去之后所有封面立刻被替换成 按 id 生成的色块 —— 不是模糊,是根本不去取那张图。

这个开关只存在你这台电脑上,不同步到账号。理由很简单: 把它同步上去,意味着服务器上多了一条「这个人开过遮挡」的记录。


#装一个游戏

在商店里点开一个游戏,右下角那个大按钮会按当前状态显示:

状态 按钮
没装 下载(带上装完占多少盘)
正在下 进度条 + 取消
装好了 开始游戏
正在跑 运行中(按不动)
有新版 开始游戏 + 更新

#装在哪

默认 %LOCALAPPDATA%\Yokonex\games\,可以改到别的盘 —— 游戏动辄几 GB,而国内机器的 C 盘普遍不大。

改安装位置时客户端会检查目标目录:不接受网络路径和移动盘、 不接受系统目录、不接受已经有别人东西的目录。 最后这一条挡的是一种很具体的事故:有人把安装位置指到 steamapps\common,然后卸载时把别人的游戏一起删了。

磁盘上只出现游戏的 id(一串没有意义的短字符),不出现游戏名。

#存档不在游戏目录里

存档统一放在 %LOCALAPPDATA%\Yokonex\saves\<游戏id>\。

放在外面的全部意义在卸载那一刻:不需要在游戏目录里分辨 「哪些是游戏文件、哪些是你的存档」—— 那个区分永远做不对。 所以卸载游戏默认不删存档,重新装回来还能接着玩。

要单独删存档,在「设置 → 数据」里,那是一个单独的、会问两遍的入口。


#从网页跳进来

games.ycygame.org 上每个游戏页面有一个「在游戏中心里打开」。 它走 yokonex:// 这个协议,由本机已安装的游戏中心接手。

它只会把客户端打开到那个游戏的页面。 不会开始下载,不会开始安装, 也不会启动任何东西。

这不是做得不够,是有意的:这种链接任何网站都能放 —— 一个论坛回帖、一张图片的跳转目标、一个藏起来的 iframe 都可以。 如果这条路能触发安装,那就等于「别人贴一个链接,你的机器上多一个程序」。 所以最后那一下永远由你在客户端里按。

没装游戏中心的话,点它不会有任何反应。所以那个按钮旁边永远有一条 「还没装?下载游戏中心」—— 网页没有可靠的办法判断你这台机器上装没装。


#启动之前发生了什么

点「开始游戏」之后,客户端会先逐个文件核对哈希,然后才启动。

核对的是安装时记下的那份清单。对不上就不启动,并且不给「仍然启动」这个选项 —— 一个文件和安装时不一样的游戏,要么是被别的程序改过,要么是装坏了, 两种情况下继续跑都不是好主意。重新下载一遍就好。

大概要一到几秒,取决于游戏大小和硬盘。

游戏进程和客户端同权限运行,不提权。客户端从来不需要管理员权限, 一个要求提权的游戏在这里根本上不了架。


#卸载

在「我的游戏」里点开游戏,或者在 Windows 的「添加或删除程序」里找 Yokonex(低调模式下就是这个名字)。

卸载游戏会删掉游戏文件,保留存档。 卸载客户端会删掉程序和图标,保留设置、设备记录、已装的插件和波形 —— 再装回来还是原样。

客户端的卸载会再问一次「要不要连数据一起删」,默认是不删。 那里面有累计出力的记录,删掉它等于把「一次用太久」那道闸清零。


#常见情况

双击图标没反应。 多半是另一个产品正开着(见最上面那段)。看一眼任务栏。

杀软拦了。 安装包目前还没有代码签名,360、火绒、SmartScreen 都可能拦。 在安全软件里把安装目录加进信任区。 不要为此关掉杀软 —— 那个代价比这个软件大得多。

下载很慢或者断了。 下载支持断点续传,重新点一次会接着上次的位置,不会从头再来。